This example demonstrates a customer onboarding process using Upstash Workflow. The following example workflow registers a new user, sends welcome emails, and periodically checks and responds to the user’s activity state.

Use Case

Our workflow will:

  1. Register a new user to our service
  2. Send them a welcome email
  3. Wait for a certain time
  4. Periodically check the user’s state
  5. Send appropriate emails based on the user’s activity

Code Example

Code Breakdown

1. New User Signup

We start by sending a newly signed-up user a welcome email:

2. Initial Waiting Period

To leave time for the user to interact with our platform, we use context.sleep to pause our workflow for 3 days:

3. Periodic State Check

We enter an infinite loop to periodically (every month) check the user’s engagement level with our platform and send appropriate emails:

Key Features

  1. Non-blocking sleep: We use context.sleep for pausing the workflow without consuming execution time (great for optimizing serverless cost).

  2. Long-running task: This workflow runs indefinitely, checking and responding to a users engagement state every month.