Skip to main content
Glama
ampware-io

GHL Workflow MCP

by ampware-io

create_workflow

Destructive

Create a GoHighLevel workflow with triggers, actions, and draft or published status. Invalid steps are reported as skipped actions or warnings, so you can fix configurations before use.

Instructions

Create a new workflow. Action and trigger types must come from the enums in this schema. Use the then/else scaffold for if_else conditions; the verbose three-sibling form is also accepted. Salvage decisions surface in skippedActions[] (HARD drops) and warnings[] (advisory). When any HARD drop occurs, status is forced to draft. For field meanings, allowed values and worked examples for every step type, use the GHL Workflow Docs MCP.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesWorkflow name (required)
statusNoInitial status (default: draft). Set to "published" to create and publish in one step.
actionsNoAction steps. Omit for an empty workflow. UUIDs and chain wiring are handled automatically.
timezoneNoWorkflow timezone — "account" for location default, or IANA zone (e.g. "America/Los_Angeles"). Default: "account".
triggersNoTriggers to add. Omit for a triggerless workflow.
allowMultipleNoWhen true, the same contact can be enrolled multiple times concurrently. Default: true.
autoMarkAsReadNoWhen true, conversation messages are auto-marked as read. Default: false.
stopOnResponseNoWhen true, pauses workflow execution if a contact responds. Default: false.
allowMultipleOpportunityNoWhen true, allows multiple opportunities per contact. Default: true.
removeContactFromLastStepNoWhen true, contacts are removed after completing the final step. Default: true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply destructiveHint=true, so the description carries most of the disclosure burden and it does so well: it explains that salvage decisions surface in skippedActions[] (HARD drops) and warnings[] (advisory), and that a HARD drop forces status to draft. It stops short of saying what causes a HARD drop or whether a call can partially succeed while still returning 2xx.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb+resource, then a sequence of dense, non-redundant sentences; every clause carries information (enum constraint, scaffold guidance, drop semantics, docs pointer). It is slightly crammed with disparate topics for a short description, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, nested action/trigger objects, and no output schema, the description does what an agent needs: it explains the salvage/warning return surface and the status-fallback rule, and it delegates deep field documentation to a named companion MCP. The lack of detail on what triggers a HARD drop is the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning on top: the enum constraint on action/trigger types and the then/else vs three-sibling accepted forms for if_else conditions are structural facts the schema does not express. It leaves the per-field semantics to the external docs MCP rather than restating them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource ('Create a new workflow'), which is enough to separate it from publish_workflow, clone_workflow, and update_workflow by name alone. It stops short of explicitly scripting the distinction from clone_workflow, which is the nearest overlapping sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete construction directives — action/trigger types must come from the schema enums, use the then/else scaffold for if_else — and routes the agent to the GHL Workflow Docs MCP for per-step-type field meanings. It does not state when to prefer create_workflow over clone_workflow or update_workflow, so it is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.