Skip to content
Back to guides
email9/14/2026

Building a Drip Sequence: Trigger, Delay, Template

A practical walkthrough of building an automation in the email app — the trigger that starts it, the delay between steps, and the template each step sends.

emailautomationdrip

A drip sequence is one of the more mechanical pieces of email marketing to explain, because it really does come down to three moving parts: what starts it, how long between messages, and what each message says. The email app's automation model matches that directly.

The three building blocks

An automation has a trigger type — currently either subscriber_created (fires when someone joins your list) or tag_added (fires when a specific tag gets applied to a subscriber, carried in the automation's trigger_config). That's what starts the sequence for a given subscriber.

From there, an automation is an ordered list of steps, and each step has a delay_minutes (how long to wait after the previous step, or after the trigger for the first one), a template_id pointing at the email to send, and an optional subject override if this step needs different subject-line wording than the template's default.

Together, that's the whole model: trigger starts the clock, each step waits its delay and sends its template. No branching logic, no conditional paths within a sequence — a deliberately simple, linear model that's easy to reason about and easy to debug when something looks off.

Building your first sequence

Start with the trigger. If you're building a welcome sequence, subscriber_created is the natural fit — every new subscriber enters the sequence the moment they join. If you're building something more targeted — a sequence for people interested in a specific product line, say — tag_added with the relevant tag is the right choice, since it only fires for subscribers who've actually been tagged that way, whether manually or through your signup form.

Then build your steps in order. A common shape: an immediate or near-immediate first email (a short delay, sometimes zero), then a longer gap before a second message, then a longer gap still before a third. There's no fixed rule for spacing — it depends on what you're trying to accomplish — but sequences that front-load value early and space out follow-ups tend to hold attention better than ones that fire messages in quick succession.

Each step needs a template_id. Build or pick your templates before wiring up the sequence, since a step with no valid template to point at won't have anything to send.

Status: draft, active, paused

An automation's status controls whether it's actually running. Draft means it's still being built and won't enroll anyone. Active means new subscribers matching the trigger are being enrolled and processed through the steps. Paused stops new enrollment and step processing without deleting the automation — useful when you need to fix a template or adjust timing without losing the sequence's configuration or its enrollment history.

Checking enrollment

Automations report enrollment counts — active, completed, and cancelled — so you can see at a glance how many subscribers are currently partway through a sequence versus how many have finished it. This is the quickest way to sanity-check that a sequence is actually running as expected: if you've had subscribers join for days and your active count is still zero, something in the trigger or the processing step needs attention before you assume it's working.

Processing

Automations are advanced by a processing step (processAutomations) that moves enrolled subscribers through their steps as delays elapse. If you're troubleshooting why a sequence seems stalled, that's the mechanism worth understanding — steps don't fire the instant a delay technically elapses; they fire on the next processing pass.