{"schemaVersion":"1","contentVersion":"2026-11-02.1","slug":"workflows","title":"Build and run workflows","summary":"Connect steps into a repeatable process, from the first event to the final result.","category":"Build & operate","minutes":11,"prerequisites":["A project with workflow allowance.","Permission to view, edit, or run the workflow for the action you intend.","Deployed activities or configured integrations for any steps that need them."],"sections":[{"id":"concept","title":"What is a workflow?","blocks":[{"type":"paragraph","text":"A workflow connects steps into a process. A trigger starts it; each following step works with data, calls a service, makes a decision, or waits. For a client request portal, a workflow might receive a request, validate it, save it, and return a confirmation."},{"type":"paragraph","text":"The workflow definition describes the steps in your process. A run is one execution of those steps. Edit the definition to change the process, or inspect a run to understand what happened."}]},{"id":"first-workflow","title":"Start with a manual example","blocks":[{"type":"steps","items":["Open [Workflows](/guides/controls-workflows#list) in your factory’s product tools, then choose an existing workflow or create one in the editor.","Begin with a [Manual Trigger](/guides/controls-workflow-triggers#http-manual) so you can supply harmless sample input.","Add one transformation, such as [Edit Fields (Set)](/guides/controls-workflow-nodes#fields-code), before connecting external services. Connect the trigger output to the next input.","Select each node to review and complete its configuration. Check required values and validation messages.","Review the configuration before selecting [Save](/guides/controls-workflows#toolbar). For an existing workflow, [Save](/guides/controls-workflows#toolbar) publishes a new graph version. Use the editor’s [Run](/guides/controls-workflows#toolbar) controls with safe input and inspect each node’s result before adding more steps."]},{"type":"note","title":"A run can do real work","text":"Manual runs can write data or call external systems, and admitted runs consume workflow allowance. Use sample input and test destinations."}]},{"id":"node-types","title":"Choose the right kind of step","blocks":[{"type":"table","headers":["Node","Purpose"],"rows":[["Manual Trigger","Start a run yourself with supplied input."],["HTTP Trigger","Start from an inbound request."],["Schedule Trigger","Start on an interval or cron schedule."],["Activity","Call a deployed reusable backend operation."],["HTTP Request","Call an external API directly."],["Code","Transform data with sandboxed JavaScript."],["Edit Fields (Set)","Set or transform fields."],["AI Agent","Use a model with configured activity tools."],["If / Switch","Choose a branch based on data."],["Filter / Merge / Wait","Select items, combine paths, or pause the process."]]}]},{"id":"run-history","title":"Understand a result","blocks":[{"type":"steps","items":["Open the run result or timeline and find the first failed step.","Inspect the data entering that step. Confirm expected fields and values exist.","Read the step error. Check configuration, permissions, service availability, and allowance before changing the graph.","Make a focused fix for the cause, then rerun with the same safe input.","Check the final output and the actual side effect, such as the saved record. A completed node does not prove the business result was correct."]},{"type":"paragraph","text":"[Workflow version history](/guides/system-explorer-workflows) keeps earlier definitions. Execution history keeps run evidence. They have separate retention and capacity limits, so old definitions and old run details may disappear on different schedules."}]},{"id":"publish","title":"Move from a manual test to automation","blocks":[{"type":"note","title":"Save publishes workflow changes","text":"[Save](/guides/controls-workflows#toolbar) publishes the workflow graph; it does more than update a preview. Review the effect on live HTTP and schedule triggers before saving changes to an existing workflow."},{"type":"paragraph","text":"Once the manual test works, configure your HTTP or schedule trigger. For an existing workflow, [Save](/guides/controls-workflows#toolbar) publishes a new active version when the graph changes. Confirm the saved version and schedule status before enabling external callers. Unsaved canvas changes stay separate from the active graph."},{"type":"paragraph","text":"For automated actions, decide what should happen if a request arrives twice, a service times out, or a field is missing. Connect error paths where they are supported and make failures visible."}]},{"id":"faqs","title":"Frequently asked questions","blocks":[{"type":"faq","items":[{"question":"Is Save just saving a draft?","answer":"For an existing workflow, [Save](/guides/controls-workflows#toolbar) publishes the changed graph as a new active version. Review any HTTP or schedule trigger and its downstream actions before saving. Unsaved canvas edits are not the active version."},{"question":"What is the difference between a workflow and a run?","answer":"The workflow is the definition: the steps and their connections. A run is one execution of that definition. Use the editor to change the process and [Runs](/guides/controls-workflow-runs#history) to understand a particular execution."},{"question":"Why did a completed run not create the expected record?","answer":"Completion reports execution status. It does not verify your business outcome. Inspect the input and output of the write step, then check the actual record and target database. A successful call can still use an unintended value or destination."},{"question":"Will retrying a workflow repeat external actions?","answer":"A new run may repeat writes or external requests that already succeeded. Inspect the previous run before retrying. For actions that must happen once, design a duplicate-detection or idempotency rule rather than relying only on the run status."}]}]}],"technical":[],"related":["controls-workflows","controls-workflow-palette","controls-workflow-runs","system-explorer-workflows","system-explorer-activities","system-explorer-secrets","billing","troubleshooting"],"sources":["kondor_frontend/rumata_studio/src/components/window/explorer/graph-workflows/node-catalog.ts","trigger-gateway/javascript/src/version-resolver.ts","CONTEXT.md"],"updated":"2026-09-06","audience":"general","media":[{"src":"https://docs.rumata.xyz/media/manual/workflows.jpg","width":1662,"height":789,"alt":"Sabai Talk Thai workflow list with lesson, profile, and account processes.","caption":"Reference capture from the separate Sabai Talk Thai application (September 8, 2026). Each row is a process the application can call. Select the workflow for the customer action you want to inspect.","sectionId":"first-workflow"},{"src":"https://docs.rumata.xyz/media/manual/workflow-step.jpg","width":1662,"height":789,"alt":"Lesson-loading workflow with the SQL activity selected and its settings open.","caption":"Reference capture from the separate Sabai Talk Thai application (September 8, 2026). Selecting a step opens its settings beside the graph. This lesson route loads its content through a saved query; no settings were changed for the capture.","sectionId":"first-workflow"}],"video":null,"url":"https://docs.rumata.xyz/guides/workflows"}