Workflows (Growth+)
Reusable recipes the agent — or you — can run on demand to automate multi-step actions.
A workflow is a named list of steps that Coffield.io runs for you in the background. Each run is logged so you can see exactly what happened.
What can a workflow do?
In v1, three step types are supported. Every one is safe by design — none of them can run shell commands, touch arbitrary URLs, or leave your tenant.
| Step | What it does | Example use |
|---|---|---|
log |
Records a message on the run's output trail. | Mark a milestone, leave a note for review. |
fire_webhook_event |
Fires a named event to every webhook endpoint you've registered that subscribes to it (or *). |
"Tell my Slack channel that a quote needs review." |
delay |
Records a short pause (1–30 seconds). | Space out follow-up events for human-friendly pacing. |
More step types (notify a teammate, create a Kanban card, push to a CRM) are coming in future versions.
Plan availability
| Plan | Workflows | Daily run cap |
|---|---|---|
| Starter | — | 0 |
| Growth | ✓ | 100 |
| Pro | ✓ | 1,000 |
| Custom | ✓ | Unlimited |
If you try to run a workflow above your cap, you'll see a friendly "Daily workflow cap reached" message and the run is not started — no surprises on your bill, no half-finished side effects.
Finding the page
Sign in to your dashboard, then in the left menu under AI Agents you'll see two new items:
- Workflows — the list of recipes available to your tenant. Each row has a Run now button.
- Workflow Runs — every run ever started, with status (queued / running / succeeded / failed), step counts, and who triggered it.
Running a workflow manually
- Open AI Agents → Workflows.
- Find the recipe you want to run.
- Click Run now.
- Confirm the dialog.
- A toast appears: "Workflow run #N queued."
- Open AI Agents → Workflows Runs to watch its status update.
A run that finishes with status succeeded ran every step without error. A run that ends failed stopped on the first error (unless the recipe was authored to continue past errors).
Triggering a workflow from the REST API (Pro)
If you're on the Pro plan you can also trigger workflows programmatically. See the REST API chapter for full details and a list of endpoints. The short version:
curl -X POST \
-H "Authorization: Bearer <your-PAT>" \
-H "Content-Type: application/json" \
-d '{"input":{"campaign":"Spring Promo"}}' \
https://your-domain.com/api/v1/workflows/123/runs
A successful trigger returns HTTP 202 Accepted with the new run's ID. The run is processed in the background — poll GET /api/v1/workflow-runs/{id} to check status.
Triggering a workflow from an MCP client (Claude Desktop, n8n, Zapier, Make)
If you've connected an MCP client (see External Integrations & MCP tokens), every issued token that includes the Workflow server can also trigger workflows. The MCP server exposes these tools:
| Tool | What it does |
|---|---|
list_workflows |
Lists your active and inactive workflow recipes. |
trigger_workflow |
Queues a new run of an active workflow. Returns the run id. |
list_workflow_runs |
Lists recent runs, optionally filtered by workflow or status. |
get_workflow_run |
Fetches a single run with its step output and any error message. |
Tier and rate-limit gates are identical to the REST API: triggering requires Growth or above and counts against your tenant's daily cap. Cross-tenant workflow_id or run_id values are silently rejected with a not-found error — your token can only see its own tenant's data.
Pairing with webhooks
The most powerful step is fire_webhook_event. A typical pattern:
- Register a webhook endpoint under AI Agents → Webhook Endpoints subscribed to a custom event like
campaign.kickoff. - Author a workflow recipe that fires
campaign.kickoffwith the payload your downstream tool expects. - Trigger the workflow manually or from the REST API.
Every webhook delivery is signed (HMAC-SHA256) and logged under AI Agents → Webhook Deliveries so you can verify exactly what was sent.
How a recipe is authored
In v1, recipes are stored as JSON inside the workflow row. The dashboard shows the recipe but does not yet include a visual editor. Customers on Growth and Pro plans should ask their account manager to author recipes for them; future releases will add a drag-and-drop editor.
A recipe looks like this:
{
"steps": [
{ "type": "log", "message": "Kicking off Spring Promo" },
{ "type": "delay", "seconds": 2 },
{
"type": "fire_webhook_event",
"event": "campaign.kickoff",
"payload": { "campaign": "spring-2026", "owner": "marketing" }
}
]
}
Recipes are capped at 50 steps to keep runs short and predictable.
Continuing past errors
By default a workflow stops on the first failed step. Add "continue_on_error": true at the root of the recipe to keep going past failures:
{
"continue_on_error": true,
"steps": [ ... ]
}
This is useful when each step is independent (for example, firing the same event to several different downstream tools).
Safety & limits
- Recipes can only contain the three step types listed above. Anything else is rejected with
step_type_not_allowed. - The total step count per recipe is capped at 50.
- Daily run counts are enforced per tenant — see plan table above.
- Every run row is permanent and tied to your tenant; no run can read or write another tenant's data.
- Webhook deliveries triggered by
fire_webhook_eventgo through the same SSRF/private-network protection as ordinary webhook deliveries — only HTTPS endpoints on public hostnames are allowed.
Troubleshooting
| Symptom | What to check |
|---|---|
| Run now button is missing | You need Manage agents permission and the workflow must be Active. |
| Run stuck on queued | The background queue worker isn't running. Email support@coffield.io. |
Run ends failed with recipe_too_large |
Recipe has more than 50 steps; trim it. |
Run ends failed with step_type_not_allowed |
Recipe references an unknown step type — only log, fire_webhook_event, delay are allowed. |
fire_webhook_event reports matched_endpoints: 0 |
You haven't registered a webhook endpoint subscribed to that event. Go to Webhook Endpoints and add one. |
| "Daily workflow cap reached" message | You've already used your tier's daily allotment — wait 24 hours or upgrade. |
If you need a workflow authored, a recipe extended, or a higher daily cap, email support@coffield.io with your tenant name and what you're trying to automate.