Authenticate and obtain an access token with the public.workflows.createWorkflows scope
For each contract initiation, POST to the asynchronous launch endpoint (POST /public/api/v1/workflows with async=true or the dedicated async endpoint) with the templateId and workflow attribute values; the response contains a jobId rather than a completed workflow record
Poll the async job status endpoint with GET /public/api/v1/workflows/jobs/{jobId} until the status is COMPLETED or FAILED; implement exponential back-off between polls
On COMPLETED status, extract the workflowId from the job result to retrieve the launched workflow
Handle FAILED jobs by inspecting the error field for validation errors (e.g., missing required attributes) and retry after correcting the payload
Note the server-side ~60-second timeout on synchronous launches; prefer the asynchronous endpoint for any workflow that involves complex approval chains or document generation
Known gotchas
A timeout error from the synchronous launch endpoint does not confirm failure; the workflow may still have launched — check records before re-submitting to avoid duplicates
Workflow template attribute keys are account-specific; fetch them from the template schema endpoint before constructing launch payloads
Ironclad rate-limits API calls; add delays between bulk launch iterations and respect any 429 responses with the Retry-After header
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp