---
title: "Update an automation"
description: "Changes the name, the description, the settings or the draft definition. Settings apply at once. A new definition replaces the whole draft and changes nothing for the people inside until you publish."
url: "https://openemail.uk/docs/api/automations/update"
area: "API"
category: "Mailbox"
---

# Update an automation

Changes the name, the description, the settings or the draft definition. Settings apply at once. A new definition replaces the whole draft and changes nothing for the people inside until you publish.

`PATCH /automations/{id}`

## PATCH /automations/{id}

Changes the name, the description, the settings or the draft definition. Settings apply at once. A new definition replaces the whole draft and changes nothing for the people inside until you publish.

## Example

Needs `automations:write`. Send only what changes.

**curl**

```
curl -X PATCH "$OE/automations/aut_7c2e9a1f4b8d30c65e1a9f27" -H "$AUTH" -H 'content-type: application/json' -d '{
  "settings": { "sendWindow": { "days": [1, 2, 3, 4, 5], "startMinute": 540, "endMinute": 1020 } },
  "expectedUpdatedAt": "2026-10-02T09:14:00.000Z"
}'
```

**Response**

```
{
  "object": "automation",
  "id": "aut_7c2e9a1f4b8d30c65e1a9f27",
  "name": "Welcome series",
  "description": null,
  "status": "live",
  "triggerKind": "audience_joined",
  "stepCount": 4,
  "emailCount": 2,
  "hasUnpublishedChanges": false,
  "publishedVersion": 2,
  "pausedReason": null,
  "lastError": null,
  "counts": { "active": 38, "completed": 412, "exited": 9 },
  "createdBy": "q7Vd3kX9mT2pLw8RzN4bYc6HfJ1sGa5E",
  "publishedAt": "2026-10-02T09:14:00.000Z",
  "pausedAt": null,
  "archivedAt": null,
  "createdAt": "2026-10-01T16:40:12.000Z",
  "updatedAt": "2026-10-02T09:14:00.000Z",
  "definition": {
    "trigger": { "kind": "audience_joined", "audienceId": "aud_4c1b8e2a7d9f05c36b4e8a71", "includeImported": false },
    "entry": "welcome",
    "steps": [
      {
        "key": "welcome",
        "kind": "send_email",
        "next": "pause",
        "templateId": "tpl_9c1f0a4b7e05d3862c1f0a44",
        "templateVersion": null,
        "from": { "email": "news@acme.com", "name": "Acme" },
        "replyTo": null,
        "subject": null,
        "props": { "firstName": { "source": "contact", "field": "firstName" } }
      },
      { "key": "pause", "kind": "wait", "next": "opened", "wait": { "mode": "duration", "amount": 3, "unit": "days" } },
      {
        "key": "opened",
        "kind": "branch",
        "condition": { "kind": "email_opened", "stepKey": "welcome" },
        "yes": null,
        "no": "nudge"
      },
      {
        "key": "nudge",
        "kind": "send_email",
        "next": null,
        "templateId": "tpl_8f3a1c2e9b7d4a60",
        "templateVersion": null,
        "from": { "email": "news@acme.com", "name": "Acme" },
        "replyTo": null,
        "subject": "{{firstName|Hello}}, did you see this?",
        "props": {}
      }
    ]
  },
  "published": { "trigger": { "kind": "audience_joined", "…": "…" }, "entry": "welcome", "steps": ["…"] },
  "settings": {
    "timezone": "Europe/London",
    "sendWindow": { "days": [1, 2, 3, 4, 5], "startMinute": 540, "endMinute": 1020 },
    "reentryDays": null,
    "exitOnLeave": true,
    "listAudienceId": null
  },
  "problems": []
}
```

> `sendWindow.days` are weekdays from 0 for Sunday to 6 for Saturday, and the minutes count from midnight in `settings.timezone`. `null` removes the window.

> Send the `updatedAt` you read as `expectedUpdatedAt`, and a save that would overwrite somebody else’s change is refused with 409 `version_conflict`.

> An archived automation cannot be changed: 409 `automation_archived`.

## Reference

- [`PATCH /automations/{id}`](https://openemail.uk/docs/api/reference/automations#patch-automations-id): full reference
