CallRail Integration
Connect TrolleyShield to CallRail to automatically analyze calls using AI and fire Google Ads offline conversions. CallRail sends call data via webhooks after each call completes, and TrolleyShield handles transcription (if needed), intent classification, and conversion tracking.
Requirements
- A Call Shield plan (Call Starter, Call Pro, or Call Agency)
- A CallRail account with API access
- A CallRail API key (found in Account → API Access in CallRail)
Setup
Setup takes about 2 minutes and requires pasting one URL into CallRail.
1. Connect Your CallRail Account
- Go to Settings → Integrations → CallRail in the TrolleyShield dashboard
- Enter your CallRail API key
- If your API key has access to multiple CallRail accounts, select the one you want to connect
- Select which trackers (and their numbers) to import — website pools are kept together as a group
- Click Import & Connect
2. Configure Webhooks in CallRail
After connecting, TrolleyShield displays a webhook URL. Copy it and paste it into two places in CallRail:
- In CallRail, go to Settings → Integrations → Webhooks
- Paste the webhook URL into the Post-Call URL field
- Paste the same URL into the Call Modified URL field
- Save
The Post-Call webhook fires after a call ends, but has a 20-minute timeout — if CallRail hasn't finished processing the recording and transcription by then, those fields may be missing. The Call Modified webhook fires when recording, transcription, or call summaries attach later. TrolleyShield handles both automatically — if a call arrives without a transcript, it will be backfilled and analyzed when the modified webhook fires.
How It Works
- A call completes in CallRail
- CallRail sends the post-call webhook to TrolleyShield with call data, transcript, recording, and attribution (gclid, UTM params, etc.)
- TrolleyShield processes the call:
- If CallRail provides a transcript, it's used directly
- If only a recording URL is available, TrolleyShield transcribes it automatically
- AI analyzes the transcript for intent classification
- If the call is a qualified lead with a gclid, a Google Ads offline conversion is queued
- If the recording or transcript arrives late (via the call-modified webhook), TrolleyShield backfills the data and runs analysis
Tracker Sync
When you connect CallRail, you choose which trackers to import:
- Source trackers (single number) — imported as one tracking number
- Session trackers (website pools) — all numbers in the pool are imported together as a group
After initial setup:
- Click Sync Numbers in Settings → Integrations → CallRail to re-sync from CallRail
- Numbers removed from CallRail are deactivated in TrolleyShield (call history is preserved)
- If a call comes in on a number that wasn't imported during setup, TrolleyShield auto-creates it
Data Captured from CallRail
TrolleyShield captures and stores rich metadata from each CallRail webhook:
| Data | Usage |
|---|---|
| Transcript / Recording | AI intent analysis and transcription |
| gclid, gbraid, wbraid | Google Ads conversion attribution |
| UTM parameters | Marketing attribution metadata |
| Landing page, referrer | Session context |
| Caller location | Enriches AI analysis |
| Tags, sentiment, lead score | Stored in call metadata |
| Call summary, highlights | Used to enrich AI analysis context |
| First call / prior calls | Caller history signals |
Conversion Tracking
Conversions are fired when all of these conditions are met:
- AI classifies the call as a qualifying intent (default:
qualified_lead) - AI confidence meets the minimum threshold (default: 80)
- Call duration meets the minimum threshold (default: 60 seconds)
- A gclid, gbraid, or wbraid is present from CallRail's session tracking
Configure conversion settings per tracking number in TrolleyShield:
- Conversion Action — which Google Ads conversion to fire
- Conversion Value — dollar amount to report
- Min Confidence — minimum AI confidence score
- Min Duration — minimum call length
- Qualifying Intents — which intents trigger conversions
For CallRail to capture gclid, you need session-level tracking (website pools) or keyword-level tracking enabled in CallRail. Source-level trackers (offline numbers) won't have gclid data unless you pass it manually.
Usage & Billing
- Each analyzed call counts toward your plan's call analyses limit
- If CallRail provides a transcript, no additional transcription cost is incurred
- If TrolleyShield transcribes from the recording URL, standard transcription rates apply
- Paid plans allow overages beyond included limits
- Auto-created tracking numbers from CallRail webhooks do not count toward your number limit
Disconnecting
- Go to Settings → Integrations → CallRail in TrolleyShield
- Click Disconnect
- CallRail tracking numbers are deactivated (existing call data and analyses are preserved)
- Remove the webhook URLs from CallRail's webhook settings
Troubleshooting
"CallRail integration not configured" Error
- Ensure you've completed the setup in Settings → Integrations → CallRail
- If you recently disconnected, you'll need to reconnect with your API key
Calls Not Appearing in TrolleyShield
- Verify the webhook URL is pasted correctly in CallRail (both Post-Call and Call Modified)
- Check that the CallRail account/company matches the one connected in TrolleyShield
- Ensure the tracking number is from a tracker you selected during setup (or auto-creation will handle it)
Calls Appearing Without Analysis
- The post-call webhook may have fired before the transcript was ready (20-minute timeout)
- The call-modified webhook should backfill the transcript and trigger analysis automatically
- If both webhooks are configured and analysis still doesn't run, check your plan's usage limits
"Invalid CallRail API key" Error
- Verify the API key in CallRail under Account → API Access
- API keys are user-scoped — ensure the key belongs to a user with access to the target account
- Generate a new key if the current one has been revoked