Validates an automation definition without saving

Runs every check POST /automations runs (shape, triggers, steps, languages, Liquid merge tags, decision filters, and every referenced id against your scope) and returns the errors and warnings. Nothing is written. Always 200; read data.valid.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string
enum
Allowed:
integer
Body Params

Canonical automation shape. The same object is returned by GET /automations/{id} and accepted by POST /automations. Keys not listed here (id, is_active, scope_type, scope_id, admin_url) are refused on write.

string
required

Unique (case-insensitive) within the scope. Max 200 characters.

supported_languages
array of strings | null

Language codes for message text. Defaults to the scope languages and must include the scope default language.

supported_languages
communication_settings
object | null

Quiet hours for sends: { start: "HH:MM", end: "HH:MM", days: ["mon", ...], skip_us_holidays: boolean }. Defaults to the scope settings.

goals
array of objects | null

Optional goals. Each is { type, resource, resource_ids }. GET /automations/options lists goal types.

goals
trigger_conditions
array of objects | null

Each trigger is { type, resource, ... }. GET /automations/options lists trigger types, their resource modes (any, specified) and extra keys. At most 3 triggers. Set manual_enrollment to "allow" to permit enrolling people by hand.

trigger_conditions
steps
array of objects | null
steps
Response

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json