Setting Up RedTrack Conversion Webhook
Send CallGrid call conversions back to RedTrack server to server: capture the click ID on the call, build the RedTrack webhook, then test it.
Updated 7 min read
Browse the knowledge base
On this page
Overview#
RedTrack is an ad and affiliate tracker. The integration sends CallGrid call conversions back to RedTrack server to server, so RedTrack can attribute a phone call to the click that produced it and report revenue per campaign, source and creative.
It has two halves:
- Capture the RedTrack click ID on the call. The visitor lands on a page carrying the RedTrack click ID in the URL. The CallGrid tracking script (number pools) swaps in a tracking number and attaches the visit's URL parameters to the call as tags.
- Send the conversion to RedTrack. A webhook built from the RedTrack template (Conversion Pixel) fires on a call event and passes the click ID and revenue back to RedTrack's postback endpoint.
How the data flows#
- RedTrack generates a tracking link and appends its click ID to the landing page URL.
- The visitor lands on the page; the CallGrid tracking script requests a number from the source's number pool and replaces the displayed number.
- The visitor calls that number. CallGrid matches the call to the session and writes the visit's URL parameters to the call's tags.
- The call routes normally. When the webhook's event occurs (for example Call Converted), CallGrid sends the webhook request.
- RedTrack matches the click ID to the original click and records the conversion and revenue.
Prerequisites#
RedTrack:
- An active RedTrack account and a campaign that accepts postback conversions.
- Your RedTrack subdomain, for the template's Subdomain field (the template adds
.redtrack.io). - The URL parameter that carries the RedTrack click ID to your landing page. RedTrack's click ID token is
{clickid}, usually passed asclickid={clickid}; RedTrack's universal tracking script can also appendrtkcid. Check your RedTrack campaign for the name your links use.
CallGrid:
- A static campaign with a source that uses a number pool, and the tracking script installed on the landing page. Sources on bidding (RTB) campaigns are Dynamic and do not use number pools or the tracking script.
- A custom tag to hold the click ID (Integrations > Tags > New Tag). Tag names are case sensitive, so match the URL parameter's casing exactly.
Step 1: Capture the click ID#
- Create the custom tag for the click ID in Integrations > Tags. Use the parameter name exactly as it appears in the URL, including case.
- Install the tracking script on the landing page exactly as the source's SDK Instructions dialog gives it. Do not add configuration options that are not in that dialog.
- Open the landing page with a test click ID, for example
?rtkcid=test123, confirm the number swaps, place a test call, and confirm the tag appears on the call in Reports.
If the click ID can arrive under more than one name, create a Tag Alias instead of hand-editing every webhook. In Integrations > Tags > New Tag, switch to Alias and set Alias Of to a chain such as tag:rtkcid|tag:clickid. The alias "reads the first non-empty tag in the chain, left to right." Reference the alias anywhere as [[tag:AliasName]]. Alias names are case sensitive, like all tag names.
Number pool misses lose attribution. When no pool number is free, the script keeps the source's primary number on the page; the call still routes, but the click ID and other URL parameters are not attached. Watch the Misses column on Numbers > Pools.
Step 2: Create the RedTrack webhook#

Webhooks live under Integrations, not on the destination. (The destination's outbound request to a buyer is its Ping, a different feature.)
- Go to Integrations > Webhooks and click New Webhook.
- Enter a Name.
- Choose the Event that should send the conversion. Most RedTrack setups use Call Converted; use Call Billable if RedTrack should count billable calls instead.
- Set Template Mode to Conversion Pixel and pick RedTrack.
- Fill in the template's fields and review the request in the request editor. Confirm the click ID parameter references your click ID tag (or alias), for example
[[tag:rtkcid]], and that the revenue parameter (sum) references[[tag:CallRevenue]], which the template inserts. - Optional: Timeout and Authorization (OAuth token fetch, only if your endpoint requires a bearer token; RedTrack postbacks normally do not).
- Click Save Webhook.
Attach the webhook to the campaign#
A webhook fires only when it is attached to a campaign.
- Open Campaigns, edit the campaign, and stay on the General tab.
- Under Webhooks, add the RedTrack webhook.
- Save the campaign.
Available events#
Call Inbound, Call Initiated, Call Ended, Call Error, Call Answered, Call Billable, Call Paid, Call Converted, Insights Completed, Transcription Completed, Recording Completed, Bid Received, Postback Received.
Timing note: a billable event fires when the call ends, not at the moment the call crosses its billable duration. A billable or conversion set by a postback fires live when the postback is received. Webhooks also fire on transitions made by the API bulk edit (PATCH /api/call), for example when Revenue is set above 0.
Request body and tags#

- Insert a tag value with
[[tag:TagName]]. Use[[number:TagName]]for a numeric value instead of a string,[[hash:TagName]]for a SHA-256 hash,[[lchash:TagName]]for a hash of the lowercased, whitespace-stripped value, and[[b64:value]]for base64. Webhooks use the same editor as Pings, so all of these macros, plus[[call:FieldName]], work in the URL and in every body type. - Request bodies do not evaluate expressions. Conditional logic such as
Duration >= 90 ? 'approved' : 'rejected'is not supported. Put the qualification rule in CallGrid instead: choose the event (Call Converted or Call Billable) and set the conversion or billable rules on the destination and campaign, so the webhook only fires for qualifying calls. - Only values that exist as tags on the call can be sent. A tag with no value is sent empty.
- Unrelated JSON fields such as
ip_address,user_agentor multi-touch attribution objects are not CallGrid tags; do not add them unless you have created and populated those tags yourself.
Example GET postback#
The template builds the request for you. If you edit it, RedTrack's S2S postback takes the click ID in clickid and the conversion payout in sum (an optional type sets the conversion type):
https://<your-redtrack-postback-domain>/postback?clickid=[[tag:rtkcid]]&sum=[[tag:<revenue tag>]]Point the URL at your RedTrack postback or tracking domain, not at the RedTrack dashboard UI domain. A dashboard URL can return HTTP 200 with an HTML page and record nothing.
Testing#


- Send a test click through your RedTrack tracking link to the landing page.
- Confirm the number swaps and call the displayed number.
- In Reports > Call History, open the call and check the click ID tag and revenue.
- Make the call qualify for the event you chose (for example, stay on past the billable duration so it converts).
- Check RedTrack for the conversion and matching revenue.
For a request-level test without a live call, open the webhook, fill in the Test Variables under Webhook Testing and click Run Webhook.
Troubleshooting#
Symptom | Likely cause | Fix |
|---|---|---|
Click ID missing on calls | Tag not created, casing mismatch, script missing, or pool miss | Create the tag with exact casing, confirm the script, check Pools Misses |
Webhook never fires | Not attached on the campaign General tab, or the event never happens | Attach it; confirm calls reach Converted or Billable |
RedTrack shows nothing, CallGrid shows the call | Wrong domain (dashboard instead of postback), wrong click ID parameter, empty click ID | Fix the URL; send a real click ID |
Revenue is 0 in RedTrack | Revenue tag not in the request, or the call had no revenue at event time | Check the revenue parameter; for postback-billed destinations revenue comes from the postback |
Counts differ between platforms | Different conversion definitions, time zones, pool misses, duplicates | Align the event with RedTrack's goal; compare the same date range and time zone |
RedTrack firewall rejects requests | IP allowlist on the receiving side | Static IPs 3.232.249.88 and 54.160.65.103 are used by destination Pings and event webhooks when Use Static IP for requests is checked |
Best practices#
- Start with click ID and revenue only; add more fields once those match.
- Keep one conversion definition per RedTrack goal and choose the CallGrid event to match it.
- Use Tag Aliases for click IDs that arrive under different parameter names.
- Size number pools for concurrent visitors so calls keep their attribution.
- Compare a sample of calls between CallGrid Reports and RedTrack weekly for the first month.
Getting help#
Contact CallGrid support at support@callgrid.com with the campaign name, a call ID and a screenshot of the webhook request.
Do it with AI#
Ask Griddy, Claude or ChatGPT. Try: "Did the RedTrack webhook fire on my last converted call, and what did RedTrack return?" Claude and ChatGPT need the CallGrid connector turned on (setup guides for Claude and ChatGPT).
The connector is read only. It looks things up and reads your data. You make the changes in CallGrid.
Was this article helpful?
Related articles
- CallGrid MCP: Connect to ChatGPTAsk ChatGPT about your CallGrid account in plain English. Connect the CallGrid app once, then pull campaigns, buyers, numbers and more.
- CallGrid MCP: Connect to Claude (Desktop)Connect Claude to your CallGrid account with the hosted MCP server: turn on MCP access, add the connector, sign in once, and start asking about your calls.
- ClickFlare Integration GuideSend call conversions from CallGrid to ClickFlare with the ClickFlare webhook template, including click ID capture, parameter mapping and testing.