Appearance
Workflows
Workflows automate what happens around your content. Each workflow has a trigger (something happened, or a time came round), optional conditions, and a list of actions: publish a resource, send an email, or call a webhook.
Open Workflows in the Configuration section of the sidebar.
Who can manage workflows
| Role | Access |
|---|---|
| Editor | No access |
| Developer | Create, edit, enable/disable, delete, view run history |
| Administrator | Create, edit, enable/disable, delete, view run history |
Creating a workflow
- Click New workflow.
- In General, give it a Name and choose a Trigger type: Event or Schedule.
- Leave Enabled on, or switch it off to save the workflow without running it.
- Add Conditions (event workflows) or configure the Schedule (scheduled workflows).
- Click Add action and pick one or more actions.
- Click Create workflow.
Actions run in the order shown. Drag a card by its handle to reorder it, or remove it with its trash icon. If one action fails, the following actions still run.
Event triggers
An event workflow runs every time a resource in the project changes:
| Event | Fires when |
|---|---|
| Resource Created | A resource is created |
| Resource Updated | A resource's content or publication date changes |
| Resource Deleted | A resource is deleted |
Events fire whether the change comes from the dashboard, the API or MCP. A few things do not fire events:
- Autosave: only an explicit save counts as an update.
- Resources created by a JSON import.
- A resource published by a workflow's own Publish resource action, so a workflow cannot trigger itself.
When a scheduled resource goes live, a Resource Updated event fires within about five minutes of its publication date.
Conditions
Without conditions, an event workflow runs on every event in the project. Add conditions to narrow it down:
| Condition | Matches when |
|---|---|
| Event type | The event is the one you select (Resource Created, Resource Updated or Resource Deleted) |
| Resource type | The resource belongs to the blueprint you select |
All conditions must match for the actions to run. To react to "a blog post was created", add both an Event type condition and a Resource type condition.
Schedule triggers
A scheduled workflow runs on a timetable, against a set of resources it picks itself.
| Frequency | Extra settings |
|---|---|
| Every minute, Every 5 minutes, Every 15 minutes, Every 30 minutes, Hourly | None (counted from the previous run) |
| Daily | Time |
| Weekly | Time, Day of week |
| Monthly | Time, Day of month |
Times are Paris time (Europe/Paris). The workflow list shows the Next run under the status of each enabled scheduled workflow.
Source
On each run, the Source decides which resources the actions apply to:
| Setting | Meaning |
|---|---|
| Blueprint | The blueprint to take resources from (required) |
| Resource status | Draft (not yet published, including scheduled), Published, or All |
| Limit (resources per run) | How many resources to take, oldest first. Default 1 |
The actions run once per resource. If nothing matches, the run is recorded with 0 resources.
Drip publishing
To publish one queued article a day, create a scheduled workflow: Daily at 09:00, source blueprint Articles, status Draft, limit 1, action Publish resource. Each morning the oldest draft goes live.
Actions
Publish resource
Sets the resource's publication date to now. The resource is the one that triggered the event, or each resource picked by the schedule's source. See Publishing.
Send email
| Field | Description |
|---|---|
| To | One or more email addresses |
| Subject | The subject line |
| Body | The message. Use to insert a value from the resource |
Placeholders are replaced with the resource's simple values: text, numbers, booleans, choices. A placeholder that matches no such field is left as-is.
A new post was submitted: {{title}}
Slug: {{slug}}Send webhook
Sends an HTTP request to the Destination URL you enter.
| Method | POST |
| Content type | application/json |
| Body | {"event": "resource_created"} (the event name: resource_created, resource_updated or resource_deleted) |
| Timeout | 10 seconds |
| Attempts | 2, half a second apart |
| Success | Any 2xx response. Anything else, or a timeout, marks the action as failed |
The request carries no resource data and no signature header. It is meant as a ping, for example a build hook that rebuilds your static site when content changes. Fetch the content itself from the API.
Enabling and disabling
Use the switch on each row of the workflow list, or the Enabled switch in the editor. A disabled workflow keeps its settings and history but never runs.
Run history
Click the history icon (Execution history) on a workflow's row to see its last runs, newest first, ten per page.
| Column | Description |
|---|---|
| Status | Success, Failed (at least one action failed) or Skipped (an event whose conditions did not match) |
| Trigger | Event or Schedule |
| Resources | Number of resources the actions ran on |
| Error | The error message of failed actions |
| Started | When the run started |
| Duration | How long it took |
Click Output to see the full detail of a run: each action, its status, and the resource it ran on.
The Last run column of the workflow list shows the last time a workflow's actions actually ran: skipped events do not count.
Deleting a workflow
Click the trash icon on its row and confirm. The workflow and its whole run history are removed permanently.