Copy a template into a step

Copy a template's subject, preview text and body into an email step of a draft, as the dashboard's "Choose a template" does.

POSThttps://app.usenotix.dev/api/v1/automations/{id}/steps/{stepId}/template

Needs a full access key. Sending access keys cannot call this. Key permissions lists the extra rules some calls have.

Copy a template's subject, preview text and body into an email step of a draft, as the dashboard's "Choose a template" does. The step keeps its own copy: changing the template later does not change the automation. An unsubscribe link is added when the template has none. Only a DRAFT automation is changed through the API; any other answers 409 CONFLICT. Pause and edit a live automation in the dashboard.

Who can call it

A full access key created by a team admin, as on the dashboard. Every refusal is 403:

CodeWhy
SCOPE_DENIEDThe key is not a full access key (send-only, read-only or live AI).
FORBIDDENThe 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_PINNEDThe 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.

Path parameters

idstringrequired
stepIdstringrequired

Body parameters

templateIdstringrequired

Headers

Authorizationstringrequired

Bearer followed by your API key.

Errors

400

The step is not an email step of the journey.

403

`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.

404

No journey (or template) with this id for the calling team.

409

The journey is not a draft. The API changes and activates drafts only.

429

The team copied 60 templates in the last minute.

Every error has the same shape. See all error codes.

curl -X POST "https://app.usenotix.dev/api/v1/automations/<id>/steps/<stepId>/template" \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "templateId": "tpl_123"
}'
Response200
{
  "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"
}
Open in ClaudeOpen in ChatGPT