Connect jobs into repeatable workflows

Coordinate Ansible, Terraform and scripts with shared data, approvals, and success or failure paths.

Plan production networkrunning
ApprovalNot started
Patch Linux fleetNot started
Verify public endpointsNot started
Collect incident logsNot started
On successOn failure
Reviewing infrastructure
This preview shows a workflow progressing to an approval. Approve continues to a maintenance task and verification; Reject stops before the maintenance task. The failure branch is visible but not executed in this preview.

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.

Shared artifacts
Success and failure paths
Approvals
Task dependencies

Coordinate complex operations across your tools

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 inputs

Trigger 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.