Automation scenarios tools
- list_scenarios: List the automation scenarios in a project.
- get_scenario: Get the full definition of a scenario.
- list_scenario_nodes: Get a lightweight node skeleton for a scenario.
- get_scenario_node: Get the full configuration of a single node in a scenario.
list_scenarios
Lists every scenario (automation flow campaign) in a project. Scenarios are multi-step flows with triggers, conditions, waits, and actions. The response gives you the name, status, tags, archived flag, and initiative assignment. The node graph itself is not included here — use get_scenario or the lighter-weight list_scenario_nodes for that.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a ScenariosResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[ScenarioSummary] | The scenario summaries. |
error | str | null | Error message if the request failed. |
The ScenarioSummary object has the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The scenario's unique ID. |
name | str | The scenario's display name. |
status | str | One of draft, active, inactive, finishing, or finished. |
archived | bool | Whether the scenario has been archived. |
tags | list[str] | User-defined tags. |
initiative_id | str | null | The initiative this scenario belongs to, if any. |
is_global_object | bool | null | Whether the scenario is a global, shared object. |
created | any | null | Unix timestamp of when the scenario was created. |
created_by_display_name | str | null | Display name of the creator. |
edited | any | null | Unix timestamp of the last edit. |
edited_by_display_name | str | null | Display name of the last editor. |
get_scenario
Returns the full definition of a single scenario, including the trigger, every node in the flow graph (waits, conditions, actions, A/B splits), the global customer filter, and metadata.
Email and SMS design payloads are stripped from nodes by default to keep responses manageable. Set include_node_designs to true to include them. Design blobs can be 70 KB or more per node.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
scenario_id | str | Yes | The scenario ID returned by list_scenarios. |
include_node_designs | bool | No | If true, include the full email or SMS design payload in action nodes. Defaults to false. |
Response parameters
The tool returns a ScenarioResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | Scenario | null | The full scenario definition. |
error | str | null | Error message if the request failed. |
The Scenario object adds the following fields on top of the summary record:
| Field | Type | Description |
|---|---|---|
trigger | any | null | The entry trigger: an event, a schedule, or an API call. |
nodes | list[any] | The scenario node graph. Each node is one step in the flow — a wait, an action, a condition, an A/B split, and so on. |
customer_filter | any | null | The global filter that decides which customers can enter the scenario. |
max_customers | int | null | The maximum number of customers allowed in the scenario at one time. |
list_scenario_nodes
Returns a lightweight skeleton of a scenario's node graph: just the node IDs, types, names, and the connections (edges) between them. Use this to explore a scenario's structure before pulling individual nodes with get_scenario_node.
The scenario is fetched once and cached for 60 seconds, so back-to-back calls to list_scenario_nodes and get_scenario_node on the same scenario share a single underlying request.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
scenario_id | str | Yes | The scenario ID returned by list_scenarios. |
Response parameters
The tool returns a ScenarioNodesResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
scenario_id | str | The scenario's ID. |
scenario_name | str | The scenario's display name. |
nodes | list[ScenarioNodeSummary] | A lightweight list of nodes: ID, type, and name only. |
connections | list[any] | The graph edges. Each entry has a source (node_id plus connector_index) and a destination. On branching nodes (condition and ab-split), the connector_index identifies which output branch: 0 is the yes or first variant, 1 is the no or second variant, and so on. |
trigger | any | The entry trigger configuration for the scenario. |
error | str | null | Error message if the request failed. |
The ScenarioNodeSummary object has the following fields:
| Field | Type | Description |
|---|---|---|
id | int | The numeric node ID, unique within the scenario. |
type | str | The node type, for example send-email-action, condition, wait-action, or ab-split. |
name | str | null | An optional display label set by the scenario author. |
incoming_connections | list[any] | The edges arriving at this node from parent nodes. Empty for entry-point trigger nodes. |
outgoing_connections | list[any] | The edges leaving this node toward child nodes. On branching nodes, connector_index identifies which branch. |
get_scenario_node
Returns the full configuration for a single node in a scenario, along with the incoming and outgoing edges. The scenario is fetched once and cached for 60 seconds, so this is efficient to call repeatedly on the same scenario.
The design payload on action nodes (email or MMS templates) is omitted by default because a single design can run to 70 KB or more. Set include_design to true if you need the template content.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
scenario_id | str | Yes | The scenario ID returned by list_scenarios. |
node_id | int | Yes | The numeric node ID. Use list_scenario_nodes to discover node IDs. |
include_design | bool | No | If true, include the design field on action nodes. Defaults to false. |
Response parameters
The tool returns a ScenarioNodeResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
scenario_id | str | The scenario this node belongs to. |
node | any | null | The full node configuration. The shape varies by node type. |
incoming_connections | list[any] | The edges arriving at this node from parent nodes. Empty for entry-point nodes. |
outgoing_connections | list[any] | The edges leaving this node toward child nodes. On branching nodes, connector_index identifies which branch. Empty for terminal nodes. |
error | str | null | Error message if the request failed or the node was not found. |
Updated about 1 hour ago
