This reference covers every action available in the Elementum automation builder. Each section explains what the action does, how to configure it, and walks through a realistic scenario so you can see how it works in practice.Documentation Index
Fetch the complete documentation index at: https://docs.elementum.io/llms.txt
Use this file to discover all available pages before exploring further.
Inspect Trigger and Action Outputs While Building
As you build an automation, every trigger and action lists the variables it produces in an Outputs section at the bottom of its configuration pull-out. Each entry shows the variable name (for example,textResult, result.project_name, create_record.id) and its data type (Text, Decimal, Date, and so on), with a checkbox next to each one.
Use this section to:
- Confirm available variables — Verify the exact name and type of every output before referencing it in a later step.
- Select which outputs to expose — Toggle the checkbox next to each variable to control whether it’s surfaced to downstream actions.
- Catch missing values early — If a variable you expect isn’t listed, the step isn’t producing it yet (a script may need an Output Schema property, an action may need to be re-tested, and so on).
Logic Actions
Logic actions control which path your automation takes. They let you branch based on data values, check multiple criteria, and loop through collections of records.If / Otherwise If / Otherwise
The If action creates a decision point. You define a condition, and the actions nested beneath it only run when that condition is true. Otherwise If adds additional branches, and Otherwise catches everything that didn’t match a previous branch.How Conditions Work
Each condition compares a value from your automation (a field on the trigger record, an output from a previous action, or a variable) against a target value using an operator. A single condition has three parts:| Part | What it means | Example |
|---|---|---|
| Value | The data you want to check — select from trigger fields, action outputs, or variables | trigger.priority |
| Operator | How to compare the value | equals, does not equal, greater than, contains, is empty |
| Target | What you’re comparing against — a static value, another field, or a variable | "Critical" |
Combining Multiple Conditions
When a single comparison isn’t enough, add more conditions to the same If block. You connect them with AND or OR:- AND — Every condition must be true. Use this when you need all criteria met.
- OR — At least one condition must be true. Use this when any one criterion is enough.
| Condition | Operator | Target | Connector |
|---|---|---|---|
customer_tier | equals | Enterprise | AND |
order_amount | greater than | 10000 | — |
Condition Groups
When your logic mixes AND with OR, use condition groups to control evaluation order — similar to how parentheses work in math. Without groups, the automation evaluates conditions strictly top to bottom, which can produce unexpected results. Groups let you say “evaluate these conditions together first, then combine the result with the rest.” Scenario: You want to escalate a support ticket when the customer is Enterprise tier AND the issue is either Critical priority OR has been open for more than 48 hours. Without condition groups, you’d have no way to express “Critical OR open 48+ hours” as a unit. With groups:| Group | Condition | Operator | Target | Connector |
|---|---|---|---|---|
| — | customer_tier | equals | Enterprise | AND |
| Group 1 | priority | equals | Critical | OR |
| Group 1 | hours_open | greater than | 48 | — |
Building Multi-Branch Decisions
Use Otherwise If and Otherwise to handle different outcomes in a single automation instead of building separate automations for each scenario.- Scenario
- How it evaluates
- If
order_amountis greater than10,000— route to CFO for approval - Otherwise If
order_amountis greater than1,000— route to the department manager - Otherwise (all remaining orders) — mark as auto-approved
true or false) that downstream actions can reference to check which branch ran.
Repeat for Each
Loops through a collection of records or data items and runs the same set of actions on each one. The collection typically comes from a Search Records or Find Related Records action earlier in the automation. Configuration:| Field | Description |
|---|---|
| Collection | The list to iterate over — select from outputs of previous actions that return multiple items |
| Actions | Drag actions inside the Repeat for Each block to run them on every item |
| Variable | Description |
|---|---|
item | The current record or data item in the loop, with all its fields accessible (e.g., item.email, item.status) |
index | The current iteration number (starting from 0) |
- Scenario
- Performance tip
- Search Records finds all orders with
status = "Ready to Ship"andcreated_date = today - Repeat for Each iterates over the search results
- Inside the loop, for each order: Run Calculation computes the shipping cost, Update Record Fields sets the shipping amount and changes status to “Shipped”, and Send Email Notification sends a confirmation to the customer
Record Actions
Record actions create, update, search, and manage records and their relationships.Create Record
Create Record
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Element/Table | Which element or table to create the record in |
| Field Mappings | Map fields on the new record to values — select from trigger variables, previous action outputs, or enter static values |
create_record.id, create_record.{field_name}, etc.- Scenario
- Tip
- Email Received trigger fires
- Search Records finds the customer by
trigger.sender_email - Create Record creates a new Support Ticket with:
- Subject →
trigger.subject - Customer →
search_records.customer - Description →
trigger.body - Status →
"New" - Source →
"Email"
- Subject →
Update Record Fields
Update Record Fields
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Record | Which record to update — typically the trigger record or a record from a previous action |
| Field Mappings | Map fields to new values from trigger data, action outputs, or static values |
- Scenario
- Tip
- AI Classification analyzes the ticket description and returns
categoryandconfidence - Update Record Fields sets:
- Category →
ai_classification.category - Priority →
ai_classification.confidence > 0.8 ? "High" : "Normal"(via a preceding Run Calculation) - Classification Confidence →
ai_classification.confidence
- Category →
Relate Records
Relate Records
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Source Record | The record to relate from |
| Target Record | The record to relate to |
| Relationship | The relationship type to create |
Search Records
Search Records
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Element/Table | Which element or table to search |
| Conditions | Filter criteria using the same condition builder as If actions — value, operator, and target |
search_records.{field_name} to access the first result, or feed the collection into a Repeat for Each to process multiple matches.- Scenario
- Search Records vs. AI Data Search
- Search Records on the Customers element
- Condition:
emailequalstrigger.sender_email - If a match is found, use
search_records.customerin the Create Record action to link the ticket to the customer
Start Approval Process
Start Approval Process
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Approval Process | Select an existing approval process configured in the app |
| Record | The record to submit for approval |
Update Approval Status
Update Approval Status
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Status | The new status to set — Approved, Rejected, or Pending |
Add Watcher
Add Watcher
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Record | The record to add watchers to |
| Users | Which users to subscribe — from a previous Search Users action, a static user, or a field on the record |
Record Field Locking
Record Field Locking
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Record | The record to lock fields on |
| Fields | Which fields to lock |
Make Assignment
Make Assignment
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Record | The record to assign |
| Assignee | A user or team — from a Search Users result, a static value, or a field reference |
- Scenario
- AI Classification categorizes the ticket as Technical, Billing, or General
- If
ai_classification.categoryequals"Technical"→ Make Assignment to Technical Support team - Otherwise If
ai_classification.categoryequals"Billing"→ Make Assignment to Billing team - Otherwise → Make Assignment to General Support queue
Find Related Records
Find Related Records
Generate Report
Generate Report
| Field | Description |
|---|---|
| Action Name | A descriptive name for this action |
| Report | Select an existing report configured in the app |
| Variable | Type | Description |
|---|---|---|
generated_report | File | The report file (Excel or PDF) for use in Save Attachment, Send Email, or other file-accepting actions |
- Scenario
- Time-Based trigger fires on the first of each month
- Generate Report creates the Sales Performance Summary
- Save Attachment attaches the report to the monthly reporting record
- Send Email Notification sends the report to stakeholders with the file attached
Elementum Intelligence Actions
Intelligence actions use AI to analyze, classify, summarize, transform, and search your data. They accept unstructured input and return structured output that subsequent actions can use.Run Agent Task
Run Agent Task
| Field | Description |
|---|---|
| Action Name | Descriptive name for the agent task |
| AI Agent | Select an existing agent or create a new one |
| Task Definition | What the agent should accomplish — supports {{value_references}} from trigger data and previous actions |
| Output Type | Text (free-form response) or Structured (specific fields you define) |
| Output Fields | (Structured mode only) The fields the agent should return, with names and types |
| Variable | Description |
|---|---|
run_agent_task.success | Boolean — whether the task completed |
run_agent_task.error_message | Error details if the task failed |
run_agent_task.{custom_fields} | Your defined output fields (Structured mode) |
AI File Analysis
AI File Analysis
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| File | The file to analyze — from a trigger attachment, Read File output, or file field |
| Output Fields | The specific data points to extract, with field names and types |
- Scenario
- Attachment is Added trigger fires when a PDF is uploaded to a vendor record
- AI File Analysis extracts: vendor name, invoice number, line items, total amount, due date
- Create Record creates an Invoice record with the extracted values
- If
total_amountis greater than5000→ Start Approval Process
Transform Data with AI
Transform Data with AI
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Input | The data to transform — from trigger fields, action outputs, or variables |
| Transformation Instructions | What transformation to apply |
AI Classification
AI Classification
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Input | The content to classify — from trigger fields, action outputs, or variables |
| Categories | The set of categories the AI should choose from |
category and a confidence score (0–1). Use the confidence score in a downstream If action to handle low-confidence classifications differently — for example, routing to a human reviewer when confidence is below 0.7.- Scenario
- Email Received trigger fires
- AI Classification analyzes
trigger.bodyagainst categories: Bug Report, Feature Request, Billing Question, General Inquiry - If
categoryequals"Bug Report"ANDconfidenceis greater than0.8→ Make Assignment to Engineering - Otherwise If
categoryequals"Billing Question"→ Make Assignment to Finance - Otherwise → Make Assignment to General Support
AI Summarization
AI Summarization
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Input | The content to summarize — from trigger fields, action outputs, or variables |
summary text.When to use: When a downstream action needs a brief version of long-form content — for example, generating a one-line ticket description from a multi-paragraph customer email, or creating an executive summary from a detailed report before sending it via Teams.AI Data Search
AI Data Search
| Field | Description |
|---|---|
| AI Search Table | Select a configured AI Search table (Element or Table) |
| Query | The search query — supports {{value_references}} for dynamic queries based on the current record |
Communication Actions
Communication actions send notifications, messages, and updates to users inside and outside of Elementum.Send Record Update
Send Record Update
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Record | The record to notify about |
| Recipients | Users to notify — from a Search Users result, static users, or field references |
Send Email Notification
Send Email Notification
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| From Display Name | The sender name that appears to recipients |
| From | The email address prefix (before @yourdomain.com) |
| To / Bcc | Recipients and blind carbon copy (up to 25 total) |
| Subject | Email subject line — supports {{value_references}} |
| Notification Body | Email content with HTML formatting — supports {{value_references}} |
| Email Attachments | Optional files to include |
| Source | Description |
|---|---|
| Record | Files from specific file fields on the trigger record |
| Attachments | All files from the attachments block on the trigger record |
| File | Files from the workflow context — such as a generated report from an earlier action |
Post Comment
Post Comment
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Record | The record to comment on |
| Comment | The comment text — supports {{value_references}} |
Send Message to Teams
Send Message to Teams
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Channel | The Teams channel to post to |
| Message | Message content — supports {{value_references}} |
Initiate Call
Initiate Call
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| AI Agent | Which agent will conduct the call |
| Phone Service | Phone service provider |
| Phone Number | Number to call — from a record field, action output, or static value |
| Related Record | (Optional) Record this call relates to, for context |
| Additional Context | (Optional) Extra information for the AI agent |
| Default Language | Language for the conversation |
File Actions
File actions process documents, extract text content, and manage file storage on records.Read File
Read File
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| File | The file to read — from a trigger attachment, file field, or previous action output |
Read Bulk File
Read Bulk File
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Files | The files to read — from a trigger’s attachment collection or a file field that accepts multiple files |
Save Attachment
Save Attachment
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| File | The file to save — from a generated report, email attachment, API response, or other source |
| Record | Which record to attach the file to |
Unzip File
Unzip File
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| File | The ZIP file to extract |
Data Actions
Data actions perform calculations, run scripts, set variables, and invoke other automations.Execute Script
Execute Script
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Inputs | Named values from triggers, previous actions, or static values |
| Code | JavaScript that processes inputs and returns a result object. Click Execute to test. |
- Server-side, isolated sandbox — consistent behavior between testing and production
- No access to file system, network, or external resources
- Execution timeout: 10 seconds
- Statement limit: 50,000 JavaScript statements
- Console output captured (maximum 20 KB)
- Base64
- CSV Parsing
| Variable | Type | Description |
|---|---|---|
result | JSON | The object returned by your JavaScript code |
textResult | Text | JSON string representation of the result |
result.Open the Outputs panel on the right side of the Script Configuration pull-out and select the Schema tab to manage it.| Field | Description |
|---|---|
| Property name | The key your script returns in the result object (for example, project_name, version) |
| Type | The data type for that property — Text (String), Number, Boolean, Date, Object, or Array |
| Add Property | Add a new top-level property to the schema. Nested objects can be expanded to define their own properties. |
- Scenario: Discount calculation
- Scenario: Ticket analysis
Run Calculation
Run Calculation
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Expression | The calculation to evaluate — supports standard math operators and value references |
Set Variable
Set Variable
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Variable Name | The name to store the value under |
| Value | The value to store — from trigger data, action outputs, or a static value |
total_with_tax so it’s clear what the value represents when used later.Run Automation
Run Automation
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Automation | Select the automation to invoke |
User Actions
User actions find users and user groups for assignments and notifications.Search Users
Search Users
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Conditions | Filter criteria — department, role, name, email, or other user attributes |
| Variable | Type | Description |
|---|---|---|
users | User (array) | All users matching the criteria |
user | User | The first matching user (convenient for single-user lookups) |
count | Number | Total matching users |
user.id, user.name, user.email.users array, use a Repeat for Each action. Inside the loop, each item has item.id, item.name, and item.email.Search User Groups
Search User Groups
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Conditions | Filter criteria — group name or attributes |
External Actions
External actions connect your automations to third-party systems.Send API Request
Send API Request
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Method | GET, POST, PUT, or DELETE |
| URL | The API endpoint — supports {{value_references}} |
| Headers | Request headers (key-value pairs) |
| Body | Request body for POST/PUT — supports {{value_references}} |
| Authorization | Authentication method (see below) |
| Type | Description |
|---|---|
| No Auth | No authorization header |
| Basic Auth | Username and password, sent as Base64-encoded Authorization header. Credentials encrypted at rest. |
| Bearer Token | Static token (encrypted at rest) or dynamic reference from a previous action output |
| OAuth | Client Credentials flow — provide OAuth URL, Client ID, and Client Secret. Tokens are cached and refreshed automatically. |
| Field | Description |
|---|---|
| OAuth URL | The token endpoint URL |
| Client ID | Your OAuth client identifier (encrypted at rest) |
| Client Secret | Your OAuth client secret (encrypted at rest) |
| Request Type | How credentials are sent — HTTP Basic (Authorization header) or Form URL Encoded (request body) |
| Custom Headers | Additional headers for the token request (optional) |
| Variable | Type | Description |
|---|---|---|
response | JSON | Parsed JSON response body |
success | Boolean | Whether the request succeeded |
textResponse | Text | Raw text response body |
statusCode | Number | HTTP status code (200, 404, 500, etc.) |
file | File | Downloaded file (when response type is FILE) |
- Scenario
- Error handling
- Record is Created trigger fires for a new order
- Send API Request sends a GET to the inventory system with the product IDs from the order
- If
send_api_request.successequalstrueANDresponse.in_stockequalstrue→ continue processing - Otherwise → Update Record Fields sets status to “Backordered” and Send Email Notification alerts the customer
Run Function
Run Function
| Field | Description |
|---|---|
| Action Name | Descriptive name for this action |
| Function | Select the custom function to invoke |
| Inputs | Input parameters for the function |