Run the conversation

From interested to booked. Inside the same conversation.

The AI handles booking within the conversation — proposing times, checking business hours, and confirming availability. When a contact says yes, it returns BOOKED. No calendar integrations required.

BOOKEDdirective returned when contact confirms — conversation closes
Business hoursproposed times validated against campaign config before confirming
3 levelsscheduling assertiveness — configurable per campaign
Booking linkincluded in confirmation message when configured
How booking works

The AI confirms the time. The platform confirms the outcome.

When a contact proposes or confirms a meeting time, the AI checks whether it falls within the campaign's configured business hours. If it does, the AI returns a BOOKED directive with a confirmation message. If it doesn't, it responds that the time is outside available hours and suggests the nearest valid slot.

  • Business hours checked before confirming any proposed time
  • Timezone-aware — campaign hours applied in campaign timezone
  • Multi-segment hour strings supported — different windows for weekday and weekend
  • BOOKED directive closes the conversation — no further qualification messages sent
  • Booking link included in confirmation message when configured on the campaign
  • Scheduling level configurable: 1 (soft), 2 (standard), 3 (assertive)
Booking flow
  1. 1
    AI proposes time
    Or contact suggests a time based on AI's question
  2. 2
    Hours check
    Proposed time validated against campaign business hours
  3. 3
    Outside hours
    AI declines, suggests nearest valid slot, returns PAUSE
  4. 4
    Inside hours
    Contact confirms — AI returns BOOKED + confirmation message
  5. 5
    Booking link sent
    Included in confirmation if campaign has booking_link set
  6. 6
    Conversation closed
    State set to BOOKED — no further messages sent
Scheduling levels

As assertive as the campaign calls for.

Different campaigns need different booking behaviour. A warm inbound lead doesn't need the same persistence as a cold reactivation. Scheduling level is configurable per campaign.

Level 1 — Soft

The AI suggests booking gently and does not push if the contact deflects. On a single deflection it acknowledges and returns PAUSE rather than re-asking. Appropriate for relationship-first campaigns where pressure would be counterproductive.

How it works: Scheduling level is injected into the system prompt at call time — the AI reads it as a natural instruction about how assertively to pursue booking.

Level 2 — Standard

The AI asks directly for availability, re-asks once on deflection, and returns PAUSE on a second consecutive deflection. Balances persistence with respect for the contact's response. The default for most campaigns.

How it works: Level 2 is the default scheduling_level value — no configuration required for standard outbound campaigns.

Level 3 — Assertive

The AI asks directly, re-asks on deflection, and only returns REACH_BACK_OUT if the contact explicitly says they are busy. A clear opt-out or explicit refusal to book triggers an END directive regardless of level.

How it works: Level 3 text is tested in the system prompt — assertive language is injected correctly and distinguishable from levels 1 and 2.

Reach-back-out

When a contact says they are busy and asks to be followed up later, the AI returns REACH_BACK_OUT. The scheduler sets reach_back_out_at on the conversation and fires a follow-up at the appropriate time — the conversation is not lost.

How it works: reach_back_out_enabled is a per-campaign setting. If disabled, REACH_BACK_OUT is overridden to PAUSE — no orphaned follow-up jobs created.

Want to see the booking flow
in a live conversation?

We'll run a Campaign Tester session and walk through every scheduling level with you.