Goal
Help users orchestrate NocoBase workflows end-to-end through NocoBase MCP tools: design trigger logic, build node chains, manage versions, and inspect execution results.
Dependency Gate
- Related helper skills:
nocobase-mcp-setup,nocobase-data-modeling. - Check whether NocoBase MCP tools are available before planning write operations.
- If MCP is not configured, guide the user to use
nocobase-mcp-setup. - Data modeling skill may be used to understand related collections and fields when configuring workflow triggers and nodes.
Mandatory MCP Gate
- Confirm the NocoBase MCP server is reachable and authenticated before attempting workflow operations.
- Do not proceed with any workflow mutation until the MCP server exposes the relevant workflow endpoints.
Orchestration Process
Planning Phase
Before making any MCP calls, clarify with the user:
- Trigger type — what event starts the workflow? → see Trigger Reference
- Node chain — what processing steps are needed? → see Node Reference
- Execution mode — synchronous or async? See sync vs async
Summarize the plan in natural language before executing.
Then map the requested action to the corresponding MCP-exposed endpoint:
- Workflow CRUD and revisions →
workflows:* - Node operations →
workflows/<workflowId>/nodes:createandflow_nodes:* - Execution inspection →
executions:* - Job detail inspection →
jobs:get
Creating a New Workflow
- Create workflow →
POST /api/workflows:createwithtype,title,sync,enabled: false - Configure trigger →
POST /api/workflows:update?filterByTk=<id>withconfig - Add nodes in order →
POST /api/workflows/<workflowId>/nodes:createfor each node, chaining viaupstreamId - Configure each node →
POST /api/flow_nodes:update?filterByTk=<nodeId>withconfig - Enable workflow →
POST /api/workflows:update?filterByTk=<id>withenabled: true - Test / verify →
POST /api/workflows:execute?filterByTk=<id>&autoRevision=1
Editing an Existing Workflow
- Fetch workflow with nodes and version stats
→
GET /api/workflows:get?filterByTk=<id>&appends[]=nodes&appends[]=versionStats - Check if version is frozen (
versionStats.executed > 0)- Yes → create a new revision first:
POST /api/workflows:revision?filterByTk=<id>&filter[key]=<key>Use the returned newidfor all subsequent operations. - No → proceed directly
- Yes → create a new revision first:
- Edit as needed:
- Update trigger config →
POST /api/workflows:update?filterByTk=<id>withconfig - Add node →
POST /api/workflows/<workflowId>/nodes:create - Update node config →
POST /api/flow_nodes:update?filterByTk=<nodeId> - Delete node →
POST /api/flow_nodes:destroy?filterByTk=<nodeId> - Move node →
POST /api/flow_nodes:move?filterByTk=<nodeId> - Copy node →
POST /api/flow_nodes:duplicate?filterByTk=<nodeId>
- Update trigger config →
- Enable (if needed) →
POST /api/workflows:update?filterByTk=<id>withenabled: true
Diagnosing a Failed Execution
- List executions to find the failed one:
GET /api/executions:list?filter[workflowId]=<id>&sort=-id - Get execution detail with jobs (exclude result to reduce size):
GET /api/executions:get?filterByTk=<execId>&appends[]=jobs&appends[]=workflow.nodes&except[]=jobs.result - Find the failed job — look for
job.statusvalues of-1(FAILED),-2(ERROR), or-3(ABORTED) - Get full job detail to see the error:
GET /api/jobs:get?filterByTk=<jobId>Inspectresultfor the error message or output that caused the failure. - Fix the issue (update node config or create a new revision if version is frozen), then re-execute.
Reference Index
| Topic | File |
|---|---|
| Architecture, data model & concepts | references/modeling/index.md |
| Triggers | references/triggers/index.md |
| Nodes | references/nodes/index.md |
| Endpoint mapping used through MCP | references/http-api/index.md |