Triggers
Overview of Stepflow triggers
Triggers
Triggers are the entry points for your workflows. They listen for external events and initiate workflow executions.
Stepflow provides a variety of built-in triggers to handle different event sources:
- HTTP: Trigger workflows via standard HTTP requests.
- Webhook: Specialized HTTP trigger with provider presets (GitHub, Stripe, etc.) and signature verification.
- Cron: Schedule workflows to run at specific times with leader election.
- NATS: Trigger workflows from NATS messages.
- Kafka: Trigger workflows from Kafka topics.
- PostgreSQL: Trigger workflows on database changes using LISTEN/NOTIFY.
- WebSocket: Trigger workflows from WebSocket messages.
- Stream: Generic trigger for any async iterable.
Installation
Each trigger is available as a separate package. You can install the ones you need:
pnpm add @stepflowjs/trigger-http
pnpm add @stepflowjs/trigger-webhook
pnpm add @stepflowjs/trigger-cron
pnpm add @stepflowjs/trigger-nats
pnpm add @stepflowjs/trigger-kafka
pnpm add @stepflowjs/trigger-postgres
pnpm add @stepflowjs/trigger-websocket
pnpm add @stepflowjs/trigger-streamBasic Usage
To use a trigger, register it with your Stepflow instance:
import { Stepflow } from "@stepflowjs/core";
import { HttpTrigger } from "@stepflowjs/trigger-http";
const stepflow = new Stepflow({
storage: new MyStorageAdapter(),
});
const httpTrigger = new HttpTrigger({
path: "/webhooks/order",
method: "POST",
});
// Register the trigger and map it to a workflow
stepflow.registerTrigger(httpTrigger, async (event) => {
await stepflow.trigger("process-order", event.data);
});
await stepflow.start();