Skip to content
Sendora Cloud
Create account
Grow · Automation

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.

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 typessend_email, send_push, send_sms, webhook, update_profile, wait, branch, ai_action. Each implemented in apps/backend/src/modules/automation/step-executor.ts.
  • AI step typeai_action step with feature: generate | decide | extract via 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 wait step.
  • 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.status to paused; 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.