> ## Documentation Index
> Fetch the complete documentation index at: https://docs.recepta.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# CallRail

> Pointing CallRail tracking numbers at Recepta.ai while keeping your attribution.

CallRail isn't a phone system — it's a call tracking layer. Each tracking number forwards to a **destination number**, and CallRail records which ad, keyword, or campaign produced the call on the way through.

So "forwarding" here means setting the destination on your tracking numbers to your Recepta.ai number. Attribution keeps working; Recepta.ai handles the conversation.

<Note>
  Read [How call forwarding works](/call-forwarding/conditional-forwarding) first — it covers the caller-ID check that matters on every provider.
</Note>

## Before you start

* Your Recepta.ai number, from **Phone numbers** in the dashboard
* Access to your CallRail account

## Point tracking numbers at Recepta.ai

<Steps>
  <Step title="Open your tracking numbers">
    In CallRail, go to the tracking numbers for the company whose calls you want Recepta.ai to answer.
  </Step>

  <Step title="Edit the destination number">
    For each tracking number, set the destination to your Recepta.ai number in full: `+15551234567`.
  </Step>

  <Step title="Include your dynamic numbers">
    If you use dynamic number insertion on your website, that pool swaps numbers per visitor. Every number in the pool needs the same destination, or some visitors reach the AI and others don't.
  </Step>

  <Step title="Turn off the whisper message">
    Critical — see below.
  </Step>

  <Step title="Decide about call recording">
    See below.
  </Step>

  <Step title="Test each source">
    Call a tracking number from a mobile and confirm it appears in [Call logs](/receptionist/call-logs) with your mobile as the caller, and in CallRail with the right source attributed.
  </Step>
</Steps>

## Turn off whisper messages

<Warning>
  CallRail can play a **whisper message** to whoever answers — something like "call from Google Ads" — before connecting the caller. That message is played *to the answering party*, which is now your AI agent.

  The agent will hear it as the first thing on the call and may respond to it as though a person had spoken. **Deselect the checkbox next to "Whisper message"** on any tracking number pointed at Recepta.ai.

  CallRail's own documentation acknowledges this conflict: an automated answering service on the destination number interferes with whisper messages, because the whisper plays the moment the call connects rather than when a person picks up.
</Warning>

Some setups also require the answerer to press a key to accept the call. Disable that too — nobody is there to press it, and the call will fail.

## Call recording

CallRail records calls, and so does Recepta.ai when you have recording enabled. Running both means two copies of the same conversation in two systems, and two sets of retention and consent obligations.

<Columns cols={2}>
  <Card title="Record in Recepta.ai" icon="circle-check">
    Recordings sit next to the transcript, outcome, and contact, which is where you'll actually review them. Turn CallRail recording off.
  </Card>

  <Card title="Record in CallRail" icon="chart-line">
    Reasonable if your team already reviews calls there alongside attribution. Turn Recepta.ai recording off to avoid duplicates.
  </Card>
</Columns>

<Warning>
  Whichever you choose, the caller must still be told the call is recorded, and only one system should be doing the announcing — two disclosures at the top of a call is a poor experience. See [Recording & consent](/phone/recording-and-consent).
</Warning>

## Keeping attribution useful

CallRail tells you a call came from a paid campaign. Recepta.ai tells you what the caller wanted and whether it booked. Together they answer the question that matters: which campaigns produce **booked jobs**, not just calls.

<Tip>
  Use a separate tracking number per campaign, all pointing at Recepta.ai. Then match CallRail's source data against outcomes in [Call logs](/receptionist/call-logs) to see which sources actually convert — not just which ring the phone.
</Tip>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The agent starts talking about something odd at the beginning">
    A whisper message is being played to it. Turn whisper off on that tracking number.
  </Accordion>

  <Accordion title="Calls never connect">
    A key-press-to-accept requirement is set on the tracking number. Disable it — nothing is there to press a key.
  </Accordion>

  <Accordion title="Call logs show a CallRail number instead of the real caller">
    Check the caller ID setting on the tracking number so it passes the original caller through rather than substituting the tracking number.
  </Accordion>

  <Accordion title="Only some website visitors reach the agent">
    Your dynamic number pool has numbers with the old destination. Update every number in the pool.
  </Accordion>
</AccordionGroup>

<Note>
  Texts to CallRail tracking numbers are handled by CallRail's own texting features and are **not** passed to Recepta.ai. See [How call forwarding works](/call-forwarding/conditional-forwarding).
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.