---
updatedAt: 2025-08-12T15:28:26.000Z
agentTools:
  projectIndex: https://docs.scalr.io/llms.txt
---

# Run Triggers

# Overview

Run triggers are a way to chain workspaces together. The use case for this is that you might have one or more upstream workspaces that need to automatically kick off a downstream workspace **based on a successful run in the upstream workspace**. To set a trigger, go to the downstream workspace and set the upstream workspace(s). Now, whenever the upstream workspace has a successful run, the downstream workspace will automatically start a run.

<Image align="center" src="https://files.readme.io/b119142-Screenshot_2024-03-12_at_3.54.10_PM.png" />

If more than one (up to 50) workspace is added as the upstream, a successful run in any upstream workspace will trigger the downstream workspace run. For example, if two upstream workspaces finish at the exact same time, then the downstream workspace will have two runs queued.

The permissions required for a user to set the triggers are

* Downstream workspace requires `workspaces:update`
* Upstream workspace requires `workspaces: read`

If the downstream workspace has `auto-apply` enabled, then the apply will automatically occur once the trigger happens. If not, it will wait for approval.

# Cross-Environment Run Triggers

Runs can be triggered in workspaces in different environments through the Federated Environment feature in the environment settings.

Federated environment access in Scalr enables users to create dependencies between workspaces across different environments. This functionality enables teams to set up run triggers, where the successful execution in one workspace automatically initiates runs in dependent workspaces in other environments. It also facilitates state sharing, where outputs from one workspace can be used as inputs in another. By granting controlled access between environments, federated environments streamline cross-environment workflows while maintaining appropriate security boundaries.

See more on how to enable this [here](https://docs.scalr.io/docs/cross-environments-access).

# Sibling pages

* [Agent Pools](https://docs.scalr.io/scalr/docs/agent-pools-1.md)
* [Auto-Apply Runs](https://docs.scalr.io/scalr/docs/auto-apply-runs.md)
* [Auto Queue Runs](https://docs.scalr.io/scalr/docs/auto-queue-runs.md)
* [Container Image Info](https://docs.scalr.io/scalr/docs/container-image-info.md)
* [Custom Hooks](https://docs.scalr.io/scalr/docs/custom-hooks.md)
* [Deletion Protection](https://docs.scalr.io/scalr/docs/deletion-protection.md)
* [Ephemeral Workspaces](https://docs.scalr.io/scalr/docs/epehemeral-workspaces.md)
* [Execution Mode](https://docs.scalr.io/scalr/docs/execution-mode.md)
* [Force Runs in a PR](https://docs.scalr.io/scalr/docs/force-runs-in-a-pr.md)
* [IAC Platform/Pipeline Settings](https://docs.scalr.io/scalr/docs/iac-platform.md)
* [Run Scheduler](https://docs.scalr.io/scalr/docs/drift-run-scheduler.md)
* [Run Timeout](https://docs.scalr.io/scalr/docs/run-timeout.md)
* [Sharing Outputs](https://docs.scalr.io/scalr/docs/sharing-outputs.md)
* [SSH Keys](https://docs.scalr.io/scalr/docs/ssh-keys.md)
* [Tags](https://docs.scalr.io/scalr/docs/tags-1.md)
* [.terraformignore](https://docs.scalr.io/scalr/docs/terraformignore.md)
* [Workspace Migration](https://docs.scalr.io/scalr/docs/workspace-migration.md)
* [Workspace Type](https://docs.scalr.io/scalr/docs/environment-types.md)