Skip to content

Action

An Action node runs one action in a connected app, such as posting a Slack message or adding a row to a sheet. It acts as one of your organization’s connections, whoever started the run.

Field What it does
Action The app and the action, picked under Choose an app and action.
Connection Automatic, or one of the app’s connections, named by its account.
Input What the action receives, edited as a Form or as JSON.
  1. Press Choose an app and action. Apps you have connected come first, each marked Connected or Not connected.
  2. Pick an app, then one of its actions. Or type in the search box to search every app’s actions at once, ranked by how well they match.

An app that isn’t connected yet says so at the top of its list. An admin sees Connect there; a member is asked to ask an admin. See Connecting apps.

The actions come from each app’s connector and change as apps gain actions. The picker always shows the current list.

An Action node never offers an action that its app marks as destructive. An agent can be granted one, and it then asks a member before every call. See Grants and approvals.

With a connection picked, the step always acts as that account. With Automatic, each run chooses:

  1. The connection whose app event started the run, when it belongs to the same app.
  2. Otherwise, the app’s only connection in your organization.
  3. Otherwise, the step fails. With several connections and none picked, it asks you to choose a connection for the app. With none, it says the app isn’t connected.

Publish checks this for every trigger that reaches the node. A workflow with two Slack connections and a Manual trigger must pick one. Automatic suits a workflow that replies through whichever account an event came from.

The Form lists the action’s required fields first, marked “(required)”, and folds the others under Optional fields. A list field takes one value per line. A field with fixed choices, or a yes or no field, is a dropdown that starts at Not set.

JSON shows the same input as JSON. Under it, a chip for each field the action takes shows whether it is set; a required field that is missing is marked. Select a missing field’s chip to add it.

Every value can hold variables. Type {{ to pick one. The input is rendered first, then read as JSON, so it has to be valid JSON once the values are filled in. A value with quotes or line breaks, such as an agent’s reply, breaks a quoted string. In JSON, write such a value with the json filter and no quotes around it:

{
"channel": "{{ trigger.channel }}",
"text": {{ nodes.reply.response | json }}
}

See Templates and variables.

Field What it holds
value What the action returned

Read one field as {{ nodes.<id>.value.<field> }}. The next step’s {{ input }} is the whole value as JSON text.

The step runs once, with no automatic retry. When the app rejects the input, the error names each wrong field. When the connection itself is broken, an admin reauthorizes it on the Apps page, and the step works on the next run.