Documentation Index
Fetch the complete documentation index at: https://resend.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Automations allow you to create email steps based on custom events from your application. You can use Automations for use cases like:
- Welcome emails
- Drip campaigns
- Payment recovery
- Abandoned cart
- Trial expiration
Automations support {{{RESEND_UNSUBSCRIBE_URL}}} for compliance with non-transactional product and marketing messaging. Read more about when to use an unsubscribe link.
[
](#how-it-works)
How it works
To start executing an Automation, you need to:
1
[
](#)
Create Automation
Outline the sequence of steps to be executed.
2
[
](#)
Add Trigger
Define the event name that will trigger the Automation.
3
[
](#)
Define Steps
Configure the steps to be executed.
4
[
](#)
Send an Event
Trigger the Automation by sending an event from your application.
5
[
](#)
Monitor Runs
Track and debug your Automation executions using runs.
Using the dashboard
[
](#1-create-automation)
1. Create Automation
The Automations page shows all existing automations.Click Create automation to start a new Automation.
[
](#2-add-trigger)
2. Add Trigger
A trigger is the first step that will run when the Automation is executed. You can use a custom event like user.created or onboarding.completed, defining it inline or in the Events page.
In this example, we will receive an event called user.created as a trigger.
See the Trigger documentation for more details.
[
](#3-define-steps)
3. Define Steps
Now, we need to define the steps that will be executed.There are several step types you can add to your Automation:
| Step type | Description |
|---|---|
| Condition | Branches the workflow based on rules |
| Delay | Pauses execution for a specified duration |
| Wait for Event | Pauses execution until a specific event is received |
| Send Email | Sends an email using a template |
| Contact Update | Updates a contact’s fields |
| Contact Delete | Deletes the contact |
| Add to Segment | Adds the contact to a segment |
On this example, we will use the Send Email step.
Once you select that step, you will be able to select an existing template.
Note: Only published templates are available to be used in an Automation.
With the template selected, you will be able to configure the email subject and sender address.
Once you’re done with the email, you can click on Start to enable the Automation.
[
](#4-send-an-event)
4. Send an Event
Now, we’re ready to send an event to trigger the Automation.On your application, you can send an event to trigger the Automation by using the API.
View the API reference for more details.
[
](#5-monitor-runs)
5. Monitor Runs
After sending events, you can monitor your Automation executions through Runs. Each time an event triggers an Automation, a Run is created to track the execution.
Learn how to:
- View Run statuses and execution details
- Filter Runs by status (
running,completed,failed,cancelled) - Debug failed Runs with step-level error information
- Stop Automation Runs when needed
See the Runs documentation for more details.
Using the API
[
](#1-create-automation-2)
1. Create Automation
When creating an Automation via the API, you can create an entire Automation flow with a single request. It accepts four parameters (status is optional and defaults to disabled):
name: The name of the Automation.status: The status of the Automation.steps: The steps that compose the Automation graph.connections: The connections between steps in the Automation graph.
The trigger is defined as the first item in the steps array with type: 'trigger'. It requires you’ve created a custom event like user.created or onboarding.completed.For more help creating an Automation via the API, see the Create Automation API reference.
[
](#2-send-an-event)
2. Send an Event
Trigger the Automation by sending an event from your application.
View the Send Event API reference for more details.
[
](#3-monitor-runs)
3. Monitor Runs
After sending events, track your Automation executions through Runs.
You can filter Runs by status (running, completed, failed, cancelled).See the Runs documentation and List Runs API reference for more details.