Skip to main content
PATCH
/
v1
/
automations
/
{automationId}
curl --request PATCH \
  --url https://brew.new/api/v1/automations/{automationId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Welcome flow v2"
}
'
{
  "automationId": "auto_abc",
  "automationVersionId": "av_v1",
  "triggerEventId": "tri_signup",
  "name": "Welcome flow",
  "version": "latest",
  "published": false,
  "nodes": [
    {
      "id": "trg",
      "label": "On signup",
      "type": "trigger",
      "config": {
        "actionType": "trigger"
      }
    },
    {
      "id": "send_welcome",
      "label": "Welcome",
      "type": "sendEmail",
      "config": {
        "actionType": "sendEmail",
        "emailId": "eml_welcome",
        "emailVersionId": "emv_welcome_v1",
        "domainId": "kx7bkh53hasmfeh5kd7sqgykt187g8ww",
        "subject": "Welcome to Brew, {{firstName | there}}!",
        "previewText": "Thanks for signing up, get started in 2 minutes.",
        "fromName": "Brew",
        "replyTo": "support@example.com"
      }
    }
  ],
  "connections": [
    {
      "from": "trg",
      "to": "send_welcome"
    }
  ],
  "emailIds": [
    "eml_welcome"
  ],
  "createdAt": "2026-04-08T12:00:00.000Z",
  "updatedAt": "2026-04-08T12:00:00.000Z"
}
{
"error": {
"code": "INVALID_REQUEST",
"type": "invalid_request",
"message": "Provide `published` to publish/unpublish, or at least one of `name`, `description`, `nodes`, `connections`, or `triggerEventId` to update.",
"suggestion": "Send a lifecycle (`published`) or at least one editable field.",
"docs": "https://docs.brew.new/api-reference/api/errors",
"param": "published"
}
}
{
"error": {
"code": "INVALID_API_KEY",
"type": "authentication_error",
"message": "The provided API key is invalid.",
"suggestion": "Check the API key format and retry with a valid active key.",
"docs": "https://docs.brew.new/api-reference/api/authentication"
}
}
{
"error": {
"code": "INSUFFICIENT_PERMISSIONS",
"type": "authorization_error",
"message": "The caller does not have the required permission.",
"suggestion": "Use an API key or session with the required permission.",
"docs": "https://docs.brew.new/api-reference/api/authentication",
"param": "automations"
}
}
{
"error": {
"code": "AUTOMATION_NOT_FOUND",
"type": "not_found",
"message": "Automation 'auto_xxx' was not found.",
"suggestion": "List automations with GET /v1/automations.",
"docs": "https://docs.brew.new/api-reference/api/errors",
"param": "automationId"
}
}
{
"error": {
"code": "PUBLISH_VALIDATION_FAILED",
"type": "conflict",
"message": "Add at least one Send Email action",
"suggestion": "Fix every blocker reported in `details.blockers` then publish again.",
"docs": "https://docs.brew.new/api-reference/api/errors",
"param": "published"
}
}
{
"error": {
"code": "AUTOMATION_NOT_PUBLISHED",
"type": "invalid_request",
"message": "Automation 'auto_abc' is not currently published, nothing to unpublish.",
"suggestion": "Verify the automation is published via GET /v1/automations?automationId=.",
"docs": "https://docs.brew.new/api-reference/api/errors",
"param": "published"
}
}
{
"error": {
"code": "RATE_LIMITED",
"type": "rate_limit",
"message": "Too many requests.",
"suggestion": "Wait for the retry window before sending another request.",
"docs": "https://docs.brew.new/api-reference/api/rate-limits",
"retryAfter": 42
}
}
{
"error": {
"code": "INTERNAL_ERROR",
"type": "internal_error",
"message": "An unexpected error occurred.",
"suggestion": "Retry the request. If it keeps failing, contact support.",
"docs": "https://docs.brew.new/api-reference/api/errors"
}
}

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Path Parameters

automationId
string
required

Automation id returned by POST /v1/automations and listed by GET /v1/automations.

Required string length: 1 - 64
Example:

"auto_abc"

Body

application/json
name
string
Required string length: 1 - 120
description
string
Maximum string length: 2000
nodes
object[]
Maximum array length: 500
connections
object[]
Maximum array length: 1000
triggerEventId
string
Required string length: 1 - 256
dryRun
boolean
published
boolean
automationVersionId
string
Required string length: 1 - 64

Response

Updated / published / unpublished. The bare automation row (or the dry-run result when dryRun: true).

automationId
string
required
Required string length: 1 - 64
automationVersionId
string
required
Required string length: 1 - 64
name
string
required
Required string length: 1 - 120
version
required
Required range: x >= 0
published
boolean
required
emailIds
string[]
required
Required string length: 1 - 64
triggerEventId
string
Required string length: 1 - 256
description
string
Maximum string length: 2000
nodes
object[]
connections
object[]
createdBy
string
createdAt
string<date-time>
updatedAt
string<date-time>
publishedAt
string<date-time>
versions
object[]