Follow-ups & reminders
Follow-ups message people again automatically:
- No-reply follow-ups: "Did you have a chance to look at the quote?" one day after your last message, again after three days, then a final note. They stop the moment the contact replies.
- Date reminders: "Your appointment is tomorrow at 3:30 PM", one day and one hour before an appointment, a class, a fee due date or a renewal.
- Team reminders: remind the assignee or the lead owner to call someone who has not answered.
Follow-ups are included in the Starter plan and above. The plan limits the number of sequences per project and of running follow-ups per organization (Follow-ups shows how many are in use).
How a sequence works
A sequence is a list of up to 10 steps. Each step waits, then does one thing:
| Step | What it does |
|---|---|
| Send a WhatsApp message | Text, image or document with variables. Optionally written by AI from the conversation |
| Remind a team member | An in-app notification to the conversation's assignee, the lead owner or a member |
| Add or remove tags | Changes the contact's tags (for example tag "no-response" at the end) |
| Resolve the conversation | Marks the contact's conversation resolved |
The wait is relative to:
- the enrollment (when the contact entered the sequence),
- the previous step, or
- for reminders, the reminder date (before or after it: "1 day before", "2 hours after").
A step can also run only if the contact has not replied, or only if the previous follow-up was not read.
Two kinds of sequences:
| Kind | Stops when the contact replies | Date steps |
|---|---|---|
| No-reply follow-up | Yes (by default) | No |
| Date reminder | No (by default): a reply does not cancel the appointment | Yes |
You choose what else stops a sequence: a team member messaging the contact (from the inbox or the phone), the conversation being resolved, or the contact's lead being closed. Opting out (STOP) always ends every follow-up.
Publishing and versions
You edit a draft and publish it. Publishing freezes the steps as a version: contacts who are already in the sequence keep the version they started with, new contacts get the new one. You can pause a sequence (everyone in it waits), resume it, or archive it (its rules turn off; people already in it finish, unless you choose to stop them).
Messages and variables
Messages use the same variables as campaigns, plus two families:
| Variable | Value |
|---|---|
{{contact.firstName | "there"}}, {{contact.name}}, {{contact.phone}}, {{attr.city}} | From the contact |
{{vars.invoiceNo}} | A value given when the contact was enrolled (API, bulk, dashboard) |
{{anchor.date}}, {{anchor.time}}, {{anchor.datetime}}, {{anchor.weekday}} | The reminder date, in the contact's time zone |
A step whose {{vars.*}} or {{anchor.*}} variable has no value (and no fallback) is skipped instead of sending an
incomplete message.
AI-written follow-ups: a text step can let the AI assistant write the follow-up from the conversation, guided by your goal ("ask whether they had a chance to look at the quote") and your text. It uses your organization's AI budget; when the AI is unsure, out of budget or unavailable, your text is sent (or the step is skipped, as you choose). The AI also declines to follow up when the customer already said no.
When messages go out
- Send window: follow-up messages only go out inside the project's send window (Follow-ups → Settings, default Monday–Saturday 09:00–20:00 in the project time zone). A step due at night waits for the morning. Urgent reminder sequences can choose "any time".
- Per-contact cap: at most N follow-ups per contact in any 24 hours across all sequences (default 2).
- Pacing: follow-ups wait behind your transactional messages and are spaced per number (default 5 s), on top of the number's own sending limits.
- Late reminders: a reminder whose moment has passed by more than the grace (default 1 hour), for example because the contact was enrolled late, is skipped.
- Consent: opted-out contacts never receive follow-ups. By default everyone else can (follow-ups continue a relationship); a project or a sequence can require a recorded opt-in.
Starting follow-ups
- From a conversation (Inbox → contact panel → Follow-ups): start a sequence, or "If no reply" to send a message or remind yourself after a delay if the contact has not answered.
- From a contact (Contacts → contact → Follow-ups).
- For many contacts:
POST /v1/followups/enrollments/bulkwith a list or a segment. - From a campaign: choose a no-reply sequence under "Follow up with non-responders"; every recipient enters it when their campaign message is queued, and leaves it when they reply.
- Automatically with rules (Follow-ups → Automatic rules): when a tag is added, a contact is added, a contact sends a keyword, a conversation is resolved, a lead is created or changes status, or a deal moves to a stage — and the contact matches optional conditions (the same conditions as segments). Rules apply within seconds.
- With the API from your own systems: see the Follow-ups API. Use
dedupeKeyso that an invoice or booking never gets two reminder series.
Re-entry: by default a contact can go through a sequence again once the previous run ended; a sequence can allow it only once, or restart a running one.
Following results
Each sequence shows how many contacts are running, completed and stopped (and why), the reply rate, and a per-step funnel: reached, sent, delivered, read, replied after the step, skipped. Each enrollment shows its step history with message statuses, and reminders can be rescheduled (new date) while they run.
Webhooks: followup.enrolled, followup.step_queued, followup.completed, followup.stopped (with the reason) and
followup.failed. Follow-up messages also produce the usual message.* events, with followUpEnrollmentId set.