| Name | Type | Description | Notes |
|---|---|---|---|
| id | String | Stable node id referenced by edges | |
| r#type | Type | Node kind. The 16 supported types break into four groups: messaging (send_message), control flow (trigger, condition, delay, wait_for_reply, a_b_split, end), data ops (set_variable, set_field, add_tag, remove_tag, enroll_sequence), integrations (webhook, ai, handoff, start_call). (enum: trigger, send_message, wait_for_reply, condition, set_variable, delay, webhook, ai, handoff, start_call, a_b_split, set_field, enroll_sequence, add_tag, remove_tag, end) | |
| config | Option<std::collections::HashMap<String, serde_json::Value>> | Type-specific settings. All string fields support {{variable}} interpolation against the run's variable bag (resolved at execution time). trigger: `{ triggerType: inbound_message |
api_call |
| position | Option<models::WorkflowNodePosition> | [optional] | |
| label | Option<String> | Optional display name shown on the builder canvas and inspector, falling back to the node type when absent. The nodes array is replaced wholesale on update, so it must be resent to be kept. | [optional] |