Automation that reads from the same database
BuildBase workflows run alongside users, emails, billing, and webhooks. When a workflow sends an email, it uses the same templates. When it checks a user attribute, it reads from the same database the application uses.
No external workflow vendor. No data syncing. No duplication of user records across services.
Visual workflow editor
Connect triggers, conditions, and actions in a node-based editor. Define logic visually, deploy immediately.
Trigger
New user registered
Wait
3 hours
Condition
Has user completed onboarding?
Yes → Action
Send “Tips” email
No → Action
Send “Complete setup” email
Workflow capabilities
User Onboarding
Welcome emails, activation reminders, feature discovery sequences, and setup checklists. Triggered automatically on signup.
Billing Automation
Trial ending warnings, payment failure follow-ups, upgrade prompts, and renewal reminders. Reacts to every billing event in the system.
Data Syncing
Push profile changes to a CRM via webhook. Update feature flags when a subscription changes. Keeps external systems in sync with internal state.
Drip Campaigns
Timed email sequences over days or weeks. Conditional branching based on user behavior. Sequences stop when the target action is completed.
Event Reactions
Form submission adds a user to an audience list and sends a notification. Subscription cancellation triggers a retention flow. Any system event can start a workflow.
Retry & Recovery
Failed steps retry automatically with configurable backoff. Persistent failures move to a dead-letter queue for inspection and manual re-execution.
Production infrastructure
BuildBase workflows are powered by BullMQ — the same job queue used by Automattic and Figma. Every execution is logged, every failure is captured, and every workflow supports versioning and rollback.
- BullMQ-powered workflows with Redis backing
- Workflow versioning with publish/unpublish lifecycle
- Execution instance tracking with full logs
- Dead-letter queue for failed executions
- Wait-for-event steps (pause until a condition is met)
- Frequency caps to prevent notification fatigue
- Real-time execution monitoring via WebSocket
- Metrics aggregation for workflow analytics
Trigger workflows from code
Workflows react to 84+ system events automatically. Trigger them from the backend using webhooks, or subscribe to workflow events in application code.
import { verifyWebhookSignature } from '@buildbase/sdk';
export async function POST(req) {
const sig = req.headers.get('x-buildbase-signature');
const body = await req.text();
if (!verifyWebhookSignature({ body, signature: sig, timestamp: req.headers.get('x-buildbase-timestamp'), secret: SECRET })) {
return Response.json({ error: 'Invalid' }, { status: 401 });
}
const event = JSON.parse(body);
// React to workflow-triggered events
if (event.type === 'audience.tag_added') {
await syncToExternalCRM(event.data);
}
return Response.json({ received: true });
}84+ built-in trigger events
Frequently Asked Questions
What triggers are available?
Over 84 events across 15 categories — user signups, payment failures, trial expirations, and more. Every module fires events that workflows can react to.
Can workflows send emails?
Yes. The Send Email action uses templates created in the dashboard. Content is personalized with merge tags for user names, workspace details, and custom attributes.
What happens if a workflow step fails?
Failed steps are retried automatically. Persistent failures move to a review queue with error details and one-click re-run.
Can a workflow wait for something to happen?
Yes. The Wait-for-Event step pauses execution until a specific event occurs (e.g., user completes onboarding) with a configurable timeout.
How do I test workflows before publishing?
Two test modes: dry-run (simulates without side effects) and hot-run (executes without delays). Both run before publishing to production.
Can I version and roll back workflows?
Yes. Every publish creates an immutable version. New instances use the latest version. Running instances complete on their original version. Versions can be compared side-by-side.