How to Send CRM Conversions to Google Ads — RD Station CRM and Webhook (Step by Step)
This guide shows how to get your CRM conversions into Google Ads with True Conversions, via two paths:
- RD Station CRM, native token connect (Basic plan or higher) — right below. This is the recommended path if you use RD Station CRM.
- Manual webhook (further down this page) — for any source without a dedicated connect button: your own software (no CRM), RD Station CRM on the Free plan (no API), or any other unlisted CRM.
⚠️ RD Station Marketing ≠ RD Station CRM. These are two different RD products. This guide is about RD Station CRM (the deal/sales funnel). For RD Station Marketing (leads and "marked as opportunity" via OAuth), see Connecting RD Station Marketing.
RD Station CRM — native connect
Use this section if your RD Station CRM account is on the Basic plan or higher (has API access). It connects the full deal funnel through to Closed-Won — required for Value Optimization.
Prerequisites
- RD Station CRM on the Basic plan or higher.
- An account already created in True Conversions.
Step 1: Connect with your API token
- In RD Station CRM, go to Configurações → Integrações → API (Settings → Integrations → API) and copy your API token.
- In your True Conversions dashboard, open the account (client) → Integrações de CRM (CRM Integrations).
- In the RD Station CRM card, paste the token into the Token da API (API Token) field.
- Click Conectar RD Station CRM (Connect RD Station CRM).
True Conversions automatically:
- Validates the token.
- Registers the deal webhooks (
crm_deal_createdandcrm_deal_updated) on your RD Station CRM account — no manual configuration needed inside RD. - Loads the account's list of funnels (pipelines) and stages, used in the next step and in Value Optimization.
Step 2: Select the sales funnel
RD Station CRM sends deals from every funnel in the account (sales, post-sale, churn, prospecting…) — True Conversions needs to know which one is the sales funnel so it doesn't mix everything together.
After connecting, the Funil de vendas (Sales funnel) section appears in the same card:
- If the funnels have already loaded, pick the right one from the dropdown.
- While no funnel is selected, an amber notice warns: "Selecione o funil de vendas — enquanto nenhum for escolhido, negócios de todos os funis são recebidos" ("Select the sales funnel — until one is chosen, deals from every funnel are received"). Deals from other funnels (post-sale, churn, etc.) arrive too until you select one.
- Once selected, only deals from that funnel are received — the rest are dropped before they even become an event (they won't show up in Recent Events or Webhook Attempts).
If the funnel list shows up empty ("Seus funis ainda não foram carregados" — "Your funnels haven't loaded yet"), click Reautorizar (Re-authorize, below) to fetch them.
What gets sent to True Conversions
- Without Value Optimization enabled (default): True Conversions only receives the event when the deal is marked Closed-Won. A single conversion event per deal.
- With Value Optimization enabled: True Conversions starts receiving every stage change for deals within the selected funnel — this is what lets you send a different value at each stage (Lead → SQL → Closed-Won) instead of just one value at close.
The deal's stages (name + stable ID) arrive ready to use — on the Value Optimization page they show up as a dropdown instead of free text, so renaming a stage in RD Station won't break routing. See Value Optimization.
Capturing the click ID (gclid / fbc)
With the tracking script installed on the site (with the account token), the click ID is sent straight to True Conversions together with the hashed email and joined with the lead when the webhook arrives — no form editing needed. Optionally, for maximum precision, the hidden fields (gclid, fbc, wbraid, gbraid, fbp) can travel inside the lead itself: RD Station CRM inherits them from RD Station Marketing (contact/deal custom fields).
Re-authorizing
The Reautorizar (Re-authorize) button on the RD Station CRM card reuses the token already saved — no need to paste it again — and:
- Re-registers the deal webhooks (fixes stale or deleted registrations in RD).
- Refreshes the funnel and stage list (needed after creating/renaming stages in RD, or if the funnels never loaded).
Disconnecting
Click Desconectar (Disconnect) on the RD Station CRM card. This removes the integration record from True Conversions. The webhooks stay registered in RD Station CRM until removed manually there.
Manual webhook
Use this section to connect any source that doesn't have a dedicated connect button in True Conversions.
When to use this
- Your own software / app / system, with no CRM — you fire the webhook straight from your code when the event happens (signup, sale, qualified lead, etc.).
- RD Station CRM on the Free plan (which has no API for the native connect in the section above).
- Any unlisted CRM — HubSpot, Salesforce, an automated spreadsheet, etc.
The mechanism is always the same: you send a POST with a JSON body to the account's webhook URL, True Conversions understands the fields automatically, and sends the conversion to Google Ads.
Step 1: Copy your webhook URL
- In your True Conversions dashboard, open the account (client).
- Click Integrações de CRM (CRM Integrations).
- In the URL de webhook manual (POST) (Manual webhook URL) card, copy the URL. It looks like:
https://conversions.nexopath.com/api/webhooks/<account-token>
This URL is unique per account — any POST request with a JSON body sent to it becomes a conversion event. It's ingestion-only and rate-limited, so it's safe to use.
Step 2: Send the POST (JSON)
There's no required format — True Conversions stores the raw body you send and understands the fields in Step 3. Tip: fire a test event first to capture a real payload.
Minimal payload example:
{
"email": "customer@example.com",
"gclid": "Cj0KCQ...",
"event_name": "signup",
"value": 100,
"currency": "BRL"
}
curl example (for you or your developer to test):
curl -X POST https://conversions.nexopath.com/api/webhooks/<account-token> \
-H "Content-Type: application/json" \
-d '{"email":"customer@example.com","gclid":"Cj0KCQ...","event_name":"signup","value":100,"currency":"BRL"}'
A {"received": true} response (HTTP 200) confirms the event was received.
How to fire the POST
A) From your own software (code). Make an HTTP POST from your backend the moment the event happens (signup, sale, lead). We recommend firing it server-side (not from the browser), so the URL isn't exposed and delivery is reliable.
B) From a CRM. Create a webhook in the CRM's integration settings pointing at the URL from Step 1, firing on the deal changes you want to track (created, stage change, won, lost).
⚠️ Don't run two RD integrations for the same funnel at once. If you also have RD Station Marketing connected via OAuth sending the same stages of the same deal, True Conversions records the two sources as separate conversions — there's no deduplication between them. When using the webhook as your funnel source, disable the Marketing webhooks (or set the corresponding stages to Ignorar (Skip) under Value Optimization).
Step 3: Fields True Conversions understands (auto-mapping)
If you name your JSON keys like the ones below, True Conversions maps everything automatically — with no manual setup. It accepts both English and Portuguese names:
| Key (accepted examples) | What it is | Required? |
|---|---|---|
email |
Primary match identifier | Email or phone |
phone · telefone · celular |
Match identifier | Email or phone |
gclid |
Google Ads click ID — greatly improves matching | Strongly recommended |
value · valor · amount |
Conversion/deal value | Recommended |
currency · moeda |
Currency (e.g. BRL) |
Optional |
event_name · evento |
Event/stage name (e.g. "signup") |
Recommended |
deal_id · negociacao_id · opportunity_id |
Permanent deal ID — required for Value Optimization | If using a funnel |
company_name · empresa · razao_social |
Company name — helps Lead Enrichment | Optional |
first_name · nome / last_name · sobrenome |
Improve matching | Optional |
Rule: email OR phone is required — those are the identifiers ad platforms use for matching. An event with neither (and no
gclid) is rejected by Google.
If your keys have different names or are nested (e.g. data.email), send a test event and map them manually under Mapeamento de campos (Field Mapping). See the full field list in Field Mapping.
Step 4: Connect Google Ads (prerequisites)
For conversions to actually upload, follow the full guide at Connecting Google Ads — summary:
- Create an Import-type conversion action, exclusive to True Conversions.
- Connect Google Ads on the account and select the Customer ID and conversion action.
- Enable "Enhanced conversions for leads" in Google Ads and accept the customer-data terms — without this, every send fails.
gclidgreatly improves matching. Capture it with the tracking script and send it in the payload.
Step 5 (optional): Value Optimization by funnel stage
Only if your source has funnel stages (a deal that advances: created → qualified → … → Closed-Won). In that case, send a stage field and the deal_id on each event, and configure under Value Optimization: the stages with their multipliers (%), the trigger stage, and the restate stages up to Closed-Won (100%). See Value Optimization.
For a single, flat event (a signup, a one-off sale, no funnel), skip this step — the event is sent normally with the value you provided.
Without
deal_id, value rules aren't applied — events are still sent, just without the per-stage multipliers.
Verifying
After configuring, fire a test event and watch Eventos recentes (Recent Events) on the account page — each event shows status, value sent, and the Google Ads delivery result. To browse history with a date filter and export as CSV, use the Ver todos (View all) button.
Click a row to expand it and see the Dados recebidos (Received data) section — every field that arrived in the webhook, field by field. It's the fastest way to confirm auto-mapping picked up the right fields.
Eventos recentes and Ver todos only show real deliveries (sent or failed) — an event skipped by Value Optimization (unconfigured stage, or no
deal_id) won't appear in either list. See Value Optimization.
If the webhook isn't arriving, the Tentativas de webhook recentes (Recent Webhook Attempts) section on the CRM Integrations page shows the last requests received — including rejected ones — which helps tell "the software isn't sending" apart from "it's sending, but something is being rejected." See How to Verify for the full walkthrough.