Create a new automation
Creates a new Automation owned by the caller user and organization. The trigger logic (event vs timer), conditions, schedule and actions are all configurable. The enabled field in the body sets the calling user’s per-automation preference at creation time (defaults to true); it does NOT set a global enabled flag on the Automation itself, and other users start with no preference until they call PATCH //preference.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Sets the calling user's per-automation preference (stored on User.automations[id]). Defaults to true when omitted. Does NOT set a global flag on the Automation; other users see no preference until they call PATCH /{id}/preference.
Either "event" or "timer"
x >= 1Response
Automation created successfully
Returned by POST /api/automations and PUT /api/automations/{id} — wraps the created/updated AutomationDocument plus a status message.
true An Automation document with two derived per-user fields: enabled (from User.automations[id]) and userSmsNotification (per-user SMS settings).
{
"_id": "64d2f9c5e8a1d4e001a0b1c2",
"name": "Follow-up after 24h",
"description": "Send a follow-up SMS if the lead has not replied in 24h.",
"organizationId": "64a1b2c3d4e5f60012345678",
"userId": "64a1b2c3d4e5f60012345679",
"event": "message.received",
"actions": {
"sendMessage": [
{
"template": "follow-up-24h",
"channel": "sms"
}
]
},
"sourceStatuses": ["New lead"],
"maxTransitions": 3,
"triggerType": "status_change",
"conditions": [
{
"field": "lastInboundDirection",
"op": "eq",
"value": "inbound"
}
],
"triggerLogicType": "timer",
"timerLogic": {
"enabled": true,
"delay": 24,
"unit": "hours"
},
"schedule": { "start": "09:00", "end": "18:00" },
"maxFollowUpCount": 3,
"enabled": true,
"userSmsNotification": {
"enabled": true,
"phoneNumbers": ["+14155551234"],
"message": "New lead pending follow-up."
},
"createdAt": "2026-04-12T14:22:10.000Z",
"updatedAt": "2026-04-22T10:14:00.000Z"
}