Chasing appointments and commitments
A follow-up is a dated commitment on one channel, carrying a reason. Connect creates them from conversations, drains the phone ones every tick under the same gates as any outbound call, and refuses to make the two mistakes that destroy trust in chasing: ringing somebody twice about the same thing, and ringing them about something they asked about last week.
What a follow-up is made of#
- A channel
email,whatsapp,sms,phone,any, ortask. The channel decides which drain, if any, can act on it.- A due time
- What makes it a commitment rather than an intention.
dueandupcomingare the two views that matter day to day. - A reason
- Why this was promised. A commitment without one is not useful to the person who inherits it, and somebody always inherits it.
- A person
- The follow-up belongs to a relationship, not to a thread, which is why
stop_for_personexists alongsidestop_for_thread.
How phone chasing actually runs#
runner.chase_phonetakes due phone follow-ups every tick, two per tick.Result The rate is deliberate. A queue that empties itself in one burst is how a workspace rings thirty people in a minute.
Each one goes through
voice_engine.place_callwith the same gates as any outbound call — autonomy, compliance, budget.Result The outcome is recorded as
call placed <id>,awaiting approval <id>, orrefused: <reason>. A refusal is a decision and is written down as one.If the line is not ready, the row is retried in an hour rather than burned.
Result Line health also escalates into Needs You, so the cause is visible next to the calls it is holding up.
If the row is more than 24 hours late, it is closed as
missed:and never rung.Result A very late call-back is worse than none. This is the rule that stops Connect ringing somebody on Thursday about Monday.
The rules that keep chasing honest#
- Duplicate protection. A follow-up with the same *when* for the same person is a duplicate. Two people in a workspace promising the same call-back does not become two calls.
- Snooze rather than delete.
snoozemoves the commitment; deleting it loses the reason it existed. The queue is meant to be a record of promises, and a record you prune when it is inconvenient is not one. attemptedis notcomplete. An attempt that reached nobody is recorded as an attempt, so the difference between 'we tried' and 'it is done' survives into next week.- Stopping is explicit.
stop_for_threadends chasing on one conversation;stop_for_personends it for the human. Both are recorded, which matters when somebody asks why the chasing stopped.
What this does not do#
Three gaps, each of which people assume is present.
| Assumed | Actual position | What to do instead |
|---|---|---|
| A calendar integration | These sources do not document one, and this page does not invent it. What exists is the demo lifecycle — request, schedule, complete, cancel — and the dated follow-up queue | Keep the appointment where your business already keeps it and let the follow-up carry the chase |
| An SMS reminder | Outbound SMS is provider-dependent and the live carrier carries none | Email or WhatsApp, where the person has either |
| A reminder call that transfers to you when answered | A completed transfer to a person is foundation, not available | The call is a conversation in its own right, and what it cannot settle becomes the next follow-up |
Where it goes wrong#
- Nothing is being drained
- Check the channel. A
taskfollow-up is never sent by anything, on purpose, and a queue full of them looks identical to a queue that is stuck. - Calls are refused
refused: <reason>carries the cause — autonomy, compliance, or budget. Compliance refusals are the ones to look at first, because a suppressed or do-not-contact person will keep refusing until the entry is dealt with, and the Assistant cannot clear a do-not-contact entry.- Everything closed as missed overnight
- The queue went more than 24 hours without draining. Line readiness is the usual cause, and it is visible in Needs You before it becomes a morning of missed rows.
- The chase reads as nagging
- Usually several follow-ups on one person from several conversations.
summaryandstop_for_personare the two tools; the second is the honest one.
Questions#
Does Connect decide by itself when to chase?
It creates the commitment from what was actually said and gives it a due time and a reason. Whether the chase then goes out without a person is the channel autonomy setting, exactly as with any other outbound message. On phone the drain reports awaiting approval when the rule says a person decides.
What happens to a follow-up nobody actioned for two days?
On phone it is closed as missed: once it is more than 24 hours late, and never rung — the design assumes a very late call-back damages more than it recovers. It stays visible as a missed commitment rather than disappearing, which is the part that lets somebody decide whether to make the call themselves.
Can two people in the workspace both promise the same call-back?
They can promise it, but it becomes one follow-up: same person, same due time is treated as a duplicate. What is not deduplicated is two commitments to the same person at different times, because those are usually two real promises and collapsing them would lose one.