Skip to main content

Documentation Index

Fetch the complete documentation index at: https://loops.so/docs/llms.txt

Use this file to discover all available pages before exploring further.

A common SaaS lifecycle pattern: celebrate when a user completes onboarding, and re-engage the users who stall. This recipe sets up both with two workflows. The core idea: fire an event from your app when the user completes onboarding and update an onboardingCompletedAt contact property in the same request. The celebration workflow triggers from the event, and the stalled-user workflow filters out contacts with a completion timestamp.

What you need

Set up the trigger

Use the Event received workflow trigger with an event name like onboardingCompleted. Update the contact’s onboardingCompletedAt property at the same time so your stalled-user workflow can exclude users who already finished. If you prefer using contact property changes as the trigger, see the Contact updated approach used in the lifecycle emails guide.
1

Send the event from your app

Call the Send event endpoint when the user finishes the last onboarding step. The API accepts contact properties as top-level fields in the same request:
{
  "email": "user@example.com",
  "onboardingCompletedAt": "2026-04-27T17:00:00Z",
  "eventName": "onboardingCompleted",
  "eventProperties": {
    "daysToComplete": 2
  }
}
2

Create the workflow

In the Workflow builder, pick Event received and select onboardingCompleted.
3

Send the celebration email

Add a Send email node. Congratulate them, surface the next high-value feature, and offer a next action.

Catching users who stall

The other half of this recipe is a separate workflow that fires when a contact is added but does not complete onboarding within a timer window.
1

Trigger on Contact added

Pick Contact added as the trigger.
2

Add a timer

Wait 3 days.
3

Filter on onboarding state

Use an audience filter to only send if onboardingCompletedAt is empty.
4

Send the nudge

Keep it short. Link to the specific step they missed if you track that.

Measuring success

  • Open rate on the celebration email: should be >50% because it is expected
  • Click-through on the stall nudge: track with the email.clicked webhook
  • Completion lift: compare daysToComplete distributions before and after this workflow ships

Read more

Lifecycle emails overview

Workflows

Events

Filters and segments

Last modified on May 11, 2026