Automations

Connections

Connections between steps in automation workflows.

How it works

Connections are the code definitions for the links between steps in the automation graph and are defined and retrieved using the API.

If creating an automation via the API, define connections as an array of objects.

import { MailBlastr } from 'mailblastr';

const mb = new MailBlastr('mb_xxxxxxxxx');

const { data, error } = await mb.automations.create({
  "name": "Welcome series",
  "domain": "yourdomain.com",
  "steps": [
    {
      "key": "start",
      "type": "trigger",
      "config": { "event_name": "user.created" }
    },
    {
      "key": "welcome",
      "type": "send_email",
      "config": {
        "template": { "id": "34a080c9-b17d-4187-ad80-5af20266e535" }
      }
    }
  ],
  "connections": [
    { "from": "start", "to": "welcome" }
  ]
});
console.log({ data, error });

When retrieving automations, the API returns the connections as an array.

Response
{
  "object": "automation",
  "id": "c9b16d4f-ba6c-4e2e-b044-6bf4404e57fd",
  "audience_id": "aud_3b1c...",
  "domain": "yourdomain.com",
  "name": "Welcome series",
  "trigger": "user.created",
  "status": "disabled",
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z",
  "steps": [
    {
      "key": "start",
      "type": "trigger",
      "config": { "event_name": "user.created" }
    },
    {
      "id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
      "key": "welcome",
      "type": "send_email",
      "position": 0,
      "config": {
        "template": { "id": "34a080c9-b17d-4187-ad80-5af20266e535" }
      }
    }
  ],
  "connections": [
    {
      "from": "start",
      "to": "welcome",
      "type": "default"
    }
  ]
}
Connections must form an acyclic graph — cyclic graphs are rejected. Editing connections requires the automation to be disabled.

Connection properties

Connections define the links between steps in the automation graph.

fromstringrequired

This is the key of the origin step.

tostringrequired

This is the key of the destination step.

typestringoptional

The type of connection between the origin and destination steps. Most automations use the default connection type. Use a non-default type only when the origin step can branch to multiple destinations: for wait_for_event, use event_received or timeout; for condition, use condition_met or condition_not_met. Possible values: default, condition_met, condition_not_met, timeout, event_received.

Example
{
  "from": "start",
  "to": "welcome",
  "type": "default"
}