Skip to main content

Build a 7-day multichannel welcome series

Use a three-touch welcome journey for the first week after signup: send a day-0 welcome, wait and check engagement, send a day-2 reminder where appropriate, then qualify the contact on day 5. This guide shows the sequence as Flow definitions and calls out where to connect your event source, channel credentials, and tenant send controls. Before you start, connect at least one channel, create a test contact with the relevant address and marketing consent, and choose a stable signup event ID so retries do not enroll a contact twice. Configure message templates and sender identities for your enabled channels. Start with Flow templates if you want to adapt an existing pattern instead of building from a blank flow.

1. Trigger on a new subscriber

Create a Flow with an event trigger for contact.created, then filter for signups. If your workspace emits a dedicated signup event, use that event instead. Require an explicit marketing opt-in before enrolling the contact in promotional messages; a created contact is not automatically a marketing subscriber. For an event payload, use a stable contact ID and pass only the fields the messages need:
Set the trigger filter to source equals signup and marketing_opt_in equals true (or your workspace’s equivalent event-property filter). Deduplicate by event_id or your signup record ID. If your source cannot filter trigger properties, normalize and qualify the event before it reaches the Flow; do not enroll every contact-created event and rely on message copy to prevent an unwanted send.

2. Day 0: send the welcome

Choose the least costly channel that is both configured for the contact and appropriate for the message. Check your tenant’s rates and channel setup rather than assuming one channel is always cheapest. Email is a useful default for a longer welcome; WhatsApp requires the appropriate opted-in contact and, outside its customer-service window, an approved template. Use SMS only when the contact has SMS consent and the content fits the channel. Flow message nodes use flat variables such as {{first_name}}; a missing name should have a safe fallback in your source or message. Here is a day-0 email node in the Flow DSL:
For a shorter welcome, use a channel node whose sender and recipient fields match your tenant configuration:
In a multi-channel flow, branch to one day-0 node based on address availability and the channel preference recorded for that contact. Do not send all three messages as a fallback sequence unless that is the experience you intend. For more on channel fallback behavior, see fallback chains.

3. Wait 24 hours and branch on engagement

Add a 24-hour delay after the day-0 message. Before the branch, make sure the Flow can read engagement signals for this specific enrollment. Email opens can be noisy because privacy features and image proxies may load tracking pixels without a person reading the message. Treat a tracked link click or a product event as stronger evidence than an open alone. The condition node below uses fields named email_opened and link_clicked. Populate those booleans from the contact’s engagement events, scoped to this welcome message or enrollment. A short_link.click event can supply click evidence when the message contains a tracked URL; see short links and click tracking. If your event source does not update the waiting Flow context, have the event source update the enrollment’s engagement state before the condition runs, or trigger a separate event-based Flow to perform the qualification. Do not assume an event arriving during a delay changes an already-captured context automatically. Keep the engagement state current in CDP: update a contact trait such as welcome_engaged when an email.opened or verified short_link.click event arrives, scoped to this welcome enrollment. A condition reads the trait at the time the step runs; a delay does not by itself subscribe to future events or rewrite the Flow’s starting payload. This three-node fragment waits 24 hours, then sends contacts with the updated trait down the yes edge and others down the no edge:
If you need to distinguish a read from a click, branch on the corresponding trait in separate condition nodes; do not label an open as a click.

4. Day 2: send a tracked SMS nudge

On the unengaged path, wait until day 2 from signup and send one concise SMS with a tracked short link. Create the short link with your welcome campaign identifier, or enable URL shortening for the send, then pass the resulting URL as a flat Flow variable. The short-links guide explains how to mint links and read verified click analytics.
A day-2 touch is optional for contacts who already engaged. Give each path one clear next action, and avoid sending another nudge if the contact opted out, converted, or no longer has the relevant consent. Keep message links scoped to the intended destination and do not put sensitive data in the URL.

5. Day 5: qualify into the next journey

Wait until day 5, then branch on the latest engagement state. Route unengaged contacts to a re-engagement journey and engaged contacts to product education. Keep these follow-up paths as separate Flows if your builder does not expose a sub-flow node: emit a qualified event with the contact ID, welcome-series ID, and engagement status, then use that event to start the corresponding follow-up Flow. This keeps the welcome sequence independent from the content and cadence of the next journey. Use a stable series/enrollment key when handing off, and make the receiving trigger idempotent. Exclude unsubscribed contacts and contacts who have already converted from the follow-up. For more complex customer journeys, compare the campaign journey builder with the Flow approach before choosing where to own enrollment state.

6. Observe executions and conversions

After publishing, open the Flow execution timeline and inspect a test contact from enrollment through each delay, condition, and send. Use the stalled-execution dashboard to find runs that remain waiting or fail to progress, then open the affected execution to identify its last completed step. In Flows analytics, compare enrollment, step completion, channel send outcomes, and downstream conversion by step; a high open count alone does not prove the series is helping. Test at least these cases before launch:
  • Signup without marketing opt-in does not enroll.
  • A duplicate signup event does not create a second series enrollment.
  • An engaged contact skips the day-2 nudge and reaches product education on day 5.
  • An unengaged but opted-in contact receives the intended day-2 SMS and reaches re-engagement on day 5.
  • Missing email or phone data takes a deliberate alternate path rather than rendering a blank destination.
  • Opt-out, suppression, and conversion prevent later promotional steps.
For the sibling event-and-wait pattern, see abandoned-cart recovery.

7. Preflight tenant-owned send controls

Before enabling the Flow for a live audience, check the controls configured by your workspace:
  • Consent and suppression: enroll only contacts with the channel-specific marketing permission you require. Check suppression and stop future sends after an opt-out.
  • Quiet hours: configure recipient-local send windows so a delay that ends overnight does not send at an inappropriate time.
  • Frequency caps: account for messages sent by this Flow and other campaigns to the same contact.
  • Channel readiness: verify that each sender, approved WhatsApp template, and email domain is available for the intended recipients.
These controls are tenant-owned and their availability and defaults depend on your workspace configuration. Review campaign limits and quiet hours, send-gates preflight, and frequency caps. Do not add a separate hard-coded compliance rule in the Flow; configure the controls for your tenant and verify the resulting send decision in preflight.

8. Adapt the recipe for your audience

Use the same cadence with different entry criteria, copy, and day-5 qualification. The definitions below show the shared Flow envelope and the main differences; replace channel fields with the fields your signup source actually supplies.

B2B SaaS trial welcome

Trigger on trial.started with marketing_opt_in: true. Day 0 introduces setup, day 2 links to the first integration, and day 5 sends engaged accounts to product education. Keep trial lifecycle notices transactional and separate from promotional messages.

B2C first-order welcome

Trigger on order.paid for a first order and enroll marketing touches only when the customer opted in. Day 0 thanks the buyer, day 2 shares a getting-started or care link, and day 5 routes an engaged buyer to product education.
The samples use event names and fields from your own workspace. Map your signup, trial, or order source into the Flow trigger, populate engaged from the enrollment’s engagement events, and connect the condition edges to the day-5 follow-up paths before publishing. Use the Flow templates catalog to find a reusable starting point.