Product concepts
View as Markdown

AI Appointment Setter

How the AI Appointment Setter handles a reply, when it hands off to a person, and how integrations configure it and hear about replies.

Last updated

The AI Appointment Setter is the reply agent on a campaign. When a prospect replies, it decides what to do next and works toward 1 goal: a meeting booked through your booking link.

What it does with a reply

On every reply, the agent decides 1 of 5 actions: reply, wait, nudge, escalate, or close. It records the reply's sentiment and whether the reply is an out-of-office message. A campaign runs it in 1 of 2 modes: autonomous, where it sends its own replies, or notify-only, where it reads each reply and leaves the sending to you.

It books through your booking link and never proposes times itself. By default it sends up to 5 follow-ups to a prospect who goes quiet, on days 2, 3, 5, 7 and 10 after the last message; the schedule is configurable in the app, up to 10 follow-ups.

When it hands off to a person

The agent escalates the conversation when the prospect:

  • asks for a person;
  • raises pricing, legal, security or a complaint;
  • asks about something outside the material the agent was given;
  • names a colleague to talk to instead.

It also stops after a reply limit, 12 replies per conversation by default. The reason is recorded with the conversation and delivered in the webhook as escalation_reason.

A meeting booked through the link is detected by the app's calendar integration and listed on the campaign's bookings, described below.

Configure it by API

The agent is configured per campaign. GET /v1/campaigns/{campaign_id}/responder reads the configuration and PATCH /v1/campaigns/{campaign_id}/responder changes it: is_enabled, goal_link (an https URL the agent sends an interested prospect to), up to 10 assets (a link with a description of when to share it), tone (friendly, direct or formal), custom_instructions, campaign_description, company_name and agent_name.

is_enabled also sets the campaign's responder_enabled flag, the one PATCH /v1/campaigns/{campaign_id} toggles, so the two never disagree.

The configuration the API returns also carries mode, max_replies and agent_version, but the update endpoint doesn't accept them: the mode, the reply limit and the follow-up schedule are set in the app.

GET /v1/campaigns/{campaign_id}/bookings lists the meetings booked from a campaign, newest first: calendar bookings with a start_time and status, and confirmations, where the agent or a person marked a lead as booked without a calendar event. Send since to count only bookings made at or after a time. GET /v1/campaigns/{campaign_id}/analysis reports reply sentiment as aggregate counts.

Hear about replies

A prospect's reply is delivered to the campaign's webhooks as a prospect_response event, once per lead per campaign and again when a later reply turns positive, with the prospect's message, the lead, and the agent's reading of the reply under ai_response:

  • sentiment and out_of_office;
  • agent_action: reply, wait, nudge, escalate, close or skip;
  • conversation_status: awaiting_prospect, awaiting_followup, closed_won, closed_lost, closed_escalated or closed_no_response;
  • goal_status: not_sent, link_sent, soft_commit, confirmed or declined;
  • responder_message, the reply the agent sent, or null when it sent nothing;
  • escalation_reason, when it handed off;
  • sdr_brief, a 1-line summary for a person.

agent_version is 2 when the Appointment Setter handled the reply; feature-detect on it. When the agent didn't run, every field is null except goal, which carries the reason. Receiving webhooks covers registration, retries and duplicates.

The Unified Inbox is app-only

There is no API or MCP endpoint that reads or sends inbox messages. The REST API exposes no conversation or message resource, and the MCP server lists no inbox tool. An integration that needs the conversation uses the webhook: each delivery carries the prospect's message and the agent's reply, and a later positive reply from the same lead arrives as a further event.