Event-triggered journeys with 8 step types — Email / Push / SMS / Webhook / Update Profile / Wait / Branch / AI — over the same event taxonomy every other module already emits.
Customer.io + Iterable + Braze run journeys but only over the data they have. Sendora journeys run over Sendora data — every event from every module (Analytics, Auth, Support, Push delivery, Email bounce, CSAT rating, KB view, anomaly detection) lands on the same event bus the workflow trigger reads. Branch on a profile trait, send via Email or Push or SMS, update a trait, fire a webhook, run an AI generate/decide/extract step, wait for a delay — 8 step types implemented in `step-executor.ts`. Trigger model is single: `{ eventType, filters }` with wildcard matching. Audience-join, CSAT detractor, KB view all become triggers because each emits a canonical event the workflow can subscribe to.
Coming soon. Automation is built and running internally, but not yet generally available while we roll modules out in batches. Start free today with the available modules — we'll enable Automation on your account as it ships.
Features
- 8 starter blueprints in the template gallery — welcome series, cart abandonment, order confirmation, post-purchase feedback, trial ending, re-engagement, birthday, password reset. Clone in one click.
- Event-typed trigger —
{ eventType, filters }with wildcard matching. Any event from any module (auth.user_created, csat.detractor, push.delivered, kb.article_viewed, …) can fire a workflow. Filters narrow by event properties. - 8 step types —
send_email,send_push,send_sms,webhook,update_profile,wait,branch,ai_action. Each implemented inapps/backend/src/modules/automation/step-executor.ts. - AI step type —
ai_actionstep withfeature: generate | decide | extractvia gpt-oss:120b / ministral:14b on Ollama Cloud (or BYOK per-org). - Branching — branch step jumps to ifTrue / ifFalse indexes based on profile trait equality. Standalone delay via
waitstep. - Run history — filter by status (running / paused / completed / failed), cancel an in-flight run, drill into per-step outcomes + audit log.
- Pause / resume mid-flight — flips
workflow_runs.statustopaused; new triggers queue; resume picks up at next step. - Promote.failed webhook + delivery-health metrics in Health module — broken journeys surface, not silently rot.
- Real audience targeting — Audiences from Customers module evaluate at send-time inside the email/push/sms steps. Real-time audience membership; no nightly CDP sync.
Common use cases
Replace Customer.io / Iterable for event-driven lifecycle journeys where the branch + send happens over Sendora-emitted events directly.
Cross-channel campaigns (Push → wait 1h → Email → wait 3d → SMS) without stitching three vendors and three reputations — same `user_id` across all 4 sender step types.
AI-driven personalization — `ai_action: generate` drafts an email body inline, `decide` picks the next branch, `extract` writes a profile trait, all inside the workflow.
Start in minutes. Scale without switching tools.
The free tier covers most side projects. Every module is turn-key and every SDK is first-party.