Skip to main content
POST
/
v1
/
automations
curl --request POST \
  --url https://brew.new/api/v1/automations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Welcome Sequence",
  "description": "3-step onboarding drip",
  "triggerEventId": "tri_signup",
  "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": "dom_brand_primary",
        "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"
    }
  ]
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.brew.new/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

Idempotency-Key
string

Optional idempotency key for safe retries. Reusing the same key with the same request body returns the original response for 24 hours.

Required string length: 1 - 100

Body

application/json
name
string
required
Required string length: 1 - 120
triggerEventId
string
required
Required string length: 1 - 256
nodes
object[]
required
description
string
Maximum string length: 2000
connections
object[]
dryRun
boolean

Response

Dry-run result (no Convex writes). valid indicates whether the graph would publish cleanly.