Sequences

Email Sequences

Automated drip campaigns that send the right email at the right time. Trigger by list subscription or API call.

How it works

1

Choose a trigger

Start the sequence when a contact is added to a list, or enroll contacts programmatically via API.

2

Build your steps

Add email steps with subject lines, body content, and optional per-step sender overrides. Use templates to speed things up.

3

Set delays

Control timing between steps in minutes, hours, or days. Send the first email immediately, then space follow-ups however you want.

4

Activate

Flip the switch and your sequence starts enrolling contacts automatically. Pause, resume, or archive at any time.

Capabilities

Multi-Step Flows

Build sequences with as many steps as you need. Each step is a full email with its own subject, body, and delay.

Flexible Delays

Set delays in minutes, hours, or days between steps. Send the welcome email immediately, then follow up on your schedule.

Manual Enrollment

Search and enroll individual contacts from the dashboard, or batch-enroll via API. Works alongside automatic list-based triggers.

Per-Step Analytics

Track sent count, open rate, click rate, and bounces for every step. Identify where contacts drop off and optimize.

Template Support

Apply saved email templates to any step. Reuse proven designs across multiple sequences.

Smart Exit Handling

Contacts are automatically removed if they unsubscribe, bounce, or get suppressed. No manual cleanup needed.

Enroll a contact via API

typescript
const response = await fetch("https://api.xmit.sh/v1/sequences/seq_abc123/enroll", {
  method: "POST",
  headers: {
    "Authorization": "Bearer pm_live_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    contactIds: ["con_user1", "con_user2"],
  }),
});

const { enrolled, skipped } = await response.json();
// enrolled: 2, skipped: 0

Related features

Frequently Asked Questions

What triggers can start a sequence?
Two triggers are supported: list-based (automatically enroll contacts when they're added to a specific list) and API-based (enroll contacts programmatically via the REST API). List-based is great for signup flows; API-based gives you full control from your backend.
Can I set delays shorter than a day?
Yes. Delays can be set in minutes, hours, or days. You can send a welcome email immediately (0 delay), follow up 4 hours later, and send a third email 3 days after that.
What happens if a contact unsubscribes mid-sequence?
They're automatically exited from the sequence and won't receive any remaining steps. The same applies if their email bounces or they file a complaint. The enrollment record shows the exit reason.
Can I pause a running sequence?
Yes. Pausing a sequence stops all pending sends. Active enrollments are preserved but no new emails go out until you resume. You can also archive a sequence to permanently retire it.
How do I track performance?
Each step shows sent count, open rate, click rate, and bounce count. The sequence detail page includes a step funnel visualization and enrollment table with status filters (active, completed, exited).
Can different steps use different senders?
Yes. Each step can optionally override the sequence-level sender. This lets you send onboarding emails from support@ and product updates from updates@, all in the same sequence.
Get started in minutes

Start sending with Transmit

Set up in minutes. Volume-based pricing starts at $2/month.