ClickFlare Integration Guide
Send call conversions from CallGrid to ClickFlare with the ClickFlare webhook template, including click ID capture, parameter mapping and testing.
Updated 6 min read
Browse the knowledge base
On this page
- Overview
- How the data flows
- Prerequisites
- Step 1: Send parameters to the landing page
- Step 2: Capture parameters as tags
- Step 3: Create the ClickFlare webhook
- What the template sends
- Step 4: Attach the webhook to the campaign
- Parameter mapping
- Events and timing
- Testing
- Best practices
- Troubleshooting
- Do it with AI
Overview#
ClickFlare is an ad tracker used by media buyers to measure spend and conversions. The integration does two things:
- Capture: the ClickFlare click ID (and UTMs) on the landing page URL reaches CallGrid as call tags, through the CallGrid tracking script and a number pool.
- Report back: when a call converts or becomes billable, a CallGrid webhook built from the ClickFlare Conversion Pixel template sends the click ID and the call's payout to ClickFlare.
The pattern is the same as RedTrack.
How the data flows#
- ClickFlare sends the visitor to your landing page with its click ID in the URL.
- The CallGrid tracking script swaps the page number for a number from the source's pool and holds it for that visitor.
- The visitor calls. CallGrid matches the call to the session and writes the URL parameters to call tags.
- The call routes normally.
- When the chosen event happens (for example Call Converted), the ClickFlare webhook fires with the click ID and payout.
- ClickFlare matches the click and records the conversion.
Prerequisites#
ClickFlare: a campaign with your landing page added as an offer, and ClickFlare's click ID token {cf_click_id} appended to that URL (for example ?clickid={cf_click_id}). You also need your ClickFlare tracking domain (for example mylandingpage.com) for the template's Landing Page Domain field.
CallGrid:
- A static campaign whose source uses a number pool, with the tracking script installed. Sources on bidding campaigns are Dynamic and do not use pools or the tracking script.
- Custom tags for the parameters you want (Integrations > Tags > New Tag; comma-separate names to create several).
Step 1: Send parameters to the landing page#
In ClickFlare, append tokens to the landing page URL, for example:
https://yourlander.com/insurance?clickid={cf_click_id}ClickFlare's click ID token is {cf_click_id} (ClickFlare also accepts {click_id}). To pass other values such as UTMs, map them to ClickFlare tokens (for example {trackingfield1}) in your ClickFlare traffic source settings and append those; ClickFlare's guide to passing traffic source data lists the exact tokens.
Step 2: Capture parameters as tags#
- Create a custom tag for each parameter under Integrations > Tags, named exactly as the URL parameter, including case (
clickid,utm_source). Tag names are case sensitive. - Install the tracking script exactly as the source's SDK Instructions dialog gives it. Do not add options that are not in that dialog.
- Test: open the page with
?clickid=test123, confirm the number swaps, call it, and check the call's tags in Reports.
If traffic arrives with the click ID under different names, create a Tag Alias (New Tag > Alias), for example ClickId with Alias Of tag:clickid|tag:cf_clickid. The alias reads the first non-empty tag. Use [[tag:ClickId]] in the webhook.
Pool misses lose attribution. If no pool number is free, the script shows the source's primary number; the call routes but carries no click ID. Watch Numbers > Pools > Misses.
Step 3: Create the ClickFlare webhook#

- Go to Integrations > Webhooks and click New Webhook.
- Name it, for example "ClickFlare - Converted".
- Event: usually Call Converted. Use Call Billable if ClickFlare should count billable calls.
- Template Mode: Conversion Pixel, then pick ClickFlare.
- Fill in the template fields:
- Landing Page Domain: your ClickFlare domain, for example
mylandingpage.com. Use your ClickFlare tracking domain, not the ClickFlare dashboard domain; a dashboard URL can return 200 with HTML and record nothing. - clickid URL parameter: the URL parameter you put ClickFlare's
{cf_click_id}token into on your lander, for exampleclickid. CallGrid captures that parameter as a tag (Step 2). If you use a Tag Alias, enter the alias name. - Event Name: the ClickFlare event name, for example
Lead.
- Landing Page Domain: your ClickFlare domain, for example
- Save Webhook.
What the template sends#

The template sends a GET request to your ClickFlare domain:
https://<Landing Page Domain>/cf/cv?click_id=[[tag:<clickid URL parameter>]]&payout=[[tag:CallPayout]]&txid=[[tag:CallId]]&ct=<Event Name>¶m1=[[tag:InboundNumber]]click_id: the value of the tag named in clickid URL parameter.payout:[[tag:CallPayout]], the call's payout. To report a different amount, edit the request and replace[[tag:CallPayout]]with another tag, for example[[tag:CallRevenue]].txid:[[tag:CallId]], the CallGrid call ID, which ClickFlare uses for de-duplication.ct: the Event Name you entered.param1:[[tag:InboundNumber]], the number the caller dialed.
Macros available: [[tag:TagName]], [[number:TagName]], [[hash:TagName]], [[lchash:TagName]], [[b64:value]] (base64 of a tag's value when a tag with that name exists, otherwise of the text itself). Single-brace tokens such as {payout} or {call_id} are not CallGrid syntax.
Step 4: Attach the webhook to the campaign#
A webhook fires only when attached.
- Campaigns > edit the campaign > General tab.
- Under Webhooks, add the ClickFlare webhook.
- Save.
Add one webhook per event if ClickFlare tracks several (for example a Billable goal and a Converted goal), and set ClickFlare to count only one as the primary conversion so ROI is not double counted.
Parameter mapping#
ClickFlare token | CallGrid tag (create as custom) | Use |
|---|---|---|
|
| Attribution key sent back |
|
| Reporting, filters |
|
| Reporting |
|
| Reporting |
|
| Reporting |
|
| Reporting |
ClickFlare's click ID token is {cf_click_id}. UTM values use the {trackingfieldN} token you map to each one in your ClickFlare traffic source settings (for example {trackingfield1}), so the number depends on your setup. The ClickFlare template's fields are Landing Page Domain, clickid URL parameter and Event Name.
Events and timing#
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.
- Call Answered fires before you know whether the call earns revenue; use Billable or Converted for ROI.
- A billable event fires when the call ends. A billable or conversion set by a Postback fires when the postback arrives.
- Webhooks also fire on transitions made by
PATCH /api/call(Revenue above 0 makes a call billable). - Webhooks authenticate with a shared secret in a query parameter or header. CallGrid does not retry failed webhooks.
Testing#

- Click through a ClickFlare tracking link to the lander.
- Confirm the number swaps; call it.
- In Reports > Call History, check the click ID tag and payout on the call.
- Let the call qualify for the event.
- Confirm the conversion and payout in ClickFlare.
Per-call webhook results are visible on the call timeline.
Best practices#

- Verify click ID capture with a test call before spending.
- Use Billable or Converted, not Answered, for ROI.
- Match time zones between CallGrid reports and ClickFlare when comparing daily counts.
- Size pools for concurrent visitors so calls keep attribution.
- Vendor report users see custom tags such as the click ID only when the vendor's Share Custom Tags setting (Edit Vendor) is on.
Troubleshooting#
Symptom | Likely cause | Fix |
|---|---|---|
Click ID missing on calls | Tag not created, casing mismatch, script missing, pool miss | Create the tag with exact casing; confirm script; check Misses |
Webhook never fires | Not attached on campaign General tab, or event never reached | Attach it; confirm calls reach the event |
ClickFlare records nothing | Dashboard domain instead of tracking domain; empty click ID | Fix the URL; send a real click ID |
Payout 0 | The call had no payout at the event, or the | Check the call's payout in Reports and the |
Endpoint blocks requests by IP | Receiver allowlist | Turn on Use Static IP for requests on the webhook; requests then come from 3.232.249.88 and 54.160.65.103, the same as destination Pings. Ask ClickFlare or the receiver to allow both |
Do it with AI#
Ask Griddy, Claude or ChatGPT. Try: "Which of my calls yesterday are missing the clickid tag?" 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.
- Setting Up RedTrack Conversion WebhookSend CallGrid call conversions back to RedTrack server to server: capture the click ID on the call, build the RedTrack webhook, then test it.