Connect jobs into repeatable workflows
Coordinate Ansible, Terraform and scripts with shared data, approvals, and success or failure paths.
Your jobs are automated. The whole operation isn’t
The playbook finishes, but someone still has to copy its output, check the result and start the next job. Every handover adds waiting time and another chance to miss a step.
Connect the jobs into a workflow. Define the sequence once, then let it progress without manual starts or copying values.
Coordinate complex operations across your tools
Add your existing Task Templates to the canvas, connect the steps and save the workflow.
Start the workflow and approve the next step when the checks have passed.
Open any task in the workflow to inspect its output and results.
Pass data between workflow steps
Use a job’s outputs as inputs for the jobs that follow. Workflow artifacts keep values moving through the operation, across different automation tools, without copying them by hand. Choose which values each step receives.
Workflow outputs and inputsTrigger and monitor workflows through the API
In Pro, use the workflow API to start runs, follow their status, and resolve approvals from an internal portal or another service.
Build the operation around your process
Keep your existing automation
Connect Task Templates for Ansible, Terraform, OpenTofu, Terragrunt, Bash, Python, and PowerShell. Each job keeps its repository, credentials, and execution settings. Node parameters supply the inputs for that step.
Branch on the result
Use success, failure, or always conditions to select the next task. Run independent checks in parallel, then join them with All or Any convergence. A diagnostics or recovery branch runs automation your team supplies.
Put a decision where it matters
Pause at an Approval node with a clear message and an optional timeout. Review the preceding task before approving or rejecting. Enterprise custom roles can grant approval on selected Workflows separately from running them. Review all roles assigned to a person, because their permissions add up.
Make the waiting part visible
Use a Delay node between operations, such as a service restart and a health check. The run displays the remaining time. Keep the actual validation in a separate task with its own result.
Know which definition ran
A run records its workflow revision and version. Inspect the graph for that execution and open individual tasks for status, inputs, and logs, even after the editable definition changes.
Connect the workflow to your systems
Start runs and inspect their status through the REST API. Configure task notifications to bring important results to the team. Use the same saved templates for manual execution and coordinated operations.
Documentation and related features
FAQ
Can I combine Ansible, Terraform, and Python in one workflow?
Yes. Task nodes launch existing Task Templates, so one workflow can coordinate Ansible playbooks, Terraform or OpenTofu configurations, Terragrunt, Bash, Python, and PowerShell. Each task uses its own tool and execution setup. Explore Task Templates.
Can a task pass Terraform outputs or Ansible results to the next step?
Yes. Current Workflows support JSON outputs and inputs. Terraform, OpenTofu, and Terragrunt outputs are collected with output -json. Ansible can publish values with set_stats; scripts can write JSON to SEMAPHORE_OUTPUTS_FILE. Map those values to downstream Survey Variables by name or with explicit edge mappings. Read the outputs and inputs guide.
Can I wait for several checks before starting the next task?
Yes. Branch the workflow into parallel checks, then use All convergence when the next node must wait for every incoming path. Any convergence allows an eligible completed path to continue. Edges can run on success, failure, or either outcome.
Can a workflow pause for approval?
Yes. Add an Approval node with a message explaining the decision and an optional timeout. The run stays paused until that decision is resolved. Users with the required permissions can approve or reject. Enterprise custom roles can grant approval on a selected Workflow separately from running it. Check all assigned roles when separating the two responsibilities.
Can I run diagnostics or cleanup after a failure?
Yes. Connect a Task Template through an On failure edge. For example, collect service logs after a health check fails. Use Always for follow-up work that should run after either success or failure. Cleanup and rollback are your scripts or playbooks, so test their effect on partially completed operations.
Can I add a pause without writing a sleep script?
Yes. A Delay node waits for a configured number of seconds and shows the remaining time in the run. Use it to allow a service to settle before a separate validation task. A delay controls timing; the next task performs the health check.
Do workflow outputs work with project runners?
Current workflow outputs support local and remote runners. Docker and Kubernetes executors do not currently produce workflow outputs. Check the executor used by the producing task before depending on a downstream value. Outputs are JSON data, not uploaded files.
Can I pass passwords or files through workflow outputs?
Use workflow outputs for ordinary JSON values such as a change reference, target group, or resource identifier. They are stored as plain text and cannot populate secret Survey fields. Keep passwords in Secrets and Credentials and use appropriate storage for files. Explore Secrets and Credentials.
Where can I inspect a failed workflow task?
Open the workflow run to see the state of each node, then open the underlying task for its log and execution details. Each run retains the workflow revision it used. Task notifications can also alert your team through configured channels. Explore Run History.
Can an API call start a workflow?
Yes. The REST API provides workflow definitions, runs, status inspection, and approval actions. Reuse the saved workflow from an internal portal or another system rather than reproducing its sequence in the caller. Explore API and Webhooks.
