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 forcontact.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:
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:
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 namedemail_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:
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.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.
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.
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.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.