{"@":{"v":"gdom/1.2","profile":"https://dng.ai/gibberdom/gdom-1.2.json","proj":"text","index":"https://dng.ai/_gdom/manifest.json","site":"https://dng.ai/_gdom/site.gdom","self":"https://dng.ai/_gdom/platform/orchestration/index.text.gdom"},"text":"# Run workflows at scale, with full traceability.\n\nFire workflows asynchronously over the API, batch them across a CSV or Google Sheet on a schedule, and watch every step — completed or failed — in one auditable run view.\n\n## Scheduling, retries, and full control.\n\n### Asynchronous runs\n\nPOST to run a workflow in the background; get a run ID back immediately.\n\n### Per-step monitoring\n\nTrack completed_steps and failed_steps with start and end timestamps.\n\n### Batch & scheduled\n\nDrive a workflow across every row of a CSV or Google Sheet, on a schedule.\n\n### Resumable & parallel\n\nRun thousands of instances in parallel; pick up where a step left off.\n\n### Retries & quotas\n\nRespect rate limits with batching and delays; retry transient failures.\n\n### Fully observable\n\nEvery run is logged, traceable, and auditable down to the node.\n\n## Fire a workflow, get a run ID, move on.\n\nPOST to /api/v1/workflows/{workflow_id}/run with your inputs and the workflow executes in the background. The response is immediate — you receive a run ID to poll instead of holding a connection open. It's the same call whether you trigger on a schedule or when an event occurs.\n\n## Every step, completed or failed, in one view.\n\nGET /api/v1/workflow-runs/{run_id} returns the run state, started_at and ended_at, and two arrays: completed_steps and failed_steps. Each completed step carries its node ID, output, and downloadable flag; each failed step carries its error and the node that produced it.\n\n## Three states, no ambiguity.\n\nA run resolves to exactly one terminal state, so automation downstream always knows what happened.\n\n## From a single trigger to thousands of rows.\n\n### Batch over a sheet\n\nLoop a workflow across every row of a CSV or Google Sheet and collect the results.\n\n### Scheduled processing\n\nSchedule → fetch batch → process → output, running heavy jobs off-peak.\n\n### Resilient enrichment\n\nProcess in batches with delays to respect rate limits; retry transient failures.\n\n### Audit & report\n\nPull every run's per-step record for traceable, reportable outcomes.\n\n## A nightly batch enrichment, end to end.\n\nEach row triggers an async run; the loop polls for DONE before writing back, retrying transient failures and respecting rate limits with batched delays.\n\n## How a run stays on the rails.\n\n### Configure\n\nBuild the workflow visually in Studio and wire its input nodes — no code required.\n\n### Trigger\n\nFire it via POST with inputs, on a schedule or per row of a batch source.\n\n### Monitor\n\nPoll the run to watch completed_steps and failed_steps until it reaches DONE.\n\n### Review\n\nApprove where it matters and pull the full per-step log for audit and reporting.\n\n## What teams ask before they commit.\n\nWorkflow orchestration is the layer that runs automated processes at scale: triggering them, scheduling them, monitoring every step, retrying failures, and recording what happened. In Draft & Goal, orchestration lets teams fire thousands of workflow instances in parallel and watch each one resolve — completed or failed — in a single auditable run view.\n\nPOST to /api/v1/workflows/{workflow_id}/run with your inputs and the workflow executes in the background. The response is immediate — you receive a run ID to poll instead of holding a connection open. The same call works whether you trigger on a schedule or when an event occurs.\n\nGET /api/v1/workflow-runs/{run_id} returns the run state, started_at and ended_at, and two arrays: completed_steps and failed_steps. Each completed step carries its node ID and output; each failed step carries its error and the node that produced it. Every run resolves to exactly one terminal state: DONE, FAILED, or USER_ABORTED.\n\nYes. Draft & Goal can loop a workflow across every row of a CSV or Google Sheet, on a schedule, and collect the results. Batching with delays respects rate limits, transient failures are retried automatically, and each row's run is logged step by step for audit and reporting.\n\nThe failure is recorded, not hidden. The run's failed_steps array captures the error and the node that produced it, transient failures can be retried automatically, and resumable runs pick up where a step left off. Because a run always ends in DONE, FAILED, or USER_ABORTED, downstream automation knows exactly what happened.\n\nShow us the workflow.We'll show you the 10x.\n\nBring the marketing workflow that eats your week. We'll build it live, with your data and your models, in 30 minutes.\n\n## Outbound links\n\n- [Book a demo →](https://dng.ai/book-demo/)\n\n- [Tour the platform](https://dng.ai/platform/)\n\n- [Draft & Goal](https://dng.ai/)\n\n- [Read the docs](https://docs.dng.ai/)\n\nSite navigation: https://dng.ai/_gdom/site.gdom\n\nFull page index: https://dng.ai/_gdom/manifest.json","links":[{"rel":"internal","href":"https://dng.ai/book-demo/","path":"/book-demo","label":"Book a demo →","gdom":"/_gdom/book-demo/index.text.gdom"},{"rel":"internal","href":"https://dng.ai/platform/","path":"/platform","label":"Tour the platform","gdom":"/_gdom/platform/index.text.gdom"},{"rel":"internal","href":"https://dng.ai/","path":"/","label":"Draft & Goal","gdom":"/_gdom/index.text.gdom"},{"rel":"external","href":"https://docs.dng.ai/","label":"Read the docs"}]}