Skip to main content
A pre-answer lookup runs while the phone is still ringing, before the agent speaks. Its result is added to the agent’s context, so the AI greeting can use it — for example, “Hi Denise, thanks for calling! How can I help?” instead of “May I have your name, please?”. The ringing time is dead air the caller already spends. A lookup that finishes during it costs the caller nothing, while a lookup the AI makes after answering adds a noticeable pause before the agent’s first useful line. Common uses:
  • Recognize the caller from their number in your CRM
  • Check a blocklist or do-not-call list
  • Look up the caller’s account tier or VIP status
  • Find the caller’s open support tickets

Two ways to run a pre-answer lookup

Both run in the background as soon as the call arrives (on an outbound call, once the person answers), and neither ever delays the greeting.

Option 1: Before Call webhook

Add a webhook and set its condition to Before Call. The request body includes the caller’s number, and you can use {{caller_id}} in a parameter value. The response body is added to the agent’s context. See CRM Integration (Before Call) for a full example.
You can configure one Before Call webhook per agent. If your agent editor shows a Pre Answer function, use a Before Call webhook instead and enter your own URL — it is the same kind of webhook, set up explicitly.

Option 2: MCP tools while the phone rings

Use this when the data lives behind an MCP server the agent is already connected to.
1

Open the MCP connection

Open the agent → Integrations → Model Context Protocol (MCP), select the connection, and click Edit.
2

Load the tools

Click Test Connection. This loads the tools and each tool’s inputs, which the form below needs — the Look things up while the phone rings section appears once the tools are known. A tool must be turned on in the connection’s Tools list to be used here. The section isn’t offered on an OpenTable reservation agent’s StayAPI connection.
3

Add a tool

Under Look things up while the phone rings, click Add a tool and choose a lookup tool, such as a contact search.
4

Fill in its inputs

Each of the tool’s inputs appears as a field, with required ones marked *. Type fixed values directly (for example your CRM’s location or account ID), or, on text inputs, use Insert value to add a value from the call:Placeholders are filled in as text, so use them in text inputs; a number input holding a placeholder fails “must be a number”. You can mix fixed text and placeholders in one value, for example tel:{{caller_id}}.
5

Save

Click Update Connection (Save Connection for a new connection). In Connect the button reads Update / Connect, or Update Server / Connect Server in the modern view. Save checks that each tool is turned on, appears only once, has its required inputs filled, and uses only the placeholders above. If Save had to test the connection itself and that test loaded a tool’s inputs for the first time, it stops so you can fill them in — review them and save again.
Then give the agent an AI greeting prompt that uses the result, for example:

How it behaves on a call

  • All tools run at the same time, as soon as the caller’s details arrive and the MCP connection is ready.
  • The AI greeting waits for all of them, but only until it would be heard: until the static greeting finishes, or, with no static greeting, until the agent would start speaking. If every result is in by then, the greeting uses them.
  • If they take too long, the agent gives a neutral greeting that doesn’t guess anything, and the results are used from its next reply onwards.
  • If the caller’s number is hidden, any tool that uses {{caller_id}} is skipped. Tools that don’t need it still run.
  • Each lookup appears in the call transcript as a tool call with its inputs and result (and how long it took, when it ran). Failed and skipped lookups are recorded too and are never read out by the agent. Nothing is recorded if the MCP server can’t be reached when the call starts, or if the call ends before the lookups finish.
  • Results are given to the agent as data. Each result is limited to 4,000 characters in the agent’s context (the transcript keeps it in full), so narrow the lookup — for example a limit of 1 — to keep the caller’s details within it.
  • Outbound calls: there is no ringing on your side, so the lookups run once the person answers, and {{caller_id}} is the number being called.
  • Agent-to-agent transfers: the lookups run once per call, for the agent that answers. They don’t run again for the agent a call is transferred to.
Keep it to 1–2 tools. The greeting waits for every tool, so one slow tool means the greeting goes out without any of the results. The dialog shows a warning once you choose 3 or more.
Choose lookup tools only. These tools run on every call, before anyone has spoken. Never pick a tool that books, sends, charges or changes anything. The dialog warns you when the MCP server doesn’t mark a tool as read-only.

Via the API

MCP pre-answer tools are stored on each connection as pre_answer_calls. See Create Agent — MCP Servers Request Body for the fields and rules, and Get Agent for the stored shape.

Troubleshooting