Skip to main content

Start from a template

Apply a template into a client workspace, fill its required connections and variables, then publish the new workflow live.

A template is a snapshot of a workflow that you can apply into any workspace. Applying one clones the template's graph into a brand-new workflow that you can edit and publish independently. This page walks you from an existing template to a live, published workflow.

Goal

Take a template you (or a teammate on your account) have already published, apply it into a client workspace, supply the connections and variables it asks for, and publish the resulting workflow so it starts processing events.

When to use this

Use a template when you want to reuse a proven workflow across clients instead of rebuilding it by hand each time. A single template can be applied into many workspaces, and each applied copy stays editable on its own.

A few things to know before you start:

  • Templates do not ship out of the box. A new account starts with an empty Templates list. You get templates by publishing your own workflow as one. If your list is empty, see Save a workflow as a template first, then come back here.
  • You apply into one workspace at a time. The workspace must already exist. If you have not created one, the picker shows "No workspaces available. Create one before applying templates."
  • You need build access in the target workspace. Without it, applying fails with a permission error (see Troubleshooting).

Steps

  1. Open the template you want to apply

    Go to Templates in the account sidebar, then click the template's name to open its detail page.

    The header shows the template name, a scope badge (Platform or Tenant), and a revision badge such as v3 or Unpublished. The Apply template button only appears when the template has at least one published revision. If you see Unpublished and no Apply button, the template has no revision to clone yet, publish a revision first from the same page.

  2. Click Apply template and choose a workspace

    Click Apply template. In the dialog (titled "Apply template"), open the Workspace picker and select the client workspace you want the new workflow to live in.

    The dialog clones the template's latest published revision into that workspace as a new, independent workflow. Editing the copy later never affects the original template.

  3. Fill in the required connections and variables

    If the template's latest revision declares variables, a variable form renders below the workspace picker. Required fields are marked with a red asterisk. The field you see depends on the variable's kind:

    • Text, number, toggle, and choice fields take a plain value. The author sets the limits, so a number field might require a value between 0 and 100, and a text field might require a specific format.
    • Connection fields show a picker narrowed to a single app's connections in the target workspace. If that workspace has no connection for the app yet, you see "No connections in this workspace yet" for that app, with a prompt to add one in the workspace's integrations settings and return to the template. Connect the app first (see Connect an account), then reopen the dialog.
    • Channel fields let you pick a channel for Slack, Discord, or Teams.

    Each value you supply binds to a key that the workflow reads at run time as $vars.<key> in its expressions. For example, a variable with key notify_channel is available everywhere in the workflow as $vars.notify_channel.

    A template can declare up to 50 variables.

  4. Apply the template

    Click Apply template in the dialog footer. The button shows "Applying..." while the workflow is created.

    If a required field is empty, the dialog stops you with the toast "Missing required variable" and names the field: Fill in "<label>" before continuing. Fill it in and submit again.

    On success you see the toast "Template applied" with Workflow created in <workspace name>., and you land in the visual editor on the new workflow. If the clone produced warnings, the toast reads <n> warning(s), review the workflow. instead, open the workflow and resolve the flagged nodes.

  5. Publish the new workflow

    The applied workflow opens as a draft at version 1. It is a normal workflow now, applying a template does not publish it for you. Review the nodes, then publish it to make it live.

    For the full publish path, including the validation gate and how to test a single node first, see Publish a workflow.

Verify it worked

You applied the template successfully when:

  1. The editor opened on a workflow named after the template, in the workspace you chose.
  2. The template's detail page lists the workspace under Client workspaces with a Clean badge and "Graph at vN, synced to vM". The badge flips to Modified the first time you edit the cloned workflow.
  3. After publishing, the workflow's status reads published and it begins receiving events for its trigger.

Troubleshooting

A connection field shows no options

The connection picker only lists connections for that one app in the target workspace. If it is empty, the workspace has no connection for that app. Connect the app first, following Connect an account, then reopen the Apply template dialog. If you pick a connection that belongs to a different workspace, the apply is rejected with code template.variable.cross_workspace_connection (HTTP 403).

SymptomCauseFix
No Apply template button on the detail pageThe template has no published revision (badge reads Unpublished)Publish a revision from the template detail page first
Workspace picker reads "No workspaces available"The account has no workspace to clone intoCreate a workspace, then reopen the dialog
Toast "Missing required variable"A required variable was left blankFill the named field, then submit again
Toast "Failed to apply template" with a permission messageYou lack build access in the target workspace (HTTP 403)Ask an account admin to grant you build access in that workspace, or apply into a workspace where you have it
A variable value is rejected on submitThe value breaks the variable's constraints, for example a number outside its min/max (code template.variable.invalid, HTTP 422)Correct the value to fit the field's allowed range or format
Was this helpful?