1. Crea un borrador
Envía este cuerpo aPOST /api/v1/automations con Authorization: Bearer <API_KEY> y Content-Type: application/json. La creación exige
automations:write. El nombre permite de 1 a 120 valores escalares Unicode, sin
espacios en los extremos ni caracteres de control.
Respuesta: HTTP 201
automation, no data. Una escritura correcta guarda la
automatización; no demuestra que se haya enviado un mensaje. Guarda id y la
cadena exacta de updated_at. No redondees ni reformatees las fechas.
2. Consulta antes de editar
Llama aGET /api/v1/automations/{automationId}?account_id=... con
automations:read. HTTP 200 devuelve el mismo contenedor completo mostrado
arriba. Empieza siempre una edición con una consulta actualizada.
3. Renombra o sustituye la configuración
Para renombrar, envía este cuerpo aPATCH /api/v1/automations/{automationId}.
Sustituye la fecha del ejemplo por el valor de la consulta actualizada.
configuration completo
y modificado. Sustituye la configuración guardada; los objetos y arrays internos
no se fusionan. Puedes enviar el nombre, la configuración o ambos, pero no
status. HTTP 200 devuelve el contenedor completo de automation, incluido
el nuevo updated_at.
En una automatización activa, consulta has_unpublished_changes. Cuando es
verdadero, el nombre y la configuración devueltos describen el borrador,
mientras la versión publicada anteriormente sigue ejecutándose.
draft_updated_at es informativo; el control de concurrencia siempre usa
updated_at.
4. Publica o pausa
Después de revisar el borrador guardado, envía el siguiente cuerpo aPOST /api/v1/automations/{automationId}/activate. Usa la versión más reciente de una
nueva consulta. La activación exige automations:activate.
200 devuelve el contenedor completo con status: "live" y la
configuración publicada. Para pausar el procesamiento de nuevos triggers, envía
el mismo formato de cuerpo con una versión actualizada a POST /api/v1/automations/{automationId}/deactivate; HTTP 200 devuelve status: "paused". Crear con status: "live" publica inmediatamente y también exige el
permiso de activación.
Recupera sin duplicar escrituras
409conapi_automation_version_conflict: consulta de nuevo, concilia los cambios más recientes y reconstruye la edición.422conapi_automation_invalid_configuration: consultaerror.details.issuesy corrige las rutas indicadas.api_automation_committed_response_unavailableconcommitted: trueyretryable: false: la escritura se aplicó. Consulta la automatización, o la lista después de crear, antes de decidir el siguiente paso.- Un resultado incierto de creación no debe repetirse a ciegas: la creación no es idempotente.
Ejemplo de respuesta de conflicto
HTTP409.
204 sin cuerpo; no intentes interpretarlo como JSON.
