Trillet AI logo

Workflows

Trigger-driven automations: build, test, run and debug.

Trigger-driven automations: build, test, run and debug. 12 tools.

trillet_workflow_reference

Workflow reference

Return the complete reference for Trillet automation workflows: all 7 trigger types with their payloads, all 15 step types with exact config fields, edge/graph rules, settings gotchas, the template/function system, test-vs-run semantics, and billing. READ THIS FIRST before creating or editing any workflow.

Flags: read-only

Parameters

None.

trillet_list_workflows

List workflows

List automation workflows in the workspace with compact summaries.

Flags: read-only structured output

Parameters

NameTypeRequiredDescription
status"draft" | "active" | "paused" | "archived"no
trigger_type"inbound_call_completed" | "outbound_call_completed" | "webhook" | "schedule" | "inbound_message" | "ghl_new_contact" | "meta_ads_lead"no
searchstringnoName search
pagenumbernoDefault: 1.
limitnumbernoDefault: 20.
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

Structured output

Returned as structuredContent (fields are optional; the same data is in the text result):

FieldTypeDescription
totalnumber
workflowsobject[]

trillet_get_workflow

Get workflow

Fetch one workflow: full trigger (type, config, filters), steps with configs, edges, settings, status, stats, and webhook token if any.

Flags: read-only structured output

Parameters

NameTypeRequiredDescription
workflow_idstringyes
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

Structured output

Returned as structuredContent (fields are optional; the same data is in the text result):

FieldTypeDescription
_idstring
namestring
statusstring
triggerany
stepsany[]
edgesany[]
settingsany
statsany
webhookTokenstring

trillet_create_workflow

Create workflow

Create an automation workflow (created as a draft; test with trillet_test_workflow, then trillet_activate_workflow). Consult trillet_workflow_reference for step configs, trigger payloads, and template variables before building. GOTCHA: settings.maxRunsPerContact defaults to 1 per 24h and silently skips repeat runs for the same contact; this tool defaults it to 500. Filter call-completed triggers to one flow with a filter on 'pathwayId'.

Flags: writes structured output

Parameters

NameTypeRequiredDescription
namestringyes
descriptionstringno
trigger_type"inbound_call_completed" | "outbound_call_completed" | "webhook" | "schedule" | "inbound_message" | "ghl_new_contact" | "meta_ads_lead"yes
trigger_configobject (map)noTrigger extras: schedule needs {cron, timezone}; webhook may set {listenMode:'workspace'}; optional businessHours gate {mode:'after_hours'|'during_hours', timezone, perDay, blockedDates} and contactMapping (see reference) Default: \{\}.
trigger_filtersobject[]noALL must pass. Operators: equals, not_equals, equals_ci, not_equals_ci, contains, not_contains, is_empty, is_not_empty (gt/lt NOT valid here). e.g. [{"field":"pathwayId","operator":"equals","value":"<flow id>"}] Default: [].
stepsobject[]yes
edgesobject[]yesGraph edges; first edge usually {source:'trigger', target:<first stepId>}. Max one edge per handle, no cycles, all steps must be reachable.
timezonestringnoDefault: "Australia/Sydney".
max_runs_per_contactnumbernoDefault: 500.
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

Structured output

Returned as structuredContent (fields are optional; the same data is in the text result):

FieldTypeDescription
idstring
namestring
statusstring
triggerstring
filtersany
stepsstring[]
statsany

trillet_update_workflow

Update workflow

Partial update of a workflow (name, trigger, steps, edges, settings). Steps and edges replace wholesale when provided. Active workflows keep running the updated definition. stats/webhookToken/ids are server-managed and ignored if sent.

Flags: writes destructive structured output

Parameters

NameTypeRequiredDescription
workflow_idstringyes
updateobject (map)yes
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

Structured output

Returned as structuredContent (fields are optional; the same data is in the text result):

FieldTypeDescription
idstring
namestring
statusstring
triggerstring
filtersany
stepsstring[]
statsany

trillet_activate_workflow

Activate workflow

Activate a draft or paused workflow so its trigger starts firing. Fails if: no trigger or no steps, invalid cron (schedules), unreachable steps, or a code step that fails to deploy to Cloudflare (502).

Flags: writes idempotent open-world structured output

Parameters

NameTypeRequiredDescription
workflow_idstringyes
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

Structured output

Returned as structuredContent (fields are optional; the same data is in the text result):

FieldTypeDescription
idstring
statusstring

trillet_pause_workflow

Pause workflow

Pause an active workflow: its trigger stops firing (schedules are unregistered). Reactivate with trillet_activate_workflow.

Flags: writes idempotent structured output

Parameters

NameTypeRequiredDescription
workflow_idstringyes
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

Structured output

Returned as structuredContent (fields are optional; the same data is in the text result):

FieldTypeDescription
idstring
statusstring

trillet_delete_workflow

Delete workflow

Delete a workflow (soft delete). Cancels its running/waiting/queued runs and unregisters its schedule. Always confirm with the user first; requires confirm=true.

Flags: writes destructive asks for confirmation

Clients that support MCP elicitation show a confirmation form before this tool runs; declining cancels it with no changes. Other clients rely on their own approval prompt and the confirm argument.

Parameters

NameTypeRequiredDescription
workflow_idstringyes
confirmbooleanyesMust be true. Only set after the user explicitly approved deleting this workflow.
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

trillet_test_workflow

Test workflow (simulated)

Run a workflow in test mode with a sample trigger payload. Works on drafts. SMS/email/calls/webhooks/sheets/GHL are SIMULATED (returns wouldSend previews) and delays resolve instantly - but condition/switch/set_variables/for_each and CODE steps run for real. Returns the run id; inspect with trillet_get_workflow_run.

Flags: writes

Parameters

NameTypeRequiredDescription
workflow_idstringyes
trigger_dataobject (map)noSample trigger payload, e.g. {"phone":"+61412345678","analyzedData":{"outcome":"booked"}} Default: \{\}.
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

trillet_run_workflow

Run workflow now (REAL side effects)

Trigger a REAL run of an ACTIVE workflow immediately: SMS, emails, AI calls, and webhooks actually fire and consume credits. Always confirm with the user first; requires confirm=true. For a dry run use trillet_test_workflow instead.

Flags: writes destructive open-world billed asks for confirmation

Clients that support MCP elicitation show a confirmation form before this tool runs; declining cancels it with no changes. Other clients rely on their own approval prompt and the confirm argument.

Parameters

NameTypeRequiredDescription
workflow_idstringyes
trigger_dataobject (map)noTrigger payload for the run (fields readable as {{trigger.*}}) Default: \{\}.
confirmbooleanyesMust be true. Only set after the user explicitly approved a real run.
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

trillet_list_workflow_runs

List workflow runs

List runs of a workflow (newest first) with status, contact, progress, and skip/error reasons. Statuses: running, waiting, queued, completed, failed, skipped (see skipReason - 'max_runs_per_contact' means the per-contact cap silently ate the trigger), filtered, cancelled.

Flags: read-only structured output

Parameters

NameTypeRequiredDescription
workflow_idstringyes
statusstringno
pagenumbernoDefault: 1.
limitnumbernoDefault: 20.
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).

Structured output

Returned as structuredContent (fields are optional; the same data is in the text result):

FieldTypeDescription
totalnumber
runsobject[]

trillet_get_workflow_run

Get workflow run detail

Fetch one workflow run with its per-step logs (inputs, outputs, errors, timings), plus parent/child runs for for_each loops. The primary tool for debugging why a workflow run did what it did.

Flags: read-only

Parameters

NameTypeRequiredDescription
run_idstringyes
workspace_idstringnoRun this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace).