Steps and data

Steps are what a workflow does, in order. Each one hands its result to the steps after it, which read it with @ references.

A step is one thing a workflow does: add a row, send a message, make a decision, wait for an approval. Steps run in order, and each can use the results of every step before it.

Two kinds of steps

App actions work in one of your apps through your connection to it, such as Google Sheets' Append row or Slack's Send a message to a channel. There are thousands of them; the integrations directory lists every one with its inputs and outputs.

Built-in steps are Lodol's own. They decide which steps run, repeat steps, wait for people, call AI models, and work with data and files:

Built-in stepUse it to
If and OtherwiseRun steps only when something is true
RepeatRun steps once per item in a list, or several times
Request approvalPause until a person approves, rejects or replies
Run an AI agentHave an AI read, research or decide, and hand back fields
Text, Lists, Math, Dates & TimesFormat, clean up, count and convert values
FilesRead what's inside a file, make a CSV, Excel or PDF file, or resize an image
Stored valuesRemember a value from one run to the next
WaitPause for a while, or until a date and time
Run a workflowUse another workflow as a step
Call an API, Run Python codeReach a service with no app in Lodol, or compute something no step covers

Every step hands its result to the steps after it

The trigger's event and each step's result have a name. Later steps read them with an @ reference: in the editor you type @ and pick the value, and it appears as a single token in the field.

In the Stripe example, the trigger's event is called payment, so the Slack step's Message can read:

Send a message to a channel › Message
New payment: @payment.amount @payment.currency for @payment.description

Stripe sends amount in cents, so the finished workflow divides it by 100 and formats it first; see Money can arrive in cents.

References reach as deep as the data goes:

ReferenceReads
@payment.amountThe amount field of the trigger's event
@lead.company.nameA field inside a field
@sheet.rowsA whole list, ready for a Repeat step
@sheet.rows[0]The first item of a list ([-1] is the last)

Every action's integration page lists its Outputs: the fields its result has. A step that returns a list puts it inside a field rather than returning the bare list: Google Sheets' Read rows returns its rows in rows, so a Repeat goes over @sheet.rows, not @sheet.

Good to know about data

Data from apps arrives the way the app stores it, which isn't always the way people read it. These are the cases that most often surprise people.

Workspace values

Besides step results, a step can read values your workspace keeps, such as a base URL every workflow shares. Write them as @values.NAME, for example @values.BASE_URL. Keys and passwords don't belong in values: store them as secrets, which stay encrypted and hidden.

Next

On this page