Workflows that convert.

Pre-built, multi-step recovery flows for every revenue-critical moment — triggered by typed intents and delivered across email, SMS, and push.

8
Intent Workflows
4
Categories
Type-safe
SDK Interface

Built for revenue recovery.

Each workflow targets a specific revenue-critical moment, with built-in message variations to A/B test.

Trigger on intent

Each workflow fires on a typed intent — payment failed, trial ending, checkout abandoned, and more.

Multi-step sequences

Chain messages and timed waits into a sequence — across email, SMS, and push.

A/B your messages

Thompson sampling shifts send volume toward the best-performing copy variation as results come in.

Track conversions

Call resolveConversion() to connect conversions back to the workflow that triggered them.

Intent-driven workflows

Type-safe intents with structured signals. Each workflow knows exactly what data it needs.

Trial Conversion

Convert trial users before expiration

TRIAL_ENDINGConversion5 signals · 1 required

Failed Trial Recovery

Win back expired trial users

TRIAL_EXPIREDConversion3 signals · 1 required

Plan Selection Nudge

Encourage completion when user selects a plan

PLAN_SELECTEDExpansion1 signal · 1 required

Checkout Recovery

Recover abandoned checkouts

CHECKOUT_STARTEDExpansion5 signals · 2 required

Payment Recovery

Recover failed payments with smart retries

PAYMENT_FAILEDRecovery7 signals · 2 required

Renewal Reminder

Remind users before subscription ends

SUBSCRIPTION_ENDINGChurn7 signals · 1 required

Win-back Campaign

Win back cancelled subscribers

SUBSCRIPTION_CANCELLEDChurn7 signals · 1 required

Downgrade Save

Re-engage downgraded users

SUBSCRIPTION_DOWNGRADEDChurn5 signals · 2 required

How intents work

Type-safe workflow triggers with structured signals and automatic attribution.

Typed signals

Each intent has structured payload fields with compile-time validation

Category routing

Conversion, Expansion, Recovery, and Churn paths

Outcome events

Each workflow defines success criteria for attribution tracking

Revenue attribution

Resolve conversions back to the workflow that drove them

Type-safe intent API

Structured signals with compile-time type checking. No more stringly-typed events.

TSlib/workflows.ts
import { Fourbyfour } from '@fourbyfour/sdk'; const client = new Fourbyfour({  apiKey: process.env.FOURBYFOUR_API_KEY!,}); // Type-safe intent with structured signalsawait client.start('PAYMENT_FAILED', {  userId: 'user_123',  signals: {    invoiceId: 'inv_abc123',    amount: 99.00,  },}); // Other intents with their typed signalsawait client.start('TRIAL_ENDING', {  userId: 'user_456',  signals: {    planId: 'pro',    daysRemaining: 3,  },}); // Resolve conversion for attributionawait client.resolve({  userId: 'user_123',  amount: 99.00,});
Ln 29

Start recovering revenue today

Deploy your first workflow in 5 minutes. No credit card required.