Webhook tool

Airtable AI voice agents that log every caller as a record

The agent takes the call, and a webhook tool creates a record in your Airtable table with the caller's name, number, reason and how the call ended.

Call intake agent

Takes the caller's details and logs them to Airtable.

Instructions

Ask for the caller's name and what they are calling about. Before the call ends, log the call with a one-line reason and the outcome, which is answered, callback requested or message taken.

Connected tools

  • Log callWebhook

What a Airtable AI voice agent can do

Open one to watch a call. The grey lines are the tools the agent calls mid-sentence.

Name, phone number, reason and outcome go into the fields you choose, one new record for each call, in the order they came in.

Tool definitions

Webhook tools go to POST /v1/agents/tools. Transfers are a system tool on the agent. Replace the placeholder values in capitals with your own.

Webhook

Log call

Creates one record in your Airtable table.

Show the JSON definition
log_call
{
  "type": "webhook",
  "name": "log_call",
  "description": "Logs this call as a new record in the call table. Call it once, near the end of the call.",
  "pre_tool_speech": "auto",
  "execution_mode": "async",
  "response_timeout_secs": 15,
  "api_schema": {
    "url": "https://api.airtable.com/v0/YOUR_BASE_ID/YOUR_TABLE_ID",
    "method": "POST",
    "request_body_schema": {
      "type": "object",
      "properties": {
        "fields": {
          "type": "object",
          "properties": {
            "Name": {
              "type": "string",
              "description": "The caller's full name, as they gave it."
            },
            "Phone": {
              "type": "string",
              "dynamic_variable": "system__caller_id"
            },
            "Reason": {
              "type": "string",
              "description": "Why they called, in one line."
            },
            "Outcome": {
              "type": "string",
              "enum": [
                "answered",
                "callback_requested",
                "message_taken"
              ],
              "description": "How the call ended."
            }
          },
          "required": [
            "Name",
            "Reason",
            "Outcome"
          ]
        }
      },
      "required": [
        "fields"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_AIRTABLE_TOKEN"
      }
    }
  }
}

Set it up

No native connector. The tool calls the Airtable Web API directly, with a personal access token you create and store as a bearer secret. Vendor details read in November 2026.

  1. Set up the table

    Add fields named Name, Phone and Reason, and a single select called Outcome with the options answered, callback_requested and message_taken.

  2. Create a personal access token

    At airtable.com/create/tokens, create a token with the data.records:write scope and add only this base. The token can do only what your account can do there.

  3. Add the tool

    Put the base ID and table ID in the URL, and store the token as a bearer secret. The Phone field reads system__caller_id, so the model never fills it.

  4. Test with a real call

    Call the agent, give a name and a reason, and check that the new record appears in the table with the caller's number.

Before you build

Five requests a second per base

Airtable allows 5 requests a second per base and answers 429 above that, then refuses requests for 30 seconds. One write per call is fine, unless other scripts share the base.

Use the table ID

Table names also work in the URL, but Airtable recommends table IDs, so the tool keeps working when someone renames the table.

Values must fit the field

Airtable turns off automatic type conversion unless a request sets typecast. Keep the Outcome enum and the single select options spelled the same.

Tokens don't expire by default

A personal access token stays valid until you delete or regenerate it, unless an enterprise admin sets a maximum lifetime. Regenerating breaks the old value at once.

Enterprise-grade security

  • HIPAA compliant badge

    HIPAA compliant

  • SOC 2 Type 2 badge

    SOC 2 Type 2

  • GDPR badge

    GDPR

Airtable AI voice agent FAQs

Can an AI voice agent log calls in Airtable?

Yes. A Cartesia webhook tool calls Airtable's create records endpoint and adds one record per call, with the caller's name, number, reason and outcome. It uses a personal access token you create. There is no native Airtable integration.

What access does the Airtable token need?

The data.records:write scope on this one base. Create the token at airtable.com/create/tokens, and add only this base. A token can never do more than your own Airtable account can in that base.

Can the agent read my Airtable bases?

No. The tool on this page only creates records, and the token reaches only the bases you add when you create it. The phone field comes from caller ID through system__caller_id, so the model never fills it.

What happens if I hit Airtable's rate limit?

Airtable allows 5 requests a second per base and answers 429 above that, then refuses requests for 30 seconds. One write per call stays well under the limit, unless other scripts share the base.

How much does a voice agent that logs to Airtable cost?

Agents run at $0.03/min, plus LLM usage and telephony. The Airtable write is one API request per call against your own Airtable account, with no middleware to pay for.

Get started today

Talk to an expert.

Connect with a member of our team and learn how Cartesia can help you build world-class voice experiences.

Contact Sales

Start building.

Access our models via API and bring a voice agent into production in minutes.

Try Cartesia