Workflows block library
Understand the building blocks that power workflows.
This is your comprehensive guide to understanding and leveraging the building blocks that power workflows. Workflows gives your team complete control and flexibility to build out virtually any go-to-market process you need, right inside Attio.
We’ll break down the various triggers and actions that you can use to automate your processes. At the heart of workflows are two primary components: trigger blocks that initiate the workflow, and action blocks that execute specific tasks. For a step by step walkthrough to set up workflows, use this guide.
Reference the Attio glossary to understand the feature terms used in these block descriptions.
Trigger blocks
Trigger blocks are the starting point of any workflow. They determine when a specific workflow should be initiated and what data will be passed to subsequent blocks. Here is an overview of the available trigger blocks.
Record triggers
Record command
Adds a button to records that you can manually click to run the workflow. Select an object input, and the command button will be available for all records of that object. To trigger it, you’ll click the Run workflow button on a record page, or you can also manually bulk enroll records in the workflow by selecting them in a table view of an all records page such as the Companies or People page or in a list, and clicking Run workflow.
Record created
Triggers every time a new record is created for a specific object. Select the object for the input.
Record updated
Triggers every time a record is updated for a specific object. Note this will not trigger whenever the attribute’s value is set during record creation. Select the object for the input, and optionally select an attribute if you only want it to trigger when that specific attribute is updated. If no attribute is selected, it will run every time any attribute on any record of that object is updated. (Note that this is only for object attributes, not list attributes. Learn the difference here. To trigger when any list attribute is updated, see the List entry updated trigger.)
Each records trigger provides the following as variable inputs you can use in subsequent blocks:
Lists triggers
List entry command
Adds a button to list entries that you can manually click to run the workflow. Select a list input. To trigger it, you’ll select the checkbox for the entry or entries in the list that you want to enroll in the workflow, click Run workflow, and then select the workflow.
List entry updated
Triggers every time an entry within a list is modified. Note this will not trigger whenever the attribute’s value is set during list entry creation. Select the list, and optionally select an attribute if you only want it to trigger when that specific attribute is updated. If no attribute is selected, it will run every time any entry in the list is updated. (Note that this trigger only monitors list attributes, not object attributes. Learn the difference here. To trigger when any object attribute is updated, see the Record updated trigger.)
Record added to list
Triggers every time a new record is added to a specific list. Select a list input.
Each lists trigger provides the following as variable inputs you can use in subsequent blocks:
Data triggers
Attribute updated
Triggers whenever a specific attribute on a list or object is modified. Select the object or list containing the attribute, then select the attribute. Note this will also trigger whenever the attribute’s value is set during record or list entry creation.
This trigger provides the following as variable inputs you can use in subsequent blocks:
The Attribute updated trigger will also happen when the specified attribute is given a value while creating a record or adding a record to a list. Compared to the Record updated and List entry updated blocks, Attribute updated may be preferable for status monitoring, notifications, and formula workflows.
Tasks triggers
Task created
Triggers when a new task is created. It provides the following as variable inputs you can use in subsequent blocks:
Utilities triggers
Manual run
This is a manual trigger, meaning it allows you to start the workflow on demand by clicking the Trigger workflow button on that specific workflow's page. Using a manual trigger is a great way to test a workflow as you are building it. It provides the following as variable inputs you can use in subsequent blocks:
Recurring schedule
Triggers on a defined schedule. Select the frequency with which you want the workflow to run: daily, weekly, or monthly, or select the advanced option to provide a Cron expression for a more complex frequency. Select a timezone, and also select the following, according to the frequency selected:
This trigger provides the following as variable inputs you can use in subsequent blocks:
Webhook received
Send application requests to a provided URL to trigger the workflow. This trigger provides the following as variable inputs you can use in subsequent blocks:
Action blocks
Once a workflow is triggered, the action blocks dictate what operations or processes should take place, and what data, if any, will be passed to subsequent blocks. Here is an overview of the available action blocks.
Records actions
Create or update record
Checks for and updates a record if it already exists, or creates a new record if it does not exist yet. Provides the created or updated record’s data as variable inputs you can use in subsequent blocks.
Inputs:
Create record
Creates a new record. Keep in mind, if the record may already exist, you may want to use “Create or update record” instead. Provides the created record’s data as variables you can use in subsequent blocks.
Inputs:
Find records
Finds records that match filter conditions so that you can use those records in subsequent blocks.
Inputs:
Provides the following as variable inputs you can use in subsequent blocks:
Update record
Updates an existing record’s attribute values.
Inputs:
Lists actions
Add record to list
Adds a record to a specific list. Provides the created list entry’s data as variable inputs for subsequent blocks.
Inputs:
Delete list entry
Deletes a specific entry from a list.
Inputs:
Find list entries
Finds list entries that match filter conditions so that you can use those entries in later blocks.
Inputs:
Provides the following as variable inputs you can use in subsequent blocks:
Update list entry
Modifies a specific entry within a list.
Inputs:
Sequences actions
Enroll in sequence
Adds a person record as a recipient to an Attio email sequence.
Input:
Note: The selected sender must have delegated sending enabled for the sequence; otherwise, the workflow run will fail and the recipient will not be added. Also, the sender can choose which email address to send from within the delegated sending settings.
Tasks actions
Complete task
Marks a specified task as complete.
Input:
Create task
Creates a new task. Provides the created task’s data as variable inputs for subsequent blocks.
Input:
Calculations actions
Adjust time
Modifies a given time, either referencing an attribute used prior in the workflow via a variable or a manually set timestamp, by a defined amount. Provides the adjusted time as a variable input for subsequent blocks.
Inputs:
For example, if you want to create a task that is due five days after a list entry enters a specific stage, you could set up the following:
Aggregate values
Aggregates a list of numerical values using a specified aggregation method. Provides the aggregated value as a variable input for subsequent blocks. Supports sum, average, min, and max.
Inputs:
For example, this block would aggregate the sum of the deal values for all deals associated with a record:
Formula
Executes a specified mathematical formula. Provides the formula’s result as a variable input for subsequent blocks. Supports +, -, /, and *.
Inputs:
As an example, you could use a variable to input a "Quantity purchased” attribute, times a “Price” attribute, to result in the total price of all items.
Follow the Formula block with an Update list entry or Update record block to save the Result in an attribute.
Random number
Generates a random number between a minimum and a maximum. Provides the random number as a variable input for subsequent blocks.
Inputs:
One example of a use case for this block is randomly assigning things to team members. For example, if you had two Sales team members and want to route half of new leads to each member, you could generate a random number between 0 and 1, follow it by an If / else block, and when the number is over 0.5 assign to one team member, and when it’s under 0.5 assign to the other team member. If one team member should have more leads assigned than the other, you can adjust the If / else block’s condition numbers accordingly.
Conditions actions
Note: When a conditions action is the last block executed in a run, the conditions block will not cost a credit (though the prior blocks that ran will be charged credits). This will happen when the run matches a condition that has no deeper path associated with it. See Workflows billing for more information.
Filter
Applies a specific filter based on set conditions. The workflow run will only continue if the conditions are met. If the conditions are not met, the run will stop.
Inputs:
Learn how to set filter conditions or groups.
If/else
Creates Is true and Is false output paths and routes the run based on conditional logic.
Inputs:
Learn how to set filter conditions or groups. Once you have set your filter conditions, you can select the next block for the Is true and Is false paths.
Switch
Like If/else blocks, you can route the run based on conditional logic, but you can have several paths instead of just two.
Inputs:
Learn how to set filter conditions or groups. Once you have set your filter conditions, you can select the next block for each separate path.
Note: In cases where multiple paths are true, paths will be evaluated in order (Condition 1, Condition 2, Condition 3, Default, etc.), and the first condition that returns 'true' will be the only one executed.
Set filter conditions or groups
First click Add filter, select the attribute you want to filter by based on previous blocks, then select the conditions for your filter (is, is not, contains, etc.). If applicable, select the value of the attribute to filter by.
Click the + to add additional conditions, or select the ⋮ icon next to a condition and choose Convert to advanced filter. To combine and nest your filters with ‘and/or’ modifiers, click on the ⋮ icon to the right of a filter followed by Convert to group. You can then add more filters and toggle And/Or for advanced filtering.
To remove a filter or condition, select the ⋮ icon to the right of it, then click Delete condition or Delete filter.
Delays actions
Delay
Pauses the workflow run for a specified duration.
Inputs:
Delay until
Pauses the workflow until a specific date and time.
Inputs:
Agents actions
Research record
Deploys an AI Agent to answer questions based on research it performs across the web.
For a video walkthrough of the research record block, see Attio Academy.
Inputs:
Follow this block with another action block to use or save the tags.
Note: The agent may not be able to reliably reference some websites such as LinkedIn that are private or require a login.
Save Agent block outputs
Keep in mind for all Agent actions, using the blocks by themselves will not save the responses anywhere. You must add a block after an Agent block to tell the workflow what you want to do with the text returned.
You can use the answers received directly in a Condition block or any other block that accepts text as a variable (e.g. Prompt Completion).
If you’d like to store an answer, you’ll need to create a text type attribute within your Object settings first. Then, after the Agent block, follow with an Update record block to save the text in the attribute you’ve created, using a variable to bring in the response from the Agent block as the attribute value.
AI actions
Classify record
Uses AI to summarize the record into a set of tags based on all its attributes.
Inputs:
Follow this block with another action block to use or save the tags.
Classify text
Uses AI to classify input text into a set of tags.
Inputs:
Follow this block with another action block to use or save the tags.
Prompt completion
Uses AI to generate text based on a definable prompt. Provides the result as a variable input for subsequent blocks.
Inputs:
Follow this block with another action block to use or save the text.
Summarize record
Uses AI to provide a written text summary of the attributes for a record.
Inputs:
Follow this block with another action block to use or save the text.
Save AI block outputs
Keep in mind for all AI actions, using the blocks by themselves will not save the tags or text anywhere. You must add a block after an AI block to tell the workflow what you want to do with the tags or text generated.
To save tags or text in an attribute, create the attribute first:
After the AI block, follow with an Update record block to save the tags or text in the attribute you’ve created, using a variable to bring in the tags or text from the AI block as the attribute value.
Workspace actions
Broadcast message
Sends a popup notification to people in your workspace.
Inputs:
Optionally, insert variables for title, description, and duration in seconds to include dynamic values from previous block outputs.
Celebration
Initiates a celebratory action with a confetti animation for people in your workspace.
Inputs:
Round robin
Selects a user from a defined set of users each time the workflow runs, cycling through the users in order so that each user is selected once before starting over at the start of the list. Provides the chosen user as a variable input for subsequent blocks.
Inputs:
Utilities actions
Loop
When you need to take the same action(s) on a list of multiple items, for example all Team members of a Company, a Loop block allows you to run through a set of block actions for each item.
Inputs:
Click Select block under First step to select the first block you want to run in the loop. Add additional loop steps from the canvas.
Navigating loops on the canvas:
You can use the following as variables in action blocks within a loop:
Parse JSON
Use this block to parse and extract structured data from a JSON string. Create a field for each data point you want to extract. You can then use the fields holding extracted data as variable inputs for subsequent blocks.
Inputs:
When providing a Path for each field, use the same syntax you would use to traverse the object in JavaScript. For example:
Note: A path that evaluates to nothing will return an empty value (it will not fail).
Send HTTP request
Makes an HTTP request, with support for DELETE, GET, HEAD, PATCH, POST, and PUT methods. Provides the response status code and body as variable inputs for subsequent blocks. This allows you to send data to or kick off a process in another system from an Attio workflow.
Inputs:
Third-party blocks
Workflows aren't limited to just our native blocks. With third-party integrations, other apps can create both trigger and action blocks.
To utilize these blocks, you'll need to connect your Attio workspace to the corresponding third-party apps. We support Slack, Outreach, Mailchimp, Mixmax, and Typeform.