Skip to main content
objectWorkflowStep

Fields

id
ID!
workflowId
ID!

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. type is 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 under conditions/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