Webhook tool

ServiceTitan AI receptionist that books the job on the call

A Cartesia agent answers your ServiceTitan line, finds the customer, checks openings and books the job through webhook tools, and sends emergencies to dispatch.

Service call agent

Answers service calls, books jobs, and sends emergencies to dispatch.

Instructions

Look up the caller by phone number. Ask what is wrong and the job type, check openings, and book the one the caller picks. If the caller reports an emergency, transfer to dispatch. Never promise a price.

Handoff
Dispatch, for emergencies

Connected tools

  • Look up customerWebhook
  • Check openingsWebhook
  • Book jobWebhook
  • Transfer to dispatchTransfer

What a ServiceTitan AI voice agent can do

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

A lookup by phone number returns the customer, address and open jobs, so the agent skips questions ServiceTitan already answers.

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

Look up customer

Finds the customer, address and open jobs by caller phone number.

Show the JSON definition
look_up_customer
{
  "type": "webhook",
  "name": "look_up_customer",
  "description": "Finds the customer and their open jobs by phone number. Use it at the start of every call. Saves customer.id from the response as customer_id.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.your-company.com/servicetitan/customers",
    "method": "GET",
    "query_params_schema": {
      "properties": {
        "phone": {
          "type": "string",
          "description": "The caller's phone number in E.164 format."
        }
      }
    },
    "request_headers": {
      "X-Tenant": "acme-hvac"
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  },
  "assignments": [
    {
      "dynamic_variable": "customer_id",
      "value_path": "customer.id"
    }
  ]
}

Webhook

Check openings

Returns open arrival windows for a job type and date.

Show the JSON definition
check_openings
{
  "type": "webhook",
  "name": "check_openings",
  "description": "Lists open arrival windows for a job type on a date.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.your-company.com/servicetitan/openings",
    "method": "GET",
    "query_params_schema": {
      "properties": {
        "job_type": {
          "type": "string",
          "description": "Job type, such as AC repair or drain clearing."
        },
        "date": {
          "type": "string",
          "description": "The requested date, YYYY-MM-DD."
        }
      },
      "required": [
        "job_type",
        "date"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  }
}

Webhook

Book job

Creates the job in the chosen window.

Show the JSON definition
book_job
{
  "type": "webhook",
  "name": "book_job",
  "description": "Books a job in the arrival window the caller chose.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.your-company.com/servicetitan/jobs",
    "method": "POST",
    "request_body_schema": {
      "type": "object",
      "properties": {
        "customer_id": {
          "type": "string",
          "dynamic_variable": "customer_id"
        },
        "job_type": {
          "type": "string",
          "description": "Job type."
        },
        "window_start": {
          "type": "string",
          "description": "Start of the chosen window, ISO 8601."
        },
        "summary": {
          "type": "string",
          "description": "What the caller described, in one or two sentences."
        }
      },
      "required": [
        "job_type",
        "window_start",
        "summary"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  }
}

Transfer

Transfer to dispatch

Cold transfer to your dispatcher for emergencies.

Show the JSON definition
transfer_to_dispatch
{
  "config": {
    "system_tools": {
      "transfer_to_number": {
        "description": null,
        "pre_tool_speech": "auto",
        "transfers": [
          {
            "destination": {
              "type": "phone",
              "phone_number": "+14155550100"
            },
            "condition": "The caller reports an emergency such as flooding, a gas smell or no heat in freezing weather."
          }
        ]
      }
    }
  }
}

Set it up

There is no ServiceTitan connector. You configure webhook tools that call a small service of yours, and that service talks to ServiceTitan's API. Vendor details read in October 2026.

  1. Create the API access in ServiceTitan

    Register an app in ServiceTitan's developer portal and note the client ID, client secret, app key and your tenant ID.

  2. Run a small service

    Host the three endpoints the tools call. Your service gets a token from ServiceTitan, calls its API, and returns only the fields the agent needs. The lookup returns the match as customer.id, which the tool saves as customer_id for the booking.

  3. Add the webhook tools

    In the Playground, open Tools and add each webhook with your service URL and a bearer secret. Add a transfer rule for dispatch.

  4. Call the agent and watch the job appear

    Phone the agent from a test line and confirm the job lands in ServiceTitan with the right window.

Before you build

Why the service in the middle

ServiceTitan access tokens last 15 minutes, and a Cartesia webhook tool sends a fixed bearer token or basic auth. Your service holds the credentials and refreshes the token.

Keep the agent inside your rules

Put job types, service areas and what the agent may promise in the instructions. Pricing stays with your team.

Enterprise-grade security

  • HIPAA compliant badge

    HIPAA compliant

  • SOC 2 Type 2 badge

    SOC 2 Type 2

  • GDPR badge

    GDPR

ServiceTitan AI voice agent FAQs

Does ServiceTitan have an AI voice agent?

Yes. ServiceTitan's help docs describe an AI Voice Agent that books new jobs, including after hours, and escalates calls to a live agent. A Cartesia agent is the alternative you build. It calls your own service, which talks to ServiceTitan's API, with the voice, model and phone number you choose.

Can an AI agent book jobs in ServiceTitan?

Yes. The agent looks up the caller by phone number, asks your service for open arrival windows by job type and date, offers two, and books the one the caller picks. Your service creates the job with ServiceTitan's API, and you decide which job types and windows it may book.

How do I connect a voice agent to the ServiceTitan API?

Register an app in ServiceTitan's developer portal and note the client ID, client secret, app key and tenant ID. A small service of yours holds them, refreshes ServiceTitan's 15-minute access tokens, and exposes the three endpoints the webhook tools call. Cartesia's webhook tools only send a fixed bearer token or basic auth.

Can the agent handle after-hours emergency calls?

Yes. It answers at any hour and books the next opening, and a transfer rule sends flooding, gas or no-heat calls to your on-call dispatcher right away. Transfers need a Twilio or SIP trunk number, per Cartesia's docs, so put the agent's number on Twilio or a SIP trunk.

What does a ServiceTitan voice agent cost to run?

Agents run at $0.03/min, plus LLM usage and telephony. Your ServiceTitan subscription and API access stay under your agreement with ServiceTitan. Cartesia's telephony fee applies only to Cartesia numbers.

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