Connect by JBRH Open Connect

Following up by email

A follow-up is one row per intention, hung off the person rather than the conversation, carrying the channel, the reason in words, when it is due, who asked for it and how many attempts are allowed. When it comes due the ordinary drafting and autonomy path runs — a follow-up is not a second sender. The same reference schedules it once, however many times the evidence arrives.

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

Why it hangs off the person#

The older design put a single date on an email thread. That works until any of four ordinary things happen: the relationship began on a call or on WhatsApp and has no thread to hang a date on; two commitments exist at once — ring them Tuesday *and* send the quotation Friday; somebody asks why Connect is about to write on Thursday and the record has nothing to say; or the thread is closed and the intention disappears with it.

So a follow-up is its own row against the person, which is the thing that survives a change of channel. A conversation may be attached, and often is, but it is not what the commitment depends on.

Channel
email, whatsapp, sms, phone, any, or task. any means whichever route suits that person; task is work for a person and is never sent by anything.
Purpose
A short reason from a fixed list — no reply yet, demo reminder, chase the quotation, check the setup went well, check the problem is sorted, renewal coming up, stay in touch, admin reminder.
Reason
The sentence a colleague inheriting it would need. A commitment without one is not useful to whoever picks it up.
Due at
A time, and only a time. Business hours, quiet days and the recipient's timezone are applied when it is acted on, not baked into the date — a workspace changing its opening hours would otherwise leave a hundred rows scheduled under the old ones.
Attempts and stop-on-reply
How many times it may be tried, and whether an answer closes it. Both default to the cautious reading.

What happens when it falls due#

  1. The due queue is read for the channel.

    Result Rows whose time has passed and which are still scheduled come back, oldest first.

  2. The reply is drafted the ordinary way.

    Result Approved Knowledge, memory about the person and the conversation history — the same grounding any reply gets, described in How a reply is drafted.

  3. The same autonomy question is asked as for any outbound message.

    Result Send, hold for approval, draft only, or refuse. A follow-up carries no special authority; being overdue is not permission.

  4. The send goes through the one send boundary.

    Result Allowance, idempotency, provider, and the outcome recorded — see Sending email.

  5. The row is completed, or an attempt is recorded against it.

    Result A completed follow-up leaves the queue. A failed attempt keeps the reason, so the next person can see what happened rather than that nothing did.

Nothing here is a second sender and nothing is a second authority. That is the design constraint the queue was built under, and it is why turning a channel off stops its follow-ups too rather than leaving a scheduler quietly writing to people.

The duplicate rule#

Every follow-up may carry a reference, and that reference is its idempotency key — exactly as it is for an outbound send and a stage change. Scheduling with a reference that already exists returns the existing row and marks the answer as idempotent rather than creating a second one.

That matters because the evidence for a commitment arrives more than once in normal operation: a webhook is redelivered, a request is retried, a message is processed again after a restart. Without the key, one promise becomes a growing pile of rows that all fire together on Thursday, and the recipient gets four identical nudges.

A follow-up with the same time for the same person is treated as a duplicate. Two genuinely different commitments to the same person on the same day are expressed by giving them different times and different reasons, which is also how they read on the screen.

Stopping one#

  • It completes when the thing it was for is done, and leaves the queue.
  • It is cancelled with a reason, which is kept.
  • It is snoozed to a later time — the intention survives, the date moves.
  • It stops for the thread, or for the person, when they reply and it was set to stop on a reply.
  • It is refused at the autonomy or compliance layer, in which case the refusal is the record and nothing was sent.

What a follow-up cannot do is outlive its own usefulness quietly. A very late commitment is worse than none, and the queue is reported rather than silently deep — Follow-ups covers the summary a person actually reads.

Questions#

Does a follow-up send even if the mailbox autonomy says ask first?

No. It asks the same question every other outbound message asks, so it waits for approval exactly as a reply would.

What happens if the person replies before it is due?

Where it was set to stop on a reply — the default for a chase — it stops. That is the setting worth checking when a nudge goes out to somebody who had already answered.

Can a follow-up be for a person rather than for Connect?

Yes. The task channel is work for a human; no drain ever sends it, and it appears as something for a person to do.