Appointments product
Calendars, meetings, public booking pages on the CRM. This is when they should arrive. Not a pipeline column by itself.
Appointment booked is a pipeline column and a calendar fact; autonomous sends do not move this column by themselves. The Appointments product (meetings and booking pages on Pipeline & CRM) holds the time. The kanban column is the CRM state. Align them. Reminders and no-show recovery playbooks run while the card sits here.
Teams see 400 reads on a checkup blast and drag 400 cards here. That breaks show-rate forever. Slot truth is Appointments/calendars: scheduled meetings and public booking pages linked to the contact. The pipeline stage is what ops filters and what workflows bind to. A workflow on enter should send the reminder template and maybe agent.run a voice confirm — it should not invent a meeting. If they no-show, keep the card here (or return to New enquiry) and run the no-show playbook. Do not add a No-show column.
Enquiry and qualify happen first. This column starts when a calendar event exists. Reminder hops stay here. Consult done is after the visit.
Workflows: trigger stage changed to Appointment booked. Actions: send.whatsapp (Library template outside 24h), crm.set_custom_properties, crm.create_task for the desk, agent.run for Visit-Caller-style confirm. route.agent if specialty lines differ. See workflows.
Calendars, meetings, public booking pages on the CRM. This is when they should arrive. Not a pipeline column by itself.
Filters, Insights drop-off, workflow binding. Name: Appointment booked. Id in product vertical map: qualified → label Appointment booked.
Reminder and property stamps. Do not crm.update_stage to Consult done from a “yes” on STT.
AMD so voicemail ≠ yes. Dialer modes only if the confirmation list is long. Softphone for human handoff.
Connect calendars before you celebrate this column. Wire the reminder workflow second.
Setup → Customers → Pipeline (keep the five default labels unless you truly rename) → Appointments/calendars → Setup → Channels → Library templates → Agents → Studio / Router → Agents → Workflows (trigger: stage changed; actions: agent.run, route.agent, crm.set_custom_properties, crm.update_stage, crm.create_task, send.whatsapp / send.email) → Growth campaigns with wallet preview.
The qualifier offers two times; the visitor picks Thursday 10:30 with Dr. Rao. That time is written once on Appointments (the meeting) and once on the Appointment booked card (CRM state). The workflow then sends the utility template and stamps doctor_id from the Doctors catalog — not a diagnosis. If WhatsApp stays quiet, voice confirms with AMD. If they miss, no-show recovery books a later time on the calendar; the column stays Appointment booked until they sit down.
Independent practitioners with one calendar still need both objects: a meeting and a card. Hospitals with department calendars must not mix cardiology slots into a dental column filter — router and Project scoping, not extra stages.
This page is the Appointment booked story on the default healthcare board — not a playbook clone and not a loan-style extra stage. The Patient Inquiry Qualifier still collects reason, service_need, location, and preferred_times. Knowledge bases hold Departments, Doctors, Beds, and Services. Appointments and calendars are slot truth; the Appointment booked column is a CRM stage that should match a calendar fact, not a campaign send. Inbox plus human handoff carries clinical questions. Pricing is wallet-only. Autonomous success is sends, reads, or contacted — not appointment booked. Emergencies: tell them to call emergency services immediately. If the calendar is empty, the card should not live here. If autonomous reports 200 contacted, you still have zero bookings until meetings exist. Workflows live under Agents → Workflows with a stage-changed trigger. Typical actions: send.whatsapp or send.email with a Library template, agent.run (hand the contact to a Studio agent), route.agent (agent router by stage/channel/rules), crm.set_custom_properties, crm.update_stage, crm.create_task. Skills and knowledge stay on the agent, not on the workflow node. Preview the Organization wallet before a template blast. Do not add No-show or Report ready as board columns — those are playbooks. Do not invent HIS/EMR replacement.
Three different objects. Only two belong in product CRM modules.
| Stage | Automation | Human | Channel hops | Exit criteria |
|---|---|---|---|---|
| Appointment booked (column) | Reminder workflow | Capacity / reschedule | WhatsApp + voice | Visit happened → Consult done |
| Appointments (calendar) | Skill / booking page | Roster | Time + doctor | Event completed or cancelled |
| No-show playbook | Same-day offer | Chair time | WhatsApp + voice | New calendar event, same column |
| Autonomous send | Sends/reads | Approve plan | WhatsApp / email | Not this column |
| Consult done (next) | Do not STT-jump | Mark attended | In clinic | Visit actually happened |
Booking, reminder, no-show. Report-ready waits until after consult.
Stage vs Appointments product, autonomous, no-shows.
Calendars answer when/who. The column answers which CRM bucket and which workflow. Keep them aligned.
No. Success is sends, reads, or contacted. Move this column with a human, appointment skill, or crm.update_stage after the meeting exists.
Appointments on the CRM (pipeline product). Setup path includes Appointments/calendars on the Project.
No. Playbook on this card.
send.whatsapp, optional agent.run voice, crm.set_custom_properties, crm.create_task. Not SMS.
Templates and minutes debit the Organization wallet.
Parent hub, sibling stages, CRM product, and jobs that move this column.
Qualifier, catalogs, calendars, ICPs, and jobs.
Back to hub →Where the card was before a slot existed.
Open →Only after they attended.
Open →Stage-enter reminder graph.
Open →Appointments module is slot truth; this stage is the kanban label.
Product CRM →Reminder templates debit the Organization wallet, not a seat per desk.
See pricing →Wire the reminder workflow on enter — never promote a send metric into this column.
Get started free