Playbook · book

Calendars first — the column follows, not a send trophy

Slot offers use Appointments and calendars; moving the pipeline to Appointment booked is a workflow or a human, not an autonomous trophy. Qualifier fields should already exist. Reminders are a sibling job.

  • Appointments product = when
  • Column = CRM state
  • Autonomous ≠ booked

Definition

Appointment booking is offering and writing a calendar event, then aligning the Appointment booked column — never treating campaign sends or autonomous reads as the booking.

Reads reported as bookings

hc-lead-followup shows Booked 41% in a demo funnel. That is an estimate, not Insights, and not autonomous success. Slot truth is Appointments/calendars on the CRM. The column is what workflows bind to.

Omnichannel sequence

After qualify/match. Then reminder playbook. No-show stays on the booked column.

  1. Offer times Appointment skill against the doctor/department calendar.
  2. Write the meeting Appointments module / public booking page.
  3. Move the column Human or crm.update_stage after the event exists.
  4. Do not trophy sends Autonomous success remains sends/reads/contacted.

How it runs in CoPulse

Appointment skill on the conversation agent. Workflows stamp properties. Autonomous does not stop when booked. Do not use autonomous tasks as the inbound qualifier. Conversation agents, Growth drips, and autonomous list sends are three systems with no shared stop-when-booked contract. WhatsApp live catalog is Gupshup. Phone is Plivo; email is SES. Wallet-only pricing: preview the Organization wallet before a blast. Organization and Project — never a personal doctor phone that vanishes when the receptionist leaves.

Conversation agent

Patient Inquiry Qualifier (reason, service_need, location, preferred_times). Catalogs: Departments, Doctors, Beds, Services — not a chart. Emergency utterances: call emergency services. Inbox handoff. Public booking pages still create the same Appointments records.

Workflows

Agents → Workflows on stage change: agent.run, route.agent, crm.set_custom_properties, crm.update_stage, crm.create_task, templated send.whatsapp/email. Not adaptive nurture.

Growth campaigns / drips

Clock-based sequences and list blasts with wallet preview. Campaign conversion is reply rate unless you also track Appointment booked on the pipeline.

Agent router

Keep a dental bot off a health-check reply. Route by stage, channel, or campaign.

Operator setup

One Organization, one Project. Healthcare pipeline labels. Wallet-only. Library kits are sketches — rewrite hops without SMS and without a diagnostic triage agent.

Setup → Channels (WhatsApp/Gupshup, Web, Meta, Email/SES, Phone/Plivo as needed) → Library templates → Agents → Studio (Patient Inquiry Qualifier, catalogs, appointment skill, emergency guardrail, handoff) → Router → Setup → Customers → Pipeline (five default columns) → Appointments/calendars → Agents → Workflows (stage changed: agent.run, route.agent, crm.set_custom_properties) → Growth with Organization wallet preview. Connect SMS (MSG91) under Setup → Channels when you want that hop.

Thursday 10:30 written twice

Visitor picks 10:30. Appointments shows Dr. Rao. Workflow moves Appointment booked and can queue the reminder sibling. A parallel autonomous checkup blast that they also read does not create a second booking.

Campaign conversion for a package send is reply rate unless those replies complete this job.

Operators assemble this job on the Project. Click-path remains Setup → Channels (WhatsApp/Gupshup, Web, Meta, Email/SES, Phone/Plivo as needed) → Library templates → Agents → Studio (Patient Inquiry Qualifier, catalogs, appointment skill, emergency guardrail, handoff) → Router → Setup → Customers → Pipeline (five default columns) → Appointments/calendars → Agents → Workflows (stage changed: agent.run, route.agent, crm.set_custom_properties) → Growth with Organization wallet preview. Connect SMS (MSG91) under Setup → Channels when you want that hop. Keep the quotable definition in the brief for the team: Appointment booking is offering and writing a calendar event, then aligning the Appointment booked column — never treating campaign sends or autonomous reads as the booking. Do not use autonomous tasks as the inbound qualifier. Conversation agents, Growth drips, and autonomous list sends are three systems with no shared stop-when-booked contract. While you implement, keep the parent playbooks directory, Appointment booked, WhatsApp overlay, Independent practitioners, Agent Studio, Growth campaigns, and wallet-only pricing in the same runbook. Do not invent Meta Cloud WhatsApp if the catalog is Gupshup. Do not promise adaptive nurture. Human handoff stays in the omnichannel inbox. Appointments and calendars are the slot truth when this job books time. Library templates are required outside the 24-hour WhatsApp window. Workflows fire on pipeline stage change only when you attach them under Agents → Workflows. The agent router keeps the wrong bot off this thread. Knowledge bases hold Departments, Doctors, Beds, and Services catalogs — not a clinical chart. Preview the Organization wallet before a blast. Do not claim HIS or EMR replacement. The Appointment booking playbook never forks into a WhatsApp-only or voice-only child URL. Funnel percentages on library kits are estimates, not an SLA. Autonomous success is sends, reads, or contacted — not appointment booked. If this job mentions money, the Organization wallet is the meter. That is the honest operating manual for this URL.

Channel sequence (one job, not extra URLs)

Booking hops. There is no nested playbook-by-channel path.

Hop Channel What happens Exit to next hop
1 WhatsApp / web Offer times Choice
2 Calendars Write event Slot truth
3 Pipeline Appointment booked Column aligned
4 Phone Only if chat stalled Confirm later job

Frequently asked questions

Calendars vs column vs autonomous.

Does autonomous mark booked?

No. Sends/reads/contacted. Calendars + column are the booking.

Where are calendars?

Appointments on Pipeline & CRM.

SMS booking link?

Coming soon. WhatsApp/web today.

No-show stage?

No. Keep this column; run no-show-recovery.

Library Booked 41%?

Estimate from hc-lead-followup. Not your SLA.

Workflow?

crm.update_stage only after the meeting exists.

Write the calendar, then the column

Never promote a send metric into Appointment booked.

Get started free