Not just triggers and templates. Each workflow decides what to say, when to say it, and learns what converts.
Every workflow adapts to the user, the context, and what's worked before.
Copy adapts to user behavior, history, and what's converted before. Not the same template for everyone.
Timing adjusts to timezone, engagement patterns, and urgency. High-value users get faster follow-up.
Thompson Sampling surfaces winners automatically. Losers phase out without manual intervention.
Track which variation, channel, and timing drove the conversion. Revenue tied to the exact decision.
Each workflow is optimized for a specific revenue outcome.
Proactive outreach before payment fails completely
payment.failing2 emailsMulti-step recovery adapts to failure reason and customer value
payment.failed3 emailsGuide to activation based on what they haven't tried yet
trial.started2 emailsConvert based on usage depth and activation score
trial.ending3 emailsWin back expired trials with targeted offers
trial.expired2 emailsUpgrade pitch matches actual usage patterns
usage.threshold2 emailsGrow account through team adoption
team.member_invited2 emailsRetain revenue by addressing downgrade reasons
downgrade.requested2 emailsProactive renewal communication with value recap
renewal.upcoming2 emailsRe-engage churned customers based on why they left
subscription.canceled3 emailsProactive outreach when behavioral signals indicate churn risk
churn.risk_detected2 emailsLast-chance retention when cancellation initiated
subscription.cancel_requested2 emailsNot just what to send, but how, when, and to whom.
Routes to different messaging based on user value and context
Discount size adjusts to customer value and plan history
High-value accounts get personal outreach automatically
Every workflow signals success for continuous optimization
Send an event, workflows handle the rest. Full type safety included.
import { fbf } from '@fourbyfour/sdk'; // Initialize onceconst client = fbf({ apiKey: process.env.FOURBYFOUR_API_KEY, projectId: process.env.FOURBYFOUR_PROJECT_ID}); // Track events → workflows trigger automaticallyawait client.track('payment.failed', { user_id: 'u_123', subscription_id: 'sub_456', amount: 99.0, currency: 'USD', plan: 'Pro'});Deploy your first workflow in 5 minutes. No credit card required.