Webhook tool

Notion AI voice agents that file every call in a database

The agent takes the call, and a webhook tool sends the caller, the reason and a short summary to a service of yours, which adds a page to your Notion database.

Call intake agent

Takes the caller's details and files the call in Notion.

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 a summary of two or three sentences that includes any promise you made.

Connected tools

  • Log callWebhook

What a Notion AI voice agent can do

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

Each call becomes a page in the database you pick, with the caller's name as the title and the reason and summary as properties.

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

Sends the call details to your service, which creates a Notion page.

Show the JSON definition
log_call
{
  "type": "webhook",
  "name": "log_call",
  "description": "Files this call as a new page in the team's Notion database. Call it once, near the end of the call.",
  "pre_tool_speech": "auto",
  "execution_mode": "async",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.your-company.com/notion/call-log",
    "method": "POST",
    "request_body_schema": {
      "type": "object",
      "properties": {
        "caller_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."
        },
        "summary": {
          "type": "string",
          "description": "Two or three sentences on what was asked and what was promised. Under 1,500 characters."
        }
      },
      "required": [
        "caller_name",
        "reason",
        "summary"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  }
}

Set it up

No native connector. The tool calls a service of yours, which holds a Notion internal connection token and creates pages with the Notion API. Vendor details read in November 2026.

  1. Create an internal connection

    A workspace owner creates the connection in Notion's Developer portal and copies its API token from the Configuration tab into your service.

  2. Share the database

    Open the database, use the ••• menu and Add connections to share it with the connection, then copy the data source ID from Manage data sources.

  3. Run the create endpoint

    Your service sends POST https://api.notion.com/v1/pages with Notion-Version 2026-03-11 and a data_source_id parent, filling the title, phone_number, rich_text and select properties.

  4. Add the tool and test

    Point the tool at your service with a bearer secret, call the agent, and check that the page appears in the database.

Before you build

Why a service in the middle

Notion's title and text values are lists of rich text objects. A webhook tool can't fill fields inside a list, so your service builds the page body.

Use the data source ID

Since API version 2025-09-03, pages go under a data source, not a database. A database with a second data source breaks page creation for older integrations.

Three requests a second

Notion allows an average of 3 requests a second on most plans and 10 on Business and Enterprise, and answers 429 rate_limited above that.

2,000 characters per text block

Each rich text object holds up to 2,000 characters. Have your service split a long summary into several objects, or cut it.

Enterprise-grade security

  • HIPAA compliant badge

    HIPAA compliant

  • SOC 2 Type 2 badge

    SOC 2 Type 2

  • GDPR badge

    GDPR

Notion AI voice agent FAQs

Can an AI voice agent create pages in Notion?

Yes, through a service of yours. A Cartesia webhook tool sends the caller, the reason and a short summary, and the service creates a page in your Notion database with the Notion API. There is no native Notion integration, and the agent does not read your workspace.

Why does the Notion setup need a service?

Notion's title and text values are lists of rich text objects, and Cartesia's webhook tool docs say dynamic variables can't fill fields inside a list. Your service builds the page body, holds the internal connection token, and splits summaries longer than 2,000 characters into several text objects.

Which Notion ID does the service need?

The data source ID, not the database ID. Since API version 2025-09-03, pages go under a data source. Copy it from Manage data sources on the database, after you share the database with the connection through Add connections.

Can I use a public connection instead?

Yes. Public connections use OAuth, so your service stores the access token and refresh token from each authorization and refreshes them when needed. An internal connection is simpler when the agent only writes to your own workspace.

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

Agents run at $0.03/min, plus LLM usage and telephony. Each call is one Notion API request, well inside Notion's average of 3 requests a second on most plans.

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