Create an automation from a recipe
Create a DRAFT automation from one of the dashboard's ready-made starting points: welcome, finish-setup, win-back, trial-ending, thank-you or scratch (no…
https://app.usenotix.dev/api/v1/automations/from-recipeNeeds a full access key. Sending access keys cannot call this. Key permissions lists the extra rules some calls have.
Create a DRAFT automation from one of the dashboard's ready-made starting points: welcome, finish-setup, win-back, trial-ending, thank-you or scratch (no steps). The recipe's emails have a subject and preview text but no body yet: copy a template into each. Every recipe except scratch needs fromEmail, and a CONTACT_ADDED automation needs contactBookId.
Who can call it
A full access key created by a team admin, as on the dashboard. Every refusal is 403:
| Code | Why |
|---|---|
SCOPE_DENIED | The key is not a full access key (send-only, read-only or live AI). |
FORBIDDEN | The key was made by a team member without admin rights, or before Notix recorded who made each key. Create a new key as a team admin. |
DOMAIN_PINNED | The key is limited to one domain and an email step, or the sender, is on another. |
A key limited to one domain sees only automations whose every email step sends from its domain; any other automation answers 404.
Body parameters
The ready-made starting point, as the dashboard's new-journey wizard offers them.
One of welcome, finish-setup, win-back, trial-ending, thank-you, scratch.
At most 255 characters.
One of CONTACT_ADDED, API.
Who the emails come from. Needed by every recipe except scratch.
At least 3 characters. At most 320 characters.
Headers
Bearer followed by your API key.
Errors
The recipe, sender, contact book or segment is not valid.
`SCOPE_DENIED`: the key is not a full access key (send-only, read-only or live AI). `FORBIDDEN`: the key was made by a team member without admin rights, or before Notix recorded who made each key. `DOMAIN_PINNED`: the key is limited to one domain and an email would send from another.
The team created 30 journeys in the last minute.
Every error has the same shape. See all error codes.
curl -X POST "https://app.usenotix.dev/api/v1/automations/from-recipe" \
-H "Authorization: Bearer $NOTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipeId": "welcome",
"name": "Welcome series",
"triggerType": "CONTACT_ADDED"
}'
import { Notix } from "notix-js";
const notix = new Notix(process.env.NOTIX_API_KEY);
const { data, error } = await notix.automations.createFromRecipe({
recipeId: "welcome",
name: "Welcome series",
triggerType: "CONTACT_ADDED",
contactBookId: "cb_123",
fromEmail: "Acme <hello@acme.com>",
});
{
"id": "cly1jrn8x0000abcd1234",
"name": "Welcome series",
"status": "ACTIVE",
"triggerType": "CONTACT_ADDED",
"contactBookId": "cly1book0000abcd1234",
"segmentId": "cly1seg00000abcd1234",
"exitWhenLeavesSegment": false,
"triggerEvent": "payment.failed",
"steps": [
{
"id": "cm1x8f3k20001qz7v5b9d2e4a",
"type": "EMAIL",
"from": "Acme <receipts@acme.com>",
"subject": "Your receipt for order 4471"
}
],
"connections": [
{
"from": "trigger",
"to": "stp_a1b2c3d4e5f6"
}
],
"copiedFromId": "cm1x8f3k20001qz7v5b9d2e4a",
"stats": {
"enrolled": 1,
"active": 1,
"completed": 1,
"exited": 1,
"failed": 1,
"sentByStep": {
"stp_abc123": 12
}
},
"createdAt": "2026-10-01T09:00:00Z",
"updatedAt": "2026-10-01T09:00:00Z"
}