Actions: how spreadsheet automation works
An Action is a Lido formula that doesn't just calculate a value — it does something. =SENDGMAIL(...) sends an email. =COPYFILE(...) copies a file. =EXTRACTFROMFILETOROW(...) runs AI extraction. Actions are how a spreadsheet becomes a tool that takes real-world action on a schedule or on demand.
What makes a formula an Action
A regular formula like =SUM(A1:A10) returns a value. An Action formula compiles into an executable operation. When you put =SENDGMAIL(...) in a cell, the cell shows the formula text — not a "result" — until something triggers it. When triggered, the operation runs.
This means the same formula serves as both documentation (the cell shows what will happen) and implementation (it actually happens when run).
Two ways to trigger an Action
Trigger | How |
|---|---|
Manually | Right-click the action cell → Run |
Automated | Right-click the action cell → Create Automation → set a schedule or other trigger |
You can also chain actions together with CHAIN(...) (sequential) or BATCH(...) (parallel) so a single trigger runs many operations.
When to use an Action vs. a Workflow
You want… | Use… |
|---|---|
To send one email per row in a table on demand | Action ( |
To run a chain of 3–5 operations from a single button | Action with |
To run when a file appears in a folder, a webhook fires, or an email arrives | Workflow with the appropriate trigger |
To branch based on conditions | Workflow (If/Filter/Switch nodes are easier than nested IF formulas) |
To handle errors with retries | Workflow (Error Catcher + node-level error outputs) |
Actions are great for spreadsheet-anchored work. Workflows are great for event-driven and multi-step work.
Common Action formulas
Formula | What it does |
|---|---|
| Send an email via Gmail |
| Send an email via Outlook |
| Post a message to a Slack channel |
| Send an SMS via Twilio |
| AI-extract data from a file into a row |
| AI-extract structured data from content into a table |
| Create a PDF from a template |
| Create a Google Doc from a template |
| Copy a file from one location to another |
| Merge multiple PDFs into one |
| Add a searchable text layer to a scanned PDF |
For the full list and parameter reference, see the Lido docs Spreadsheet → Formulas section.
Step-by-step: build a "send invoice email" action
You have a table called Invoices with columns Vendor Name, Invoice Number, Total Amount, Email, and Status.
- In the column to the right of the table, add a computed column called
Send Emailwith a formula like:
=SENDGMAIL("gmail-credential-id", Invoices[@Email], "Invoice " & Invoices[@Invoice Number], "Total: " & Invoices[@Total Amount])
- Each row's
Send Emailcell now shows the action formula.
- To send for one row: right-click the cell → Run.
- To send for all rows on a schedule: select the column → Create Automation → choose a trigger (daily at 9am, when Status changes to "Send", etc.).
- Add a
status_refparameter to write the send result back to a column so you can track which emails went out.
Step-by-step: chain actions
A single trigger can run multiple actions in sequence using CHAIN:
=CHAIN(
EXTRACTFROMFILETOROW("openai-cred", File[@URL], Output[@A1]),
SENDSLACK("slack-cred", "#ap-inbox", "New invoice processed: " & Output[@A1]),
COPYFILE(File[@URL], "/Processed/")
)
When this cell runs, Lido executes each step in order, only continuing if the previous step succeeded.
For parallel execution, use BATCH instead.
Tips
- Use
status_refparameters wherever they exist. They write the operation's success/failure into a cell so you can track results without scrolling through logs. - Add an Action column to a table, not a single cell. A computed column with
SENDGMAILper row gives you bulk operations for free. - Test on one row before automating. Right-click → Run on a single cell first.
- Use
CHAINfor sequential dependencies,BATCHfor independent operations that can run in parallel.
Common mistakes
- Forgetting that Action cells show the formula, not a result. This is intentional. The cell only "does" something when triggered.
- Setting up an automation without testing manually first. Always right-click → Run on a single row before scheduling.
- Hardcoding values instead of using table references.
=SENDGMAIL(..., "alex@example.com", ...)only sends to one address. UseInvoices[@Email]to send per row. - Reaching for an Action when a Workflow would be cleaner. If the trigger is "a file landed in a folder", that's a Workflow, not an Action. Actions are best for spreadsheet-anchored work.
Related articles
- Tables: how columns work
- Build your first workflow
- Triggers: how workflows start
- AI columns and formulas
- Send extracted data to email or Slack
Updated on: 16/04/2026
Thank you!