StepflowStepflow

Quick Start

Get up and running with Stepflow in 5 minutes

Quick Start

This guide will help you create your first workflow in 5 minutes.

1. Create a Workflow

import { createWorkflow } from "@stepflowjs/core";

export const welcomeWorkflow = createWorkflow(
  {
    id: "welcome-user",
    retries: 3,
  },
  async ({ event, step, sleep }) => {
    const { userId, email } = event.data;

    // Step 1: Send welcome email
    await step.run("send-welcome", async () => {
      await sendEmail(email, "Welcome!");
    });

    // Wait 3 days
    await sleep("wait-for-followup", "3d");

    // Step 2: Send follow-up
    await step.run("send-followup", async () => {
      await sendEmail(email, "How are you finding things?");
    });

    return { status: "completed", userId };
  },
);

2. Initialize Stepflow

import { Stepflow } from "@stepflowjs/core";
import { MemoryStorageAdapter } from "@stepflowjs/storage-memory";

const stepflow = new Stepflow({
  storage: new MemoryStorageAdapter(),
  logging: true,
});

stepflow.register(welcomeWorkflow);
await stepflow.start();

3. Trigger the Workflow

const { runId, publicAccessToken } = await stepflow.trigger("welcome-user", {
  userId: "user_123",
  email: "user@example.com",
});

console.log("Workflow started:", runId);

On this page