Types
WorkflowStep
object
WorkflowStepFields
id
ID!
workflowId
ID!
type
The type of step: CONDITION or ACTION.
name
String
Optional name for the step.
payload
String!
JSON-encoded step configuration. Every payload is an object with version: 1 and a type discriminator. The payload shape depends on the step type:
- CONDITION: a condition.
typeis either a leaf check (e.g.contains_label,thread_field_equals,thread_field_is_set,priority_equals,assigned_to,customer_equals,ai_workflow_rule_condition) or a combinator (and,or,not,else_if) that nests other conditions underconditions/condition. - ACTION: an action, e.g.
apply_labels,remove_labels,set_priority,set_status,set_tier,assign_to_user,assign_to_team,add_note,send_message,send_slack_notification,send_http_request,set_thread_field,snooze_thread,escalate_thread. - WAIT:
{ "duration": <seconds>, "cancelCondition"?: <condition> }. Examples:{"version":1,"type":"apply_labels","labelTypeIds":["lt_..."]},{"version":1,"type":"else_if","conditions":[...]}. Payloads embed workspace-specific IDs (label type IDs, user IDs, tier IDs, etc.), which are not portable: copying a payload into another workspace references IDs that do not exist there and the step silently applies nothing.
transitions
[ID]!
Array of next step IDs. For ACTION: 1 element (next step). For CONDITION: 2 elements (true branch, false branch). Null means terminal/no branch.
positionX
Float!
X position of this step on the canvas.
positionY
Float!
Y position of this step on the canvas.
createdAt
createdBy
updatedAt
updatedBy

