Closed betaInvite-only API access.Ask for an invite
Browse documentation

Marketing

Sequences

Automated, multi-step drips that stop when someone replies.

A sequence emails a contact over time — a welcome series, an onboarding drip — with waits between steps. It exits automatically the moment the contact replies. Each step's template personalizes from the enrollee's own contact record (name, first_name, custom fields), automatically.

GET/v1/sequences
POST/v1/sequences
GET/v1/sequences/:id
PATCH/v1/sequences/:id
POST/v1/sequences/:id/enroll
GET/v1/sequences/:id/enrollments
POST/v1/sequences/:id/enrollments/:enrollmentId/cancel
GET/v1/sequences/:id/analytics
sequence.ts
const seq = await mail.sequences.create({
  name: "Onboarding",
  steps: [
    { template: "welcome", delayHours: 0 },
    { template: "tips",    delayHours: 48 },
    { template: "upgrade", delayHours: 120 },
  ],
});
await mail.sequences.enroll(seq.id, "ada@example.com");
noteSequences and campaigns are Marketing-wing features — enrolling or sending checks your plan and returns a feature_locked error if it isn't enabled.
CarefulSequences are for people you already have a relationship with — onboarding, activation, renewals. Marketing and sales mail can only go to contacts already in your audience: a send to an address you haven't collected is refused. rootmail isn't a cold-outreach tool and won't work as one.