Follow-ups & Cadences
By Conversa Labs
By Conversa Labs
Sequences, steps, channels, composition, enrollment (manual/automation/event/inactivity/AI), funnel, exit and human-in-the-loop AI.
Follow-ups and cadences overview
Overview Conversa Labs Follow-ups is a re-engagement cadence engine: sequences of automated messages, sent at the right moment, to recover stalled conversations, remind contacts of open payments, confirm appointments, revive deals in the CRM and nurture contacts over time β without anyone having to remember to message them manually. Unlike a one-shot campaign, a cadence has several steps with waits between them and smart exit rules: if the contact replies, reaches a goal (pays, wins, shows up) or the conversation is resolved, the cadence stops on its own. You design the sequence once and it works for each contact at their own pace. The module talks to the rest of the platform: contacts, conversations, CRM, Calendar, Payments and Automation. Steps can use the Maestro AI to compose messages, with optional human approval before each send. Prerequisites - The Follow-ups module enabled for your account (opt-in feature, controlled by an administrator). - A user with permission to create and manage cadences. - At least one outbound channel configured (for example, a WhatsApp inbox) so steps can send messages. - For AI steps: the Maestro enabled on the account (without it, AI steps fall back to static text). Step by step 1. Open the Follow-ups module from the sidebar. 2. Create a sequence from scratch or start from a ready-made template. 3. Add steps with the wait, channel and content of each message. 4. Define how contacts enter (enrollment) and when the cadence should stop (exit). 5. Publish the sequence to make it active. 6. Track the funnel and reports to measure replies and conversions. Settings & options - Sequences: the cadence blueprint (steps, trigger, target and exit rules), with versions. - Steps: each message, with its wait, channel, content type and compose mode. - Templates: reusable text to speed up step creation. - Enrollments: the cadence run for each contact, with its state and history. - Settings: time zone, quiet hours and the module's sending limits. Use cases - Recover unanswered conversations with 2 or 3 spaced touches. - Remind contacts of open charges until they pay (the cadence stops when they do). - Re-engage stalled CRM deals and confirm attendance before a meeting. - Nurture new leads with a welcome sequence spread over a few days. Tips, limits & best practices - Keep it simple: 2 to 4 steps usually outperform long cadences. - Always keep an exit on reply rule on so you never message someone who already answered. - Respect WhatsApp's 24h window: outside it, use an approved template (HSM) on the step. - Use quiet hours and sending limits for a natural, safe pace (anti-ban). Troubleshooting - I don't see the module: it may not be enabled for your account or your role β talk to an administrator. - The cadence doesn't send: check that the sequence is published and that a valid outbound channel exists. - The contact got a message even after replying: review the sequence's exit rules. See also - Sequences, steps, channels and composition - Enrollment: manual, automation, event and inactivity - Cadence funnel and exit rules - AI with human approval
Sequences, steps, channels and message composition
Overview A sequence is the blueprint of your cadence. It is made of steps in order, each with a wait, a channel and content. When you publish the sequence, the platform takes a snapshot (version) of the steps: enrollments already running keep the version they started on, so editing a sequence never disrupts anyone already mid-cadence. This article covers how to structure the sequence, configure each step, choose the sending channel, and compose the message with variables and WhatsApp templates. Prerequisites - The Follow-ups module enabled and permission to create sequences. - A valid outbound channel (for example, a WhatsApp inbox, email or SMS). - To use custom variables, the contact's custom attributes configured. - To send outside WhatsApp's 24h window: an approved template (HSM) on the inbox. Step by step 1. In the Follow-ups module, create a new sequence and give it a clear name. 2. Set the cadence target (contact, conversation, CRM deal, appointment or charge). 3. Add the first step: choose the wait, the channel and write the message. 4. Add the following steps, adjusting each one's wait relative to the previous send. 5. Use the variable picker to insert contact/conversation data into the message. 6. Review everything and click Publish to activate the sequence. Settings & options Steps and waits Each step has a wait before it is sent, counted from the previous send. The wait can be in minutes, hours, days or business days. Business days and quiet hours are adjusted by the time zone set in the module's settings. Channels The channel defines how the step sends: | Channel | When to use | |---------|-------------| | Automatic | The platform picks based on the conversation/contact (recommended in most cases). | | Same conversation | Continues in the contact's existing conversation. | | Email | Sends by email. | | SMS | Sends by SMS (mind the message length). | | WhatsApp | Sends by WhatsApp, respecting the 24h window. | Content type and composition - Content type: text, template or rich content. - Compose mode: static (you write the text), AI assisted (the AI drafts and a human approves) or AI full (the AI composes and sends). See the AI with human approval article. Variables (personalization) Write personalized messages with variables (for example, the contact's first name, the agent's name, conversation data and custom attributes). Variables are resolved on the server, at send time β you only insert the placeholder via the variable picker. Preview and test send Before publishing, check the step's copy right in the editor: - Select a conversation in the search picker β it lists recent conversations when you open it, and you can search by number, contact name, email or phone. Only conversations from the inboxes you have access to are listed. - Preview: shows the rendered message. With a conversation selected, variables resolve with that contact's real data; with no selection, they come out blank. - Send test: actually sends the message to the selected conversation. It is a one-off send β it creates no enrollment, does not advance the cadence and does not count in reports. Action button (inside the window) Each step can carry an optional native button on its own message β it does not become a second message. Fill in the label and the link; both accept variables, so the link can be personalized per contact. - WhatsApp Cloud renders a real link button; WhatsApp Web renders a native button; the API channel receives the button structured in the payload. - On channels with no native button (email, SMS) what ships is the link you wrote in the body β so keep the link in the text whenever it is essential. - Label and link are required together: with only one of them filled the step will not save, because a half-filled button makes WhatsApp reject the whole message. Clear both fields to send no button at all. - Outside the 24h window the button is not used: there the message is an approved template, and the link travels in the template's own URL button (below). WhatsApp templates (24h window) If the step is WhatsApp and the contact is outside the 24h window (WhatsApp Cloud), only an approved template (HSM) can be sent. On the step, pick the template and map its parameters with variables. If the template has a link button, fill in the button value right there: it is saved with the step and used on send. Inside the window (or on WhatsApp Web, which has no window), free text is sent normally. Message templates and sequence templates - Message templates: reusable text that speeds up step creation. - Sequence templates: ready-made cadences by niche; applying one also creates the custom attributes that cadence uses. Use cases - Billing cadence: step 1 immediate, step 2 after 1 day, step 3 after 3 days, all on WhatsApp. - Welcome: 3 emails over a week, using the contact's first name. - Reactivation: 2 touches in the same conversation with 2 and 5 days of wait. Tips, limits & best practices - Space steps out well: waits that are too short feel like spam. - For WhatsApp, always keep an approved fallback template on steps that may fall outside the window. - Test variables with a real contact before publishing so they don't render blank. - Publish again after any edit β only the published version applies to new enrollments. Troubleshooting - The message went out with a blank variable: the contact didn't have that data β pick a variable with a value or provide default text. - The WhatsApp step failed outside the window: the step was missing an approved template (HSM). - The template's link button had no destination: open the step and fill in the link-button value β it is saved with the step and must be filled in for the button to lead anywhere. - I edited the sequence and nothing changed: old enrollments keep the old version; publish and new enrollments will use the new one. See also - Follow-ups and cadences overview - Enrollment: manual, automation, event and inactivity - Cadence funnel and exit rules - AI with human approval
Enrollment: manual, automation, event and inactivity
Overview Enrolling places a contact inside a cadence. Each enrollment is the sequence running for that contact: it pins the published version, advances step by step on schedule, and stops on its own when an exit rule is met. Conversa Labs offers several ways to enroll, from a manual click to an automatic trigger. The platform avoids talking to the same person twice: there is at most one active (or paused) enrollment per contact in each sequence (accounting for the conversation too). Repeated attempts are safely ignored. Prerequisites - A published, active sequence. - For event or inactivity enrollment: the matching trigger configured on the sequence (see below) β without it the sequence stays active but enrolls nobody. - For automation, macro or flow enrollment: the Automation/Flow module available. Step by step 1. Create the sequence and choose the trigger (Manual, Event or Inactivity) and the target (contact, conversation, deal, appointment or charge). 2. If the trigger is Event, choose which event starts the enrollment. 3. If the trigger is Inactivity, set the inactivity time (value + unit: minutes, hours or days). 4. Configure the exit conditions (when the cadence stops) and save. 5. Publish the sequence. From then on, enroll manually or let the trigger act β the enrollment starts as active. 6. Need to adjust later? Open Sequence settings (the controls icon in the list) and edit the trigger, event, inactivity time and exits without rebuilding the sequence. Settings & options Ways to enroll | Way | How it happens | |-----|----------------| | Manual | You enroll one contact (or many, in bulk) directly from the interface. | | Automation | An automation rule runs the enroll action when its conditions match. | | Macro | An agent runs a macro that includes the enroll-into-cadence action. | | Flow | A Flow Builder node enrolls the contact mid-flow. | | Event | A system event (charge overdue, deal stale, appointment no-show, cart abandoned, etc.) triggers the enrollment automatically. | | Inactivity | Conversations idle beyond the configured time are enrolled automatically. | | API | An external system enrolls contacts programmatically. | Triggers available on the sequence: Manual, Event and Inactivity. The other ways (automation, macro, flow and API) enroll the contact independently of the chosen trigger. Event enrollment Choose the Event trigger and pick, in the selector, which event starts the enrollment. The list is maintained by the platform and covers the events it actually emits, grouped by area: - CRM: deal went stale, close date approaching, deal won. - Tasks: task overdue, task due soon. - Calendar: appointment no-show. - Charges: charge overdue. - Ads and social: ad lead captured, social comment captured. - Commerce: cart abandoned, order placed, payment pending/confirmed/declined, order overdue/due-soon, refund, chargeback, subscription late/canceled. When the event happens, the platform enrolls the contact β as long as the sequence target matches what the event carries. Saving requires a chosen event, so the sequence is never left without a trigger. Inactivity enrollment Choose the Inactivity trigger and set the inactivity time as value + unit (for example, 3 days, 12 hours or 90 minutes). Conversations idle beyond that time are enrolled β each conversation is processed only once per sequence. Because the time must be greater than zero, the sequence is never saved in a state that never fires. For safety, publishing starts a from-now-on window: the detector does not automatically scan every old conversation that is still open. To include an earlier period, choose Include earlier conversations, select the date, review the count and sample, then confirm the signed preview before it expires. If the audience changes between preview and confirmation, the platform refuses the action and asks for a fresh preview. Confirmation queues only the ids in that exact audience, in safe batches; conversations appearing later do not inherit the approval. Holding while an agent is attending (Maestro) If the account uses Maestro, the cadence can wait while a human agent is on the conversation (Maestro paused) β so an automated nudge never lands on top of the reply the agent is about to send. The control applies to every trigger type, not just inactivity, and works on two levels: - Account (or inbox) default: in Follow-ups β Settings, Hold the cadence while an agent is attending is already on β it is the safe default, because a held cadence resumes on its own, while ignoring the pause sends a message on top of the agent's reply. Turn it off only if your operation wants the cadence running even with an agent on the conversation. That is also where you set how often the platform re-checks. - Per sequence: in the sequence settings, the While an agent is attending (Maestro paused) selector accepts Inherit (follow the account/inbox default), Always hold or Never hold. Holding is not exiting: while the agent is on the conversation the sequence neither enrolls nor sends the next step; as soon as they let go, the cadence resumes on its own from where it stopped. What actually ends a cadence is a reply, a resolution or a goal. Failure is safe too: when Maestro's state is unknown or the integration is temporarily unavailable, the platform holds enrollment and delivery. A network error is never treated as permission to contact the customer. Exit conditions On the same screen you decide when the cadence stops: when the contact replies (on by default), when the conversation is resolved, and/or when a goal is reached (charge paid, deal won, appointment booked or appointment held). Details in the funnel and exit article. Use cases - Bulk manual: select several contacts from a list and enroll them in a reactivation campaign. - Event: every overdue charge automatically enters the dunning cadence. - Inactivity: conversations with no reply for 3 days enter a follow-up cadence. - Automation: new leads from a specific channel enter the welcome sequence. Tips, limits & best practices - Match the sequence target to the way you enroll (a dunning cadence has a charge target). - Do not try to enroll the same contact twice in the same sequence β the duplicate is ignored. - For inactivity triggers, tune the time to your business so it does not fire too early. - Picked the wrong event or time? Use Sequence settings to fix it without rebuilding. Troubleshooting - The contact was not enrolled by an event: check that the sequence is active, published and has the right event and target (the sequence must have an event selected). - Inactivity did not fire: review the inactivity time β it must be greater than zero. - I enrolled and nothing showed: there was probably already an active/paused enrollment for that contact in that sequence (limit of one per target). See also - Follow-ups and cadences overview - Sequences, steps, channels and composition - Cadence funnel and exit rules - AI with human approval
Cadence funnel and exit rules
Overview As an enrollment advances, each step produces a send record with a status, forming the cadence funnel: from how many contacts entered to how many replied or converted. In parallel, exit rules decide when a cadence should stop before reaching the end β for example, as soon as the contact replies. Understanding the funnel and configuring exits well is what makes a cadence polite and effective: it speaks enough to re-engage, but stops the moment it has met its goal. Prerequisites - Enrollments in progress (see the enrollment article). - Permission to view reports and manage sequences. - For a billing or CRM goal: the record (charge or deal) tied to the enrollment. The calendar goals need no link β they are checked by contact. Step by step 1. Open the sequence and view the enrollments list and the per-step funnel. 2. On each enrollment, open the timeline to see the history of every step and event. 3. Set the sequence's exit rules in Sequence settings (on reply β on by default β, on resolution and/or on goal). You can edit them later without rebuilding the sequence. 4. Publish the sequence to apply the exit rules to new enrollments. 5. Track the reports to measure replies, conversions and per-step performance. Settings & options Step statuses (funnel) Each sent step moves forward through statuses, always forward (a later status never goes back): | Status | Meaning | |--------|---------| | Pending | Waiting (includes AI drafts awaiting approval). | | Scheduled | Queued to send at the step's time. | | Sent | Message sent. | | Delivered | Delivery confirmed. | | Read | The contact read it. | | Replied | The contact replied (usually triggers the exit). | | Skipped | The step was skipped by a "skip" rule. | | Failed | The send failed. | Exit rules Exits decide when the cadence stops before the last step: - On reply (on by default): if the contact replies, the cadence stops. This is the most important rule. - On resolution: if the linked conversation is marked resolved, the cadence stops. - On goal: the cadence stops when the goal is reached β even if it was reached outside the cadence. The available goals are in the table below. - At the end of the sequence: completing the last step ends the enrollment naturally. Available goals | Goal | Stops whenβ¦ | How it's checked | |------|-------------|------------------| | Charge paid | the linked charge is paid | by the record linked to the enrollment | | CRM deal won | the linked deal is marked won in the CRM | by the record linked to the enrollment | | Appointment booked | the contact has a confirmed appointment still ahead | by contact | | Appointment held | the contact had a confirmed appointment that already ended (after the enrollment started) | by contact | The two calendar goals are different on purpose: - Appointment booked is what most prospecting cadences want: the moment the lead books the meeting, stop chasing β even if the meeting is only next week. - Appointment held waits for the meeting to actually happen. Use it when the cadence should keep reminding the contact until the commitment is fulfilled. The calendar goals are checked by contact (appointments where they are the event's contact or are on the attendee list), so they work on any sequence β including inactivity ones, which carry no linked appointment. Charge paid and CRM deal won, on the other hand, rely on the record linked to the enrollment, which is what event-triggered sequences provide. Holding is not exiting Besides the exits, a cadence can sit on hold for a while without ending: - On hold (an agent is attending) β with Maestro paused because a human took over the conversation, the platform defers the next step instead of sending on top of the agent. - Throttled (rate limit) β the per-contact daily cap or the channel's send rate was reached. In both cases the enrollment stays active and resumes on its own once the condition clears. Only a reply, a resolution and a goal actually end the cadence. See Settings: timezone, quiet hours and limits. Enrollment states The enrollment itself can be active, paused, completed (reached the end), exited (an exit rule stopped it) or failed. You can pause, resume, skip a step or cancel enrollments manually. Reports Reports show performance by sequence, by step and by compose mode, plus the distribution of enrollments by state β useful for tuning waits, copy and the number of steps. Use cases - Measure at which step most replies arrive and shorten the cadence from there. - Ensure the billing cadence stops as soon as the payment lands (exit on goal). - Spot steps with many failures and review the channel or message template. Tips, limits & best practices - Keep exit on reply on by default β it's what avoids nagging someone who already answered. - Use exit on goal for cadences tied to billing, CRM and Calendar. - In a prospecting cadence whose whole point is to get the meeting, the right goal is Appointment booked β not "held". - Use reports to cut low-return steps instead of only adding more. Troubleshooting - The cadence continued after a reply: confirm exit on reply is enabled on the sequence. - Exit on goal didn't work: for charge paid and CRM deal won, check the enrollment is linked to the right record and that its state changed. For the calendar goals, check the appointment is confirmed (cancelled doesn't count) and that its contact is the same as the enrollment's. - The cadence stopped before the meeting happened (or kept going after it was booked): you picked the wrong calendar goal. Appointment booked stops as soon as a future meeting exists; Appointment held only stops after it has ended. - A step shows as failed: check the step's channel and whether an approved template is needed. See also - Follow-ups and cadences overview - Sequences, steps, channels and composition - Enrollment: manual, automation, event and inactivity - AI with human approval
AI with human approval (human-in-the-loop)
Overview A cadence step can be composed by you, by the Maestro AI, or by a mix of both. The highlight is AI assisted (human-in-the-loop) mode: the AI drafts the step's message, but nothing is sent without a person approving it β and that person can still edit the draft before sending. This gives you the speed and personalization of AI without giving up control and your brand's tone. And if the Maestro is unavailable, the cadence doesn't stall: it uses the step's static text as a fallback. Prerequisites - The Follow-ups module enabled and a sequence with steps. - The Maestro enabled on the account (without it, AI modes fall back to static text). - A user responsible for reviewing and approving drafts (the notification recipient). - For best quality, a step with a clear instruction/intent for the AI. Step by step 1. In the step editor, choose the compose mode: static, AI assisted or AI full. 2. For AI, describe the step's intent (what the message should achieve) and leave a static fallback text. 3. Publish the sequence. When an AI assisted step is due, the AI creates a draft and the step stays pending, awaiting approval. 4. The responsible user receives a notification of a pending draft. 5. Review the draft, edit it if you want, and approve to send β or discard it. Settings & options The three compose modes | Mode | Behavior | |------|----------| | Static | You write the text (with variables). It's sent as is. | | AI assisted | The AI generates a draft and the step waits for human approval before sending. The draft can be edited. | | AI full | The AI composes and sends automatically, with no approval wait. | Human approval (HITL) In AI assisted mode, the step creates a draft and pauses at that point. The reviewer can: - Approve the draft as is; - Edit the text and then approve (the send uses your version); - Discard it so nothing is sent. Notifications When a draft is waiting, the platform notifies the responsible users β usually the enrollment assignee and the conversation assignee, falling back to administrators when no assignee is set. There are also reply received and enrollment failed notifications. Safe degradation If the Maestro is unavailable when the step runs, both AI assisted and AI full send the step's static fallback text. The cadence never stops because of an AI outage. WhatsApp window respect AI composition still respects WhatsApp's 24h window: outside it (WhatsApp Cloud), only an approved template (HSM) can be sent. Keep a template configured on the step. Use cases - AI assisted for sensitive messages (billing, negotiation), where a human checks the tone before sending. - AI full for simple, low-risk touches, scaling without manual review. - Static with variables when the text is standardized and doesn't need AI. Tips, limits & best practices - Start with AI assisted: review a few drafts to calibrate the intent before moving to AI full. - Always fill in the static fallback text β it's your safety net. - Write specific intents (goal, tone, language) for better drafts. - Make sure the responsible users receive notifications so drafts don't sit idle. Troubleshooting - The draft stayed pending and no one saw it: check who the enrollment/conversation assignee is and the account's notifications. - The AI sent the static text: the Maestro was likely unavailable β degradation is the expected behavior. - The AI generated nothing: check that the Maestro is enabled and that the step has a defined intent. See also - Follow-ups and cadences overview - Sequences, steps, channels and composition - Enrollment: manual, automation, event and inactivity - Cadence funnel and exit rules
Settings: timezone, quiet hours and send limits
Overview The Follow-ups Settings layer holds the controls that govern when and at what pace your cadences send: timezone, quiet hours, per-contact limit, send throttle (anti-ban), business days and the defaults for each new sequence. Instead of repeating these in every sequence, you set them once and all cadences obey. Each value is resolved by an order of precedence, from the most general to the most specific. The right-most one wins: code defaults β account default β per-inbox override β sequence β step In other words: the platform ships safe defaults; the account default adjusts everything at once; a per-inbox override changes just that channel; and, when it makes sense, a sequence or a step can refine further. This screen handles the two adjustable layers: the account default and per-inbox overrides. Prerequisites - The Follow-ups module enabled for your account. - An administrator user (only administrators can save settings). - For a per-inbox override: the inbox already created in the account. Step by step 1. In the Follow-ups module, open Settings. 2. Choose the scope: the account default (applies to every inbox) or a per-inbox override (pick the inbox in the scope selector). 3. Adjust the fields you need (timezone, quiet hours, limits, business days, defaults). 4. Click Save. The screen always shows the resolved configuration with precedence already applied, so you see the value that actually takes effect for that scope. 5. To send a field back to the account default, simply clear it in the override. Settings & options Timezone Sets the timezone used to compute waits, business days and quiet hours. There are two modes: - Automatic (recommended): stores no fixed timezone β the platform resolves it in order: the contact's timezone (when the toggle below is on and the contact has one) β the account timezone (the same one reports use) β the inbox timezone β UTC as a last resort. The screen shows which zone "Automatic" currently resolves to (e.g. "Automatic β account timezone: America/Sao_Paulo"). - Specific timezone: you pin an IANA zone (e.g. America/Sao_Paulo) that applies to that scope, ignoring the automatic resolution. Use the contact's timezone when available (default on, account scope only): when a contact has their own timezone, it outranks the account default for that contact's schedule only β handy for audiences across zones. Turn it off to treat everyone in the account timezone. Sequences and steps can refine further: a step's Scheduling section lets it inherit the resolved zone or set a timezone override for that step alone, and pick a fixed local time (e.g. "1 day later, at 09:00" in the resolved zone). Without the right timezone, "21:00", "business days" and the fixed time are interpreted at the wrong moment. Schedule preview: the sequence builder shows, per step, a preview of the next send already in the resolved zone (e.g. "~Mon 09:00 Β· America/Sao_Paulo (account timezone)"), so you can check the effect before publishing. Quiet hours A window in which nothing is sent β for example, 21:00 to 08:00. It has three parts: on/off, start and end. When a send would land inside the quiet window, it isn't dropped: it's pushed to the end of the quiet hours (the time the window reopens). The window can cross midnight (start later than end, like 21:00β08:00) and the platform handles that correctly. Quiet hours are off by default. Per-contact daily limit A safety cap on how many cadence messages the same contact can receive per day (rate_limit β per contact/day). The default is 3. It keeps several cadences combined from ever turning into spam for one person. Anti-ban send throttle Controls how fast a mass cadence dispatches, per inbox/connection (send_rate). You can set a ceiling per second and/or per hour. When volume exceeds the ceiling, the enrollments above the limit are deferred and re-queued β never dropped β and sent as soon as there's headroom. Blank fields use safe provider-derived defaults (for example, the WhatsApp Cloud per-second tier or the practical WhatsApp Web limit, around 240/h); 0 means unlimited. This is your main protection against a block on large sends. Hold while an agent is attending (Maestro) Available when the account uses Maestro. With Hold the cadence while an agent is attending on, if Maestro pauses because a human took over the conversation, the follow-up neither enrolls that conversation nor sends the next step of an existing enrollment. Holding is not exiting. The enrollment stays active: the platform only defers the next step and re-checks periodically β the Re-check every (minutes) field sets that interval (default: 15). As soon as the agent lets go, the cadence resumes where it stopped. What actually ends a cadence is still a reply, a resolution or a goal. The setting is on by default β holding is the safe default. A held cadence loses nothing: it resumes on its own the moment the agent leaves the conversation. Ignoring the pause, on the other hand, sends the automated message on top of the reply the agent just wrote β and that mistake cannot be undone. If your operation wants the cadence running even with an agent on the conversation, turn the setting off at the scope you want, or pick Never hold on the sequence. Precedence is the same as the other options: account β inbox β sequence. Each sequence can Inherit, Always hold or Never hold in its own settings. While an enrollment is held, the timeline shows the reason "On hold (an agent is attending)". Business days Which days count as business days (default: Monday to Friday, i.e. 1 to 5). Steps whose wait is in "business days" skip weekends using exactly this list, preserving the time of day. Cadence defaults - Default compose mode: the initial mode of new steps (default: static, i.e. you write the text). It can be overridden per sequence/step. - Max steps: a ceiling on the steps actually sent per enrollment (default: 10), a guard against overly long cadences. Use cases - Respect business hours: turn quiet hours on (for example 20:00β08:00) and set the timezone so you never message a customer in the middle of the night. - Safe WhatsApp cadence (anti-ban): tune the per-second/per-hour throttle on the inbox so a large send drains at the connection's pace, with no risk of a block. - Per-inbox default: a billing channel with more conservative limits and a welcome channel with looser ones β each with its own override. Tips, limits & best practices - Get the timezone right first: it anchors quiet hours, business days and waits. - Keep the throttle on for WhatsApp inboxes and prefer to start conservative β it's better to drain slower than to risk a block. - Remember that blank throttle fields do not mean "unlimited": they fall back to the provider's safe defaults. Use 0 only if you really want to remove the limit. - A per-inbox override only changes the fields you fill in; the rest keep inheriting the account default. Troubleshooting - A message went out at dawn: quiet hours are off or the resolved timezone isn't your audience's ("Automatic" may be falling back to UTC because neither the account nor the inbox has a timezone). Turn quiet hours on and set the timezone β in Automatic mode, fix the account timezone; or pick a specific timezone for the right scope. - A step didn't send and I don't know why: open the enrollment timeline β each run shows the skip/failure reason (e.g. "Sequence not published", "No inbox for this channel", "WhatsApp 24h window closed", "Throttled (rate limit)", "On hold (an agent is attending)"), and the enrollment shows the failure reason at the top, never silently. - The cadence stopped sending but the enrollment is still active: most likely the Maestro hold β there is an agent on the conversation. It resumes on its own once they let go; if that isn't what you want, turn the setting off in the right scope or set Never hold on that sequence. - Sends are "lagging": that's the throttle holding the pace. Enrollments above the ceiling are deferred and re-queued (never lost); raise the per-second/per-hour limit if you want to go faster. - Business days weren't respected: check the business days list and the timezone of the scope β only steps with a "business days" wait use this rule. - I changed the account default but one inbox didn't change: it probably has an override with that field filled in β the override beats the account default. See also - Follow-ups and cadences overview - Sequences, steps, channels and composition - Cadence funnel and exit rules
Integrations: automations, events and follow-up webhooks
Overview Follow-ups do not live in isolation: they connect natively to the rest of the platform. A cadence can be enrolled, paused, resumed, skipped or canceled by an Automation rule, by a Macro an agent runs in a conversation, or by a Flow Builder node. As the cadence advances, the platform emits events that trigger other automations and are delivered to your integration webhooks. And, when the Maestro is active, it can read and operate follow-ups through dedicated tools. In short: a follow-up is at once an action (something other rules execute) and a source of events (something other rules and systems react to). Prerequisites - The Follow-ups module available on the account (the follow_ups capability enabled). - To enroll/operate via automation, macro or flow: the Automation/Flow module available. - To notify external systems: a webhook endpoint configured on the account, already subscribing to the desired events. - For the AI tools: the Maestro active on the account. Step by step 1. Create an automation rule (or edit an existing one). 2. Set the rule's trigger event (for example, a charge that became overdue or a deal that stalled). 3. Under actions, choose Enroll in follow-up (enroll_in_follow_up) and select the sequence. 4. Optionally, add conditions on follow_up_status to act only on contacts who already are (or are not yet) in a cadence. 5. Save and activate the rule. From then on, each time the event occurs, the action runs automatically. Settings & options The five follow-up actions (automation, macro and flow) The same five actions are available in Automation, Macros and the Flow Builder, and they execute identically in all three places: | Action | What it does | |--------|--------------| | enroll_in_follow_up | Enrolls the target (contact/conversation) in a sequence. | | cancel_follow_up | Cancels the active enrollment. | | pause_follow_up | Pauses the enrollment (no further steps are sent). | | resume_follow_up | Resumes a paused enrollment. | | skip_follow_up_step | Skips the current step and moves to the next. | These actions are added to the action set the automation already had β no existing rule is affected by them. The three condition fields In a rule triggered by a follow-up event, you can condition on these fields: | Field | What it is for | |-------|----------------| | follow_up_status | The enrollment state (active, paused, completed, exited, failed). | | follow_up_sequence_id | The specific sequence the contact is enrolled in. | | follow_up_enrolled_via | How the contact was enrolled (manual, automation, event, inactivity, AI, API). | Events and webhooks As the cadence runs, the platform emits events that serve both to trigger automations and to feed the account's webhooks: | Event | When it fires | |-------|---------------| | follow_up_enrollment.created | An enrollment was created. | | follow_up_enrollment.paused | The enrollment was paused. | | follow_up_enrollment.resumed | The enrollment was resumed. | | follow_up_enrollment.exited | The enrollment exited on an exit rule (e.g., the contact replied). | | follow_up_enrollment.completed | The enrollment reached the end of the sequence. | | follow_up_enrollment.failed | The enrollment failed. | | follow_up_step.sent | A step was sent. | | follow_up_step.replied | The contact replied to a step. | | follow_up_step.skipped | A step was skipped. | | follow_up_step.failed | A step failed to send. | The payloads of these webhooks carry the minimum personal data (account, enrollment, sequence and step identifiers, plus the state) β they are meant to sync dashboards and systems, not to carry the message content. When an AI step is awaiting human approval, there is also an internal pending-draft notification. Maestro follow-up tools With the Maestro active, the assistant can read and operate follow-ups through dedicated tools, always with a user token and respecting the enabled capability and permissions: - List sequences and enrollments. - Enroll a contact in a sequence. - Pause and resume an enrollment. - Skip the current step. - Approve an AI draft (HITL). - Cancel an enrollment. Use cases - Deal won in the CRM β an automation runs cancel_follow_up to end any active cadence for that contact (no one wants to be dunned after closing). - Overdue charge β an automation runs enroll_in_follow_up into the "Dunning" sequence. - Integrator dashboards β an external system subscribes to follow_up_enrollment.* and follow_up_step.* via webhook and builds its own near-real-time reports. Tips, limits & best practices - Pair follow-up actions with the right event: cancel_follow_up on conversion events, and enroll_in_follow_up on risk events (overdue charge, stalled deal, no-show booking). - Use follow_up_status as a condition to avoid enrolling twice or acting on contacts who already exited. - Treat webhooks as state-only: the message content does not come in the payload. - The same action runs identically in automation, macro and flow β choose the entry point by the journey, not by capability. Troubleshooting - The action did not fire: confirm the rule is active, that the trigger event actually occurred, and that the conditions (including follow_up_status) match; also check that the follow-ups capability is enabled on the account. - The webhook did not arrive: check that the endpoint is configured and reachable, and that the follow-up events are actually subscribed on that webhook. - A Maestro tool was denied: verify the capability is enabled, the user token is valid, and the user has permission to operate follow-ups. See also - Enrollment: manual, automation, event and inactivity - Cadence funnel and exit rules - Follow-ups and cadences overview
Manage enrollments from the inbox and the enrollments board
Overview Once a contact enters a cadence, the enrollment is what you track and operate day to day. Conversa Labs puts that operation in two places: - In the inbox, through the Follow-up panel that appears in the conversation, on the contact page, and on the CRM deal β so you can act on that contact's enrollments without leaving the screen. - On the enrollments board of the Follow-up module β to see everything, filter by status, and operate several enrollments at once. In both places you can enroll, see the next step, open the timeline, and use the pause, resume, skip step, and cancel actions. The enrollments board also has the AI drafts queue to approve or reject, plus the bulk action bar. Prerequisites - The Follow-up module enabled on the account. - A published, active sequence (required to enroll from the panel). - To operate an enrollment: the contact must have an active or paused enrollment. - Bulk pause/resume/cancel is available to agents; bulk delete is admin-only. Step by step In the inbox (sidebar panel) 1. Open the conversation (or the contact page, or the CRM deal). 2. Find the Follow-up panel in the sidebar. 3. To start: pick a published sequence in the selector and click Enroll. 4. For each active enrollment, check the status and the next step, and use pause, resume, or cancel. 5. Click open to jump to the full sequence page when you want to see everything. On the enrollments board 1. Go to Follow-up β Enrollments. 2. Use the status filter (all, active, paused, completed, exited, failed). 3. On each row, open the timeline (history icon) or use pause, resume, skip step, and cancel. 4. Select several rows (or select all) to reveal the bulk action bar. 5. If there are pending AI drafts, they appear at the top to approve or reject. Settings & options Panel actions and what each one does | Action | Where it appears | What it does | |--------|------------------|--------------| | Enroll | Sidebar panel | Creates an enrollment for the contact in the chosen sequence (create). | | Next step | Sidebar panel / list | Shows the status and position of the cadence's current step. | | Timeline / events | Enrollments board | Opens the executed steps and the event history (events). | | Pause | Both | Suspends the cadence without canceling it (pause). | | Resume | Both | Resumes the cadence from where it stopped (resume). | | Skip step | Enrollments board | Advances to the next step without sending the current one (skip). | | Cancel | Both | Ends the enrollment for good (confirmation required) (cancel). | AI draft approval (HITL) When a step generates an AI draft, it lands in the approval queue on the enrollments board. You can edit the text right there and approve (approve_draft) β the text is sent and the cadence advances β or reject (reject_draft), which skips the drafted step and moves on. Preview a step (preview) Use preview (preview) to see how the text looks with variables filled in for a sample contact, without sending anything and without creating an enrollment. It's the safe way to check the result before you publish the step. Send a test (test_send) Send test (test_send) delivers a one-off message inside a conversation, using the text and already-rendered variables, so you can see how it actually arrives β without creating an enrollment. Bulk operations on the board The bulk action bar appears when you select rows and processes up to 500 enrollments at a time: | Bulk operation | Who can | Note | |----------------|---------|------| | Pause many | Agent | Applies pause to all selected. | | Resume many | Agent | Applies resume to all selected. | | Cancel many | Agent | Applies cancel (asks for confirmation). | | Delete many | Administrator | Permanent, irreversible removal (asks for confirmation). | Use cases - Pause on the contact's request: someone asks for a break β pause the enrollment right in the conversation and resume it later. - Skip a redundant step: the contact already answered what that step would ask β use skip step so you don't send an unnecessary message. - Test the copy before publishing: preview the step and send a test in a conversation to check the tone and variables. - Bulk cleanup: filter by paused and bulk-cancel enrollments that no longer make sense. Tips, limits & best practices - There is at most one active (or paused) enrollment per contact in each sequence β you can't enroll again while the previous one is active or paused. - Pause doesn't end the cadence: it's suspended and can be resumed. Cancel ends it. - Bulk processes up to 500 enrollments per operation; use the filter so you don't catch rows you didn't mean to. - Bulk delete is permanent and admin-only β prefer cancel when you only want to stop the cadence. - Use preview and send test before publishing a new step. Troubleshooting - The contact still receives messages: the cadence only stops with pause or cancel; check the enrollment status. If the sequence has an exit-on-reply rule, review the funnel and exit rules. - I can't enroll: there is probably already an active or paused enrollment for that contact in that sequence (limit of one per target). Also confirm the sequence is published. - I don't see the enroll button: confirm there's at least one published, active sequence. - An AI draft is stuck: it's waiting for human approval in the board's queue β approve (with or without an edit) or reject so the cadence moves on. - I can't bulk delete: permanent deletion is admin-only; agents can pause, resume, and cancel. See also - Enrollment: manual, by automation, by event and by inactivity - Cadence funnel and exit rules - AI with human approval
Pause, resume and cancel a cadence inside a flow
Overview Inside the flow builder you can act on the contact's cadence without leaving the flow: enroll, pause, resume, skip step and cancel. These actions used to require you to manually pick which follow-up sequence should be affected β something the operator almost never knows while building the flow (whoever replies on WhatsApp could be in any cadence). The sequence field is now optional: leave it blank and the action works on the enrollment behind that conversation β the one that triggered the flow. Along with that, a bigger and silent problem was fixed: the lookup only looked at the conversation. An enrollment created from a CRM deal, a charge, an import or the contact page is born with no conversation attached β so it was invisible to the action, which simply did nothing and said nothing. Today, when there is no enrollment on the conversation, the action looks for the enrollment of the triggering contact. Prerequisites - The Follow-up module enabled on the account. - A flow where you will add the action (and that you will publish at the end). - For pause, skip step and cancel: the contact must have an in-flight enrollment (active or paused). - For resume: the enrollment must be paused. - For enroll: you need at least one published sequence β this is the only action where the sequence is still required. Step by step 1. Open Automation & Flows β Flows and edit (or create) the flow. 2. Add the follow-up action you need: - Enroll in follow-up and Cancel follow-up have their own block in the Follow-up group. - Pause follow-up, Resume follow-up and Skip follow-up step appear in the action list of the generic action block. 3. In the sequence field, leave it blank (recommended): the action will act on the enrollment behind that conversation. 4. Pick a sequence only when you want to narrow the action down to one specific cadence. 5. Publish the flow and check the run to confirm the action was applied. Settings & options The five actions and the sequence field | Action | Sequence | What it does | |--------|----------|--------------| | Enroll in follow-up | Required | Puts the contact in the chosen cadence. If they are already in it, nothing is duplicated. | | Pause follow-up | Optional | Suspends the in-flight cadence without ending it. | | Resume follow-up | Optional | Resumes a paused cadence from where it stopped. | | Skip follow-up step | Optional | Moves to the next step without sending the current one. | | Cancel follow-up | Optional | Ends the enrollment for good. | How the action finds the enrollment (lookup order) With the sequence field blank, the action searches in this order and stops at the first match: | Order | Where it looks | Note | |-------|----------------|------| | 1st | The flow's conversation enrollment | The most recent in-flight one on that conversation. The normal case. | | 2nd | The triggering contact's enrollment | That person's most recent in-flight one β this covers enrollments started from a deal, a charge, an import or the contact page. | | 3rd | Nothing | With no conversation and no contact, the action does nothing and the flow moves on. | Picking a sequence does not change the order β it only filters the lookup. If the in-flight enrollment belongs to another sequence, it will no longer be found. When to leave it blank and when to pick one - Leave it blank (almost always): you want to act on "the cadence this person is receiving right now", without knowing which one it is. This is what operators expect. - Pick a sequence: when the flow must touch only one specific cadence and ignore the rest β for example, pause only the billing cadence and let the welcome one keep running. Account with no sequences yet If the account has no sequence created, the picker shows up empty β and that does not block you: pause, resume, skip step and cancel are still valid when blank (they just will not find anything until enrollments exist). Enroll, on the other hand, needs a published sequence; create and publish one under Follow-up β Sequences. Same rule in automations and macros These same five actions exist in automation rules and macros, with the same lookup order. What you learn here applies in all three places. Use cases - The customer replied mid-cadence: the service flow pauses the cadence so the contact does not keep receiving automated messages while talking to a human. - Payment confirmed: the flow cancels that contact's billing cadence β even when the enrollment was created from the charge rather than from a conversation. - Conversation closed unresolved: the flow resumes the cadence that was paused. - Redundant step: the contact already gave the information the next step would ask for, so the flow uses skip step. - Enrollment from the CRM: someone was enrolled from a deal; when that person replies, the flow can still pause the cadence even without a conversation link. Tips, limits & best practices - Honest limit β more than one active enrollment: if the contact is in several cadences at the same time, the action applies to the conversation's enrollment; failing that, to the triggering contact's most recent one. It never sweeps the whole account and never acts on several enrollments at once. Need a specific cadence? Pick the sequence in the field. - Finding nothing is not an error: with no enrollment, the action does nothing and the flow continues. The reason is recorded in the run β check there before blaming the flow. - Resume only works on paused: an active enrollment is not "resumed", and a canceled or completed one does not come back. - Pause does not end it: to end it for good, use cancel. - No contact, no action: a flow running with no conversation and no contact has nobody to act on. That is deliberate β the alternative would be touching someone else's cadence. - Test with a real contact before publishing for everyone: run the flow and check the enrollment state in the enrollments panel. Troubleshooting - The action does nothing and nothing shows up: there is probably no in-flight enrollment for that contact. Check in the enrollments panel whether the state is active or paused β completed, canceled or "exited" are not reachable. - It worked before I picked the sequence: picking a sequence narrows the lookup. If the in-flight enrollment belongs to another cadence, it is no longer found. Set the field back to blank. - The sequence picker is empty: the account has no sequence yet. For pause, resume, skip and cancel, leave it blank; for enroll, create and publish a sequence first. - Resume does not resume: it only works on a paused enrollment. Check the current state. - It paused the wrong cadence: the contact had more than one active enrollment and the action took the conversation's one (or the contact's most recent). Set the sequence explicitly in the field. - No follow-up action shows in the editor: the Follow-up module is disabled on this account β ask an administrator to enable it. - The sequence I picked disappeared: it was deleted or unpublished. Pick another one or leave the field blank. See also - Managing enrollments in the inbox and in the enrollments panel - Enrollment: manual, by automation, by event and by inactivity - Integrations: follow-up automations, events and webhooks - Cadence funnel and exit rules