Set up the Sym Terraform Provider


This guide is also available as a pre-baked example

Check out our starter code in symopsio/examples/approvals to follow along.

From this section on, we shall begin configuring the variables defined in terraform.tfvars.


Now that your organization is configured and the Slack app is installed, we can set up all the Terraform that will serve as your organization's core configurations for Sym.

Sym ships a Terraform Provider that declares your Environment, Integrations, and other configurations. Because of Terraform's flexibility and support for complex variable management, there are numerous ways you could effectively set up your repository. In our example, we have the following files:

File NamePurpose
main.tfThis file contains definitions of all Sym resources needed to create a workflow, as well as configuration for the Sym Terraform Provider.
versions.tfThis is where you'll specify what version of Sym's Terraform Provider you want to use.
terraform.tfvarsThis is where you'll start to customize parts of the exampl to work for your organization by declaring variables to be used throughout the rest of the files.
impl.pyThis is where you'll use the Sym SDK to fully customize approval logic.

Set up the Sym Provider

You'll need to add a requirement for Sym to wherever your organization commonly sets up required_providers. For us, that's in

terraform {
  required_providers {
    sym = {
      source  = "symopsio/sym"
     version = ">= 1.11.2, < 2.0.0"

Configure the Sym Provider

To use the Sym Provider, you'll also need to specify your organization's slug, which will be provided to you when you sign up for Sym. We'll do this by changing the value in terraform.tfvars:

sym_org_slug = "CHANGEME"


Your sym_org_slug can also be retrieved via symflow

If you run symflow status while logged in, you'll see a message containing your slug:

symflow status
βœ”οΈ  Status check succeeded!
   You are logged into your-org-slug as [email protected]

The sym_org_slug variable in terraform.tfvars will be used in the provider's configuration in

provider "sym" {
  org = var.sym_org_slug

Next steps

Next up, we'll be configuring Sym via Terraform. This will involve creating an Integration to connect your Slack workspace and setting up the Sym Runtime and Environment.

  1. Set up Sym's Terraform Provider
  2. Configure your Terraform to work with Sym ← up next
  3. Implement your first Flow

What’s Next