Connect by JBRH Open Connect

Creating a follow-up

schedule is the one entry point, whether a person fills the form, the engine spots a commitment in a thread, or the voice books one mid-call. Each route supplies the same four things — person, when, channel, reason — and differs only in how much evidence it can attach. The call route is the strictest, because a promise made aloud is the easiest one to mis-hear.

Status
Available What this means
Audience
both
Channels
phoneemailwhatsapp
In the app
#/follow-ups, #/calls, #/inbox
Last verified
Product version
6.3.2

Three routes, one record#

RouteWho supplies the whenWhat is attached
By handYou doWhatever you type as the reason, plus the person and thread you started from
From a conversationThe engine, from what was writtenThe thread it came from, so the reason can be checked against the message
From a callThe caller's own words, checkedThe caller's last lines and the voice's own lines, sent with the booking

The record is identical afterwards. A follow-up created by a person and one booked by the voice are the same row, drained by the same code, subject to the same duplicate rule and the same lateness rule. What differs is what can be reconstructed later about why it exists.

Booking one during a call, and the rule that guards it#

schedule_follow_up is the tool the voice uses, and it sends the caller's last lines and the voice's own along with the booking. That is not logging for its own sake: it is the evidence the guard needs.

record_event refuses a when that shares no time word with the caller's latest time-bearing line — conversation.when_mismatch, in English, Telugu and Hindi — unless the caller has just agreed to a time the voice said aloud, which is when_agreed. When it refuses, the tool answers NOT recorded, in those words, so the model cannot go on to tell the caller a time is booked. A read-back is asked for only when the caller neither named a time nor agreed to one.

What the call route decides for you#

  • The due time. voice_engine.due_at turns the promised words into a time in the line's timezone: "in 10 minutes", "tomorrow 11am", "Friday 3pm", "today evening". Nothing usable falls back to 11:00 tomorrow rather than to now.
  • The channel. follow_up_channel puts a call-back on phone, and a person's own work — "send the quotation", "review the recording" — on task.
  • Whether to book at all. "No follow-up needed" schedules nothing. An empty queue after a call that needed no chasing is correct, not a missed booking.
  • The contact. A contact created by lead capture carries phone_key from the start, so the follow-up hangs off a person a drain can actually ring.

Creating one by hand well#

  1. Start from the person or the thread rather than from a blank form.

    Result The follow-up is attached to the relationship, so it appears on the person's record and is carried across if that person is ever merged with another.

  2. Write the reason as the sentence you would want to read cold.

    Result Whoever picks it up — including you — knows what was promised without opening the thread. See The reason on a follow-up.

  3. Pick the channel that matches the promise, not the one that is convenient.

    Result A promise to ring becomes a call. A promise to send a document becomes a task, because no drain writes documents.

  4. Set the time you actually said, not a round number near it.

    Result The duplicate rule keys on the *when* for a person, so an honest time also protects you from booking the same commitment twice.

What can go wrong at creation#

Nothing was booked after a call
Either nobody named a time and the guard refused, or the conversation genuinely needed no follow-up. The call's findings say which; promised_unbooked means a promise was made and not captured.
The time is wrong
The words were heard as a different time. The row is editable — see Changing a follow-up — and it is worth correcting rather than cancelling and re-booking.
It landed on task when you expected a call
The promise was classified as a person's work. That is usually right; where it is not, change the channel on the row.
A second identical row appeared
It should not: the same *when* for the same person is a duplicate. If two rows differ by a minute they are not duplicates by that rule, which is the usual explanation.

Questions#

Can I create a follow-up for somebody who is not a contact yet?

Create the person first, even minimally. A follow-up hangs off a canonical Person; without one there is nothing for the drain to resolve to a mailbox or a number, and nothing for the person's record to show.

Does asking the Assistant to 'follow up next week' create a row?

It creates one through the same schedule entry point, with the reason it was given. Check the row afterwards: 'next week' becomes a specific due time, and if that is not the time you meant, edit it now rather than when it fires.

Why does the voice sometimes read the time back to me?

Because you neither named a time nor agreed to one it offered. A read-back is asked for exactly in that case, so the booking is never made from an assumption about what you meant.