Integrations

Connect CallRail

Connect CallRail with an account API key, capture LeadJourney's clickId cookie on every call, paste the webhook URLs into CallRail and map calls and form submissions onto your conversions.

Connecting CallRail turns inbound phone calls and CallRail form submissions into LeadJourney conversions, attributed back to the ad click that made the phone ring. CallRail connects with an account API key (there's no OAuth). You paste the key, choose which CallRail companies belong to this workspace, and copy the webhook URLs LeadJourney generates into CallRail. For attribution, CallRail has to capture LeadJourney's clickId cookie on each call. Mapped events flow through the same postback pipeline as your offline conversions, so they pick up every ad postback you've already configured.

Before you start

Have these ready so the connection works end to end:

  • An active LeadJourney workspace and a CallRail account where you can create an API key and edit webhooks and tracking sources.
  • Tracking is live on the site you advertise: the LeadJourney tracking script sets the clickId cookie CallRail captures. See Install the tracking script.
  • Dynamic Number Insertion (DNI) in CallRail, or the plan to set it up (step 3).
  • At least one conversion type to map onto (e.g. BookedCall). Set these up first in the Events Manager.

Where to find it

Open Settings → Apps, or go to app.leadjourney.io/settings?slug=apps. Click the CallRail card (under Call Tracking Tools) to open the integration. While you're not connected you'll see a “Connect your CallRail account” card; once connected, the same screen shows your account, the Companies you convert calls from, your Webhook URLs and your Triggers.

Step by step

Paste your API key

In CallRail, open Account → API Keys and create (or copy) an API key. Back in LeadJourney, on the Connect your CallRail account card:

  1. CallRail API Key: paste the key.
  2. Webhook signing secret (optional): if you set a signing secret on your CallRail webhooks, paste it here so LeadJourney can verify incoming deliveries. Leave it blank if you don't use one.
  3. Click Connect.

LeadJourney validates the key by calling the CallRail API. The key is stored encrypted and only used to read your account for the mapping UI. You'll see a “CallRail connected” confirmation.

Choose the account and companies

CallRail nests Account → Company → Calls, and an agency usually runs one company per client, so one API key can see every client's calls.

  • CallRail account: this panel only appears if your key can see more than one account. Pick the one this workspace should pull calls from (Select a CallRail account…). Until you do, LeadJourney can't list companies or convert any calls.
  • Companies: tick the companies whose calls belong in this workspace, then click Save selection. All companies converts every company, including any added later. Use Search companies… to find one and Refresh list to re-read the list from CallRail.

When you pick specific companies, you also choose what happens when a call arrives without a company. Each option is explained next to it.

Set up click ID capture in CallRail

Attribution only works when the LeadJourney click ID reaches CallRail. In CallRail:

  1. Turn on Dynamic Number Insertion (DNI): create a tracking source with a website / number pool and enable session (JavaScript) tracking on the site you advertise.
  2. Add a Custom Cookie Capture rule that captures the first-party cookie clickId (already set by the LeadJourney tracking script).

CallRail then includes the value on every call it sends as custom.clickId.

Paste the webhook URLs into CallRail

The Webhook URLs panel lists one URL per event, each with a Copy button:

  • Post-call webhook: fires after a call ends. Use CallRail's Post-Call webhook.
  • Call modified webhook: fires when a call is later edited (e.g. tagged or qualified).
  • Form submission webhook: fires when a CallRail form is submitted.

Paste each URL into the matching webhook in that company's CallRail → Settings → Integrations → Webhooks.

Company-specific URLs

Once you've picked specific companies, LeadJourney shows one set of URLs per company. Paste each company's URLs into that company's webhook settings. Using the wrong company's URL drops its calls or credits them to the wrong company. If you set up webhooks before picking companies, re-paste the new URLs: the older ones don't name a company.

Add a trigger

In the Triggers panel (“Each trigger maps a CallRail event to one of your conversions.”) click Add trigger. In the New CallRail trigger dialog:

  1. App: CallRail (already selected).
  2. LeadJourney Event: pick the conversion type this event should record, e.g. BookedCall. (No options? Create one under Settings → Events first.)
  3. Trigger: choose the CallRail event: a completed call, a modified call or a form submission. Use Search triggers… to filter.

Click Continue.

Receive data and confirm the mapping

The dialog opens a three-tab flow:

  • Receive Data: click Find latest data to load the most recent records for that event from your CallRail account. If none exist yet, place a test call (or submit a test form) through CallRail first. Mapping is against the call webhook payload, so you can also just type the field names CallRail sends on the next tab.
  • Configure Mapping: map onto Email, Name, Phone, click_id, Revenue and Currency (add First name / Last name or your own fields with Add custom field). Typical sources are customer_email, customer_name, customer_phone_number and value. Mapping click_id from custom.clickId is recommended but optional.
  • Filtering (optional): click Add filter and set Path, Operator and Value. A common one for calls is answered equals true.

Click Save & Continue to finish.

How calls link to the right campaign

The LeadJourney tracking script sets the clickId cookie when a visitor arrives from your ad. DNI shows that visitor a tracking number, and the Custom Cookie Capture rule attaches the cookie to the call. CallRail sends it as custom.clickId, your trigger maps it to click_id, and the call arrives tied to the click, and therefore the campaign, ad set and ad, that earned it. Without a click ID, email or phone can still be used to match.

Managing your triggers

Each trigger appears as a row (CallRail event → conversion type) with an Active / Paused pill and a summary of how many fields and filters it uses.

  • Pause / Resume: use the toggle to stop a trigger temporarily without deleting it.
  • Edit: change the event, mapping, filters or target conversion.
  • Delete: remove a single trigger (type delete to confirm); others keep running.
  • Add another: e.g. completed calls to BookedCall and form submissions to Lead.

Reconnecting

If CallRail rejects the key (usually because it was rotated or revoked) or doesn't respond, the header flips to Needs reconnect and a banner explains why (“CallRail rejected your API key” or “CallRail is unreachable”). Click Reconnect to open the connect form again and paste a fresh key. Update API key in the header does the same at any time. Your triggers and settings are kept.

Disconnecting

To remove CallRail, click Disconnect in the header, type disconnect and confirm with Disconnect CallRail. This is deliberate because it's destructive:

Disconnect deletes your triggers

Disconnecting permanently removes the CallRail account from this workspace, deletes every trigger and drops the stored API key. CallRail events stop flowing into your conversions immediately. You can reconnect later, but your trigger configuration won't be restored. The webhooks you pasted live in CallRail, so remove them under Settings → Integrations → Webhooks if you don't plan to reconnect.

Troubleshooting

Calls come in but aren't attributed to a campaign?

Check that (1) the tracking script runs on the site you advertise, (2) DNI is active there, (3) the Custom Cookie Capture rule captures the cookie named exactly clickId, and (4) the trigger maps click_id from custom.clickId and is Active.

Calls stopped arriving after you picked companies?

The webhooks in CallRail probably still use the older URLs that don't name a company. Copy the company-specific URLs from the Webhook URLs panel and paste them into each company's webhook settings again.

Another client's calls show up in this workspace?

The workspace is converting All companies. In the Companies panel, tick only the companies that belong here and click Save selection, then paste the company-specific webhook URLs.

A selected company “no longer exists”?

LeadJourney keeps a selection CallRail no longer lists instead of widening it, so no calls are converted for it. Click Refresh list, pick the replacement company and Save selection.

No records when you click “Find latest data”?

There's nothing recent for that event yet. Place a test call or submit a test form through CallRail, then click Find latest data again, or type the field names on Configure Mapping directly.

Common questions