Back to Blog

Introducing Workflows

Engineering TeamFeb 8, 20256 min read

Introducing Workflows

We're excited to announce Workflows - the easiest way to automate customer journeys with event-driven automation.

What are Workflows?

Workflows let you define automated sequences that trigger based on user events, execute actions across multiple channels, and adapt to user behavior in real-time. No more stitching together multiple tools or writing complex orchestration code.

The Problem We're Solving

Modern customer engagement requires coordinated communication across multiple touchpoints. A user abandons their cart - you need to send an email, then a push notification, then maybe an SMS. If they complete the purchase, you need to stop the sequence immediately.

Building this yourself means:

  • Managing complex state machines
  • Handling timing and delays reliably
  • Coordinating across multiple notification providers
  • Dealing with race conditions and edge cases

Workflows handles all of this for you.

How It Works

1. Define a Trigger

Every workflow starts with a trigger - an event that kicks off the automation:

TSTypeScript
// Track events from your appawait fbf.track({  userId: 'user-123',  event: 'cart.abandoned',  properties: {    cartValue: 149.99,    items: ['product-abc', 'product-xyz']  }});
Ln 9

2. Add Conditions

Control who enters the workflow with powerful conditions:

JSJavaScript
// Only trigger for high-value carts from active usersuser.status == "active" && event.properties.cartValue > 50
Ln 2

3. Chain Actions

Build your sequence with our visual builder or via API:

  • Notify: Send messages via email, SMS, push, or in-app
  • Wait: Pause for a specific duration
  • Wait for Event: Pause until a user takes an action (or times out)
  • Update User: Modify user attributes
  • Webhook: Call external APIs

4. Monitor Everything

Real-time visibility into every workflow instance:

  • See which step each user is on
  • Track conversion rates at each step
  • Debug failed instances
  • Cancel running workflows

Example: Cart Abandonment Flow

Here's a complete cart abandonment workflow:

  1. Trigger: cart.abandoned event
  2. Condition: event.properties.cartValue > 25
  3. Wait: 1 hour
  4. Wait for Event: purchase.completed (timeout: 24h)
  5. If no purchase: Send email reminder
  6. Wait: 24 hours
  7. Wait for Event: purchase.completed (timeout: 48h)
  8. If no purchase: Send SMS with discount code

The workflow automatically exits if the user completes their purchase at any point.

Built for Scale

  • Millions of concurrent instances: Handle your entire user base
  • Sub-second trigger latency: Workflows start immediately
  • Exactly-once execution: No duplicate actions
  • Automatic retries: Failed actions are retried with backoff

Getting Started

  1. Create a workflow in the dashboard
  2. Define your trigger event
  3. Add your actions
  4. Enable and deploy
TSTypeScript
// Start tracking eventsawait fbf.track({  userId: 'user-123',  event: 'signup.completed'}); // The workflow takes it from here
Ln 7

Check out the documentation to build your first workflow.

Ready to get started?

Start building automated workflows today.

Fourbyfour | Revenue workflows on autopilot