Skip to content
Go to Micro

Triggered Automations

Create a triggered automation (state + changeset filter trees)
client.triggeredAutomations.create("message" | "action" | "event" | 6 moreautomationObjectType, TriggeredAutomationCreateParams { teamId, kind, name, 13 more } params, RequestOptionsoptions?): TriggeredAutomation { kind, name, id, 11 more }
POST/v2/prism/{teamId}/{automationObjectType}/triggered_automations
List triggered automations for an owner
client.triggeredAutomations.list("message" | "action" | "event" | 6 moreautomationObjectType, TriggeredAutomationListParams { teamId, cursor, kind, 3 more } params?, RequestOptionsoptions?): TriggeredAutomationListResponse { data, has_more, next_cursor }
GET/v2/prism/{teamId}/{automationObjectType}/triggered_automations
Read a triggered automation
client.triggeredAutomations.get(stringautomationID, TriggeredAutomationGetParams { teamId, automationObjectType } params, RequestOptionsoptions?): TriggeredAutomation { kind, name, id, 11 more }
GET/v2/prism/{teamId}/{automationObjectType}/triggered_automations/{automationId}
Replace a triggered automation (idempotent full write of the whole tree)
client.triggeredAutomations.update(stringautomationID, TriggeredAutomationUpdateParams { teamId, automationObjectType, kind, 14 more } params, RequestOptionsoptions?): TriggeredAutomation { kind, name, id, 11 more }
PUT/v2/prism/{teamId}/{automationObjectType}/triggered_automations/{automationId}
Delete a triggered automation and its filter trees
client.triggeredAutomations.delete(stringautomationID, TriggeredAutomationDeleteParams { teamId, automationObjectType } params, RequestOptionsoptions?): void
DELETE/v2/prism/{teamId}/{automationObjectType}/triggered_automations/{automationId}
ModelsExpand Collapse
TriggeredAutomation { kind, name, id, 11 more }

A triggered automation. kind selects the shape: update fires on object updates and requires a changeset (from/to transition) filter plus an optional state precondition; lifecycle fires on create and/or delete (on_create/on_delete) and requires a state filter (no changeset). state permits dot-paths (nested reference filters); changeset is direct properties only. Object type is taken from the path.

kind: "update" | "lifecycle"
One of the following:
"update"
"lifecycle"
name: string
id?: string
formatuuid
actions?: Array<Action>

Actions to run when the automation fires; each item has a type plus type-specific fields.

type: "agent" | "webhook" | "wait" | 2 more
One of the following:
"agent"
"webhook"
"wait"
"email"
"linkedin"
agent_id?: string | null

Required when type is agent. The agent to run.

formatuuid
cron_expression?: string | null

wait: cron schedule for the resume time. Exactly one of delay_seconds or cron_expression.

delay_seconds?: number | null

wait: relative delay in seconds. Exactly one of delay_seconds or cron_expression.

recipient_email_prop_def_id?: string | null

Required when type is email. The property (on the recipient view object) holding the recipient email address.

formatuuid
recipient_provider_prop_def_id?: string | null

Required when type is linkedin. The property (on the recipient view object) holding the recipient LinkedIn provider id.

formatuuid
recipient_view_id?: string | null

Required when type is email or linkedin. The saved prism view resolved at send time to the recipient audience (its filter re-runs each step, so responders drop out of later drip sends).

formatuuid
recipient_view_object_type?: string | null

Required when type is email or linkedin. Must be contact — the recipient audience is a contact view (contacts carry the direct email / linkedin provider property).

send_as_user_id?: string | null

Required when type is email or linkedin. The user (external id) the message is sent as.

subject?: string | null

Required when type is email. The subject line; rendered as a Liquid template per recipient.

template_id?: string | null

Required when type is email or linkedin. The email-template document whose body is rendered (Liquid) per recipient.

formatuuid
timezone?: string | null

wait: IANA timezone for evaluating cron_expression (optional).

webhook_id?: string | null

Required when type is webhook. The id of the webhook the event is dispatched to (async) when the automation fires.

formatuuid
changeset?: Changeset { combinator, filter }

A changeset filter group (update automations only): a combinator plus an array of transition clauses matching what is changing. Dot-paths (nested reference filters) are NOT permitted — direct properties only.

combinator?: "AND" | "OR"
One of the following:
"AND"
"OR"
filter?: Array<Record<string, unknown>>

Each entry is a transition clause { slug: { from?: { comparator: value }, to?: { comparator: value } } }. from matches the prior value, to the new value; an empty body { slug: {} } matches any change to that property.

created_at?: string
enabled?: boolean
list_id?: string | null
formatuuid
on_create?: boolean

Lifecycle automations only.

on_delete?: boolean

Lifecycle automations only.

state?: State { combinator, filter }

A filter group: a combinator plus an array of slug-based clauses. Dot-paths (e.g. organization.location) express nested reference filters.

combinator?: "AND" | "OR"
One of the following:
"AND"
"OR"
filter?: Array<Record<string, unknown>>

Each entry is { slug: { comparator: value } }

team_id?: string | null
formatuuid
updated_at?: string | null
user_id?: string | null
TriggeredAutomationListResponse { data, has_more, next_cursor }
data: Array<TriggeredAutomation { kind, name, id, 11 more } >
kind: "update" | "lifecycle"
One of the following:
"update"
"lifecycle"
name: string
id?: string
formatuuid
actions?: Array<Action>

Actions to run when the automation fires; each item has a type plus type-specific fields.

type: "agent" | "webhook" | "wait" | 2 more
One of the following:
"agent"
"webhook"
"wait"
"email"
"linkedin"
agent_id?: string | null

Required when type is agent. The agent to run.

formatuuid
cron_expression?: string | null

wait: cron schedule for the resume time. Exactly one of delay_seconds or cron_expression.

delay_seconds?: number | null

wait: relative delay in seconds. Exactly one of delay_seconds or cron_expression.

recipient_email_prop_def_id?: string | null

Required when type is email. The property (on the recipient view object) holding the recipient email address.

formatuuid
recipient_provider_prop_def_id?: string | null

Required when type is linkedin. The property (on the recipient view object) holding the recipient LinkedIn provider id.

formatuuid
recipient_view_id?: string | null

Required when type is email or linkedin. The saved prism view resolved at send time to the recipient audience (its filter re-runs each step, so responders drop out of later drip sends).

formatuuid
recipient_view_object_type?: string | null

Required when type is email or linkedin. Must be contact — the recipient audience is a contact view (contacts carry the direct email / linkedin provider property).

send_as_user_id?: string | null

Required when type is email or linkedin. The user (external id) the message is sent as.

subject?: string | null

Required when type is email. The subject line; rendered as a Liquid template per recipient.

template_id?: string | null

Required when type is email or linkedin. The email-template document whose body is rendered (Liquid) per recipient.

formatuuid
timezone?: string | null

wait: IANA timezone for evaluating cron_expression (optional).

webhook_id?: string | null

Required when type is webhook. The id of the webhook the event is dispatched to (async) when the automation fires.

formatuuid
changeset?: Changeset { combinator, filter }

A changeset filter group (update automations only): a combinator plus an array of transition clauses matching what is changing. Dot-paths (nested reference filters) are NOT permitted — direct properties only.

combinator?: "AND" | "OR"
One of the following:
"AND"
"OR"
filter?: Array<Record<string, unknown>>

Each entry is a transition clause { slug: { from?: { comparator: value }, to?: { comparator: value } } }. from matches the prior value, to the new value; an empty body { slug: {} } matches any change to that property.

created_at?: string
enabled?: boolean
list_id?: string | null
formatuuid
on_create?: boolean

Lifecycle automations only.

on_delete?: boolean

Lifecycle automations only.

state?: State { combinator, filter }

A filter group: a combinator plus an array of slug-based clauses. Dot-paths (e.g. organization.location) express nested reference filters.

combinator?: "AND" | "OR"
One of the following:
"AND"
"OR"
filter?: Array<Record<string, unknown>>

Each entry is { slug: { comparator: value } }

team_id?: string | null
formatuuid
updated_at?: string | null
user_id?: string | null
has_more: boolean

True if more automations exist beyond this page.

next_cursor?: string | null

Opaque cursor for the next page; null when has_more is false.