Sendbound
Automations

Set it once.
Let it run forever.

Trigger multi-step email sequences from any API event, form submit, or contact change. Visual workflow builder, branching logic, and live editing — no re-deploy required.

Replace your clunky drip campaign tool with behavioral lifecycle automation built for developers. Ship onboarding sequences, re-engagement flows, post-purchase nurture, and churn-recovery campaigns — all from a single visual canvas that your whole team can edit without touching code.

  • Behavioral triggers from API events, webhooks, tags & form submissions
  • Visual if/else branching on opens, clicks, plan, and any custom field
  • Unlimited sequence depth — 2-email drip or 30-touch lifecycle journey
  • Live edits that apply instantly without pausing active enrollees
  • Exit conditions that stop emails the moment a contact converts
API EventTRIGGER

user.signed_up

Send emailSEND

Welcome to Sendbound

68% open
Wait 2 daysWAIT
Send emailSEND

Getting started guide

52% open
ConditionIF / ELSE

Opened email 2?

Yes

Upgrade offerYES

No

Tips & tricksNO

Event-driven triggers

Fire sequences from any API event, webhook, form submission, tag, audience join, or scheduled time.

Visual branching

If/else conditions on opens, clicks, custom fields, or time delays. Unlimited branch depth.

Live editing

Modify a running automation without pausing it. New enrollees see the update immediately.

847

avg contacts enrolled

52%

higher opens vs one-off

6 min

average setup time

3.2×

trial sequence revenue lift

Triggers

Any event, from any system

Your product already knows when a customer takes action. Sendbound turns those signals into journeys. Send API events directly from your backend, connect Zapier, embed a native form, or listen for tag and contact-field changes. Every trigger carries its own data payload, so a sequence can personalize content and route on plan level without a brittle integration layer.

API Event

user.signed_up

Form Submit

form: demo_request

Tag Added

tag: trial-user

Audience Join

audience: customers

Scheduled

cron: 0 9 * * 1

Field Changed

plan: free → scale

Webhook

hook: checkout.done

Manual

run: contact_123

Start from a proven sequence

Battle-tested shapes — adapt the copy and conditions in minutes.

Welcome series

user.signed_up
3 steps
+23% activation

Trial onboarding

trial.started
5 steps
+31% activation

Churn recovery

subscription.cancelled
4 steps
+18% retention

Post-purchase

order.completed
2 steps
+12% repeat

Re-engagement

last_active > 30d
3 steps
+16% return

Feature announcement

feature.released
2 steps
+28% adoption
ConditionIF / ELSE

Opened previous email?

Yes

Upgrade offerYES

scale_offer.tsx

No

Tips & tricksNO

tips_v2.tsx

AND conditions

plan=="scale"
onboarding_complete===true
trial_days_remaining<=3

If/else logic that actually works

Create decisions around behavior, profile data, and event properties. Combine comparisons with AND/OR groups, wait until a date or activity occurs, and add exit conditions that stop messages the moment they no longer help. Branch previews show exactly which path a contact will take. The builder keeps every decision readable, while the execution log records the input, result, and next action for every enrolled person.

  • Condition on any event property, custom field, or contact attribute
  • AND / OR group logic with unlimited nesting
  • Exit conditions that fire at every step — not just at the end
  • Branch preview shows which path a test contact would take

Trigger automations from your backend

One SDK call enrolls a contact, passes event data, and starts the sequence. No webhooks to configure, no Zapier steps to set up. The enrollment ID comes back immediately so you can reference it later.

  • Idempotent — same contact + same sequence won't double-enroll
  • Pass any JSON payload; use it for personalization and branching
  • Enrollment ID returned in < 15ms for reference in your own DB
trigger.ts
types.ts
client.ts
1
2
3
4
5
6
7
8
import { Sendbound } from '@sendbound/node'
const sb = new Sendbound(process.env.SB_KEY)
await sb.automations.trigger(
  'seq_welcome_v2', {
    contact: { email: user.email },
    data: { plan: user.plan, trial_days: 3 },
  }
)
OUTPUT· 12ms
200 OK
{
"enrollmentId": "enr_9x2kp4mw",
"status": "active", "stepCount": 6
}
TypeScript · ESNext · @sendbound/node@2.1.4UTF-8 · LF

Who Sendbound automations are built for

Whether you ship SaaS, run ecommerce, or manage an agency portfolio, the same visual builder handles your whole lifecycle.

SaaS activation

+31% trial-to-paid conversion

Trigger sequences the moment a user signs up, completes onboarding, or goes idle. Branch on plan level and feature usage without YAML.

Welcome seriesuser.signed_up
Upgrade nudgetrial.ending
Re-engagementidle > 7d

Ecommerce brands

+18% repeat purchase rate

Fire post-purchase flows, abandoned-cart nudges, and loyalty milestones from Shopify or your own webhook. Exit conditions stop emails the moment an order ships.

Post-purchaseorder.completed
Cart recoverycart.abandoned
VIP rewardloyalty.reached

Agencies & operators

One builder, every client

Build once, clone across clients. Each automation runs in its own project with isolated contacts and independent analytics.

Client onboardingclient.activated
Monthly reportcron: 0 9 1 * *
Renewal nudgecontract.expiring

How Sendbound automations compare

Flexible triggers, visual branching, and live editing — without the per-email pricing or three-day onboarding.

FeatureSendboundKlaviyoActiveCampaignCustomer.io
API-triggered sequences (no form required)✓Partial✓✓
Visual drag-and-drop workflow builder✓✓✓✓
Live edit without pausing the automation✓✗✗✗
Unlimited workflow steps✓✗✓✓
If/else branching on custom field values✓✓✓✓
Exit conditions on any event or field✓Partial✓✓
Per-contact send-time optimization✓Partial✗✗
Native React Email template support✓✗✗✗
Free tier with automations included✓✗✗✗
Execution log per enrolled contact✓✗Partial✓

Automation questions, answered

Can I edit an automation while it’s running?

Yes. Save a change at any time. New enrollees immediately use the current version while contacts already in a wait keep their existing path.

What happens if a contact is already enrolled?

You choose the re-entry rule: prevent duplicate enrollment, restart the sequence, or allow a contact to enter again after a defined cooldown.

How do exit conditions work?

Exit conditions check at every step. A contact can leave when they purchase, unsubscribe, gain a tag, reach a field value, or meet any rule you define.

Can I use custom fields in conditions?

Absolutely. Compare custom fields to a value, another field, or a dynamic event property with operators for text, numbers, dates, and lists.

Is there a limit on automation steps?

No artificial step limit. Build short transactional flows or long lifecycle journeys with branches, waits, actions, and exits.

How do I test an automation before going live?

Use test mode to enroll a test contact, inspect every decision, preview email output, and review the complete execution timeline before activating it.