When to Use Automations
If you’re sending straightforward transactional messages, you don’t need automations. The Send API handles rendering, routing, preferences, and delivery in a single call, and that’s the right choice for most notifications. Automations are for when your notification logic involves:- Timing - delays, scheduled delivery, or waiting for business hours
- Sequences - multi-step flows like onboarding or reminder chains
- Batching and digests - grouping events into a single notification
- Conditional logic - branching based on user data, delivery status, or external conditions
- Cancellation - aborting a flow when conditions change (e.g., user completes the action before a reminder fires)
Courier separates content (templates) from logic (automations): product teams can update templates in the designer without deploys, while engineers manage automation flow. Content changes go live instantly, with no risk to workflow logic.
Automation Components
Automations are built from three types of nodes: triggers that start workflows, actions that perform tasks, and control flow that adds logic.Trigger Nodes
Triggers define how an automation starts. Every automation has one entry point.| Trigger | Description |
|---|---|
| API Invoke | Start via POST /automations/:template_id/invoke. Default trigger type. |
| Schedule | Run at specific times using cron expressions, recurrence rules, or fixed dates. |
| Segment | React to Segment identify, group, or track events. |
| Audience | Fire when users match or unmatch an audience. |
| Inbound Event | Respond to events from connected sources. |
| Webhook | Start from external webhook calls. |
| Digest | Release accumulated digest events on schedule. |
Action Nodes
Actions perform tasks in your workflow.| Action | Description |
|---|---|
| Send | Deliver a notification to a user via any channel. |
| Send to List | Send to all subscribers of a Courier list. |
| Delay | Pause execution for a duration or until a specific time. |
| Fetch Data | Make HTTP requests and merge response into automation context. |
| Update Profile | Modify a user’s Courier profile. |
| Get Profile | Load a user profile into the automation context. |
| Invoke | Call another automation template. |
| Cancel | Cancel a running automation by its cancellation token. |
| Add to Batch | Accumulate events for batched delivery. |
| Add to Digest | Add events to a user’s digest. |
| Throttle | Rate-limit notifications per user or globally. |
Control Flow Nodes
Control flow adds conditional logic and branching.| Node | Description |
|---|---|
| If | Branch based on a single condition (true/false paths). |
| Switch | Route to the first matching condition from multiple cases. |
| Branch | Multi-path routing with condition groups (V3). |
- Data fields from the automation context
- Profile fields from the user profile
- Step Ref status of previous send steps (e.g.,
CLICKED,DELIVERED) - JS Expression for complex logic
Common Use Cases
User Onboarding
Create onboarding sequences that adapt to user progress:- Send welcome email immediately after signup
- Wait 24 hours, then check if user completed first action
- If not, send a reminder via push notification
- If completed, send a congratulations message
Batched Activity Notifications
Reduce notification fatigue by batching activity:- Collect events (likes, comments, mentions) as they occur
- After 1 hour of inactivity (or max 24 hours), release the batch
- Send a single notification summarizing all activity
Scheduled Digests
Send periodic summaries to users:- Configure a digest schedule in Preferences Editor
- Add events to the digest throughout the period
- Automation triggers at schedule time with accumulated events
- Send personalized digest notification
Agent-Human Collaboration
Build human-in-the-loop patterns for AI agents and automated systems:- Agent triggers an automation requesting human approval
- Send an actionable notification to Inbox (approve/reject buttons)
- Wait for user response via webhook or inbound event
- Branch on the response: proceed, escalate, or cancel
Getting Started
- Navigate to Automations in the Courier app
- Click New Automation to create a template
- Add a trigger node to define how the automation starts
- Add action nodes for each step in your workflow
- Add control flow for conditional logic
- Publish the automation to activate it
- Invoke via API or wait for trigger conditions
Next Steps
Designer
Build workflows visually
Steps Reference
All automation actions
Batching
Group notifications
Digests
Scheduled summaries