Workflows block library
Understand the building blocks that power workflows.
If you're working with legacy workflows, see the Legacy workflows block library instead.
Available on all plans.
Available for all workspace members.
This is your comprehensive guide to understanding and using the building blocks that power workflows. Workflows gives your team the 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 steps that you can use to automate your processes. At the heart of workflows are two primary components: trigger blocks that initiate the workflow, and steps that execute specific tasks. For a step-by-step walkthrough to set up workflows, see Create a workflow.
Reference the Attio glossary to understand the feature terms used in these block descriptions.
What are workflow blocks?
Workflows are made up of blocks, which define how a workflow runs. Every workflow starts with a trigger block, then continues through one or more steps.
Inputs are the values you configure in the block, such as the object, list, conditions, or instructions. Outputs are the values a block returns during a workflow run, which you can use later in the workflow as variables.
Trigger blocks
Trigger blocks start a workflow. You can use trigger blocks to start workflows automatically, on a schedule, from an incoming webhook, or manually.
Record triggers
Record triggers start workflows from a specific object, such as Companies, People, or Deals.
Record command
Record command adds a button to records so you can run the workflow manually for one or more records.
Input:
Object: The button will be available for all records in the object you select.
Outputs:
The record’s data
Which actor performed the trigger
When the trigger happened
How to run it
There are a few ways to run a Record command workflow:
From an individual record page: Click the Run workflow icon in the top-left.
From an all records page or list: Select the checkboxes next to the records you want to enroll in the workflow, then click Run workflow and select the workflow.
From the workflow editor: Click Trigger workflow in the top-right and select a record.
From the Chrome extension: Open a record and click the Run workflow icon in the toolbar at the bottom.
Record created
Record created starts a workflow whenever a new record is created in a selected object.
Input:
Object: Select the object the workflow should monitor.
Outputs:
The record’s data
Which actor performed the trigger
When the trigger happened
Record updated
Record updated starts a workflow whenever a record is updated in a selected object.
Note: Record updated does not trigger when:
An attribute value is first set during record creation (use Attribute value changed instead)
List attributes are updated (use List entry updated instead)
Inputs:
Object: Select the object the workflow should monitor.
Attribute (optional): Select a specific object attribute if you only want the workflow to run when that attribute is updated.
Note: If you do not select an attribute, the workflow runs every time any object attribute on any record in the selected object is updated.
Outputs:
The record’s data
Which actor performed the trigger
When the trigger happened
The record’s new and previous values, if an attribute is selected
Lists triggers
List triggers start workflows from a specific list, such as a pipeline, process, or project list.
List entry command
List entry command adds a button so you can run the workflow manually for selected list entries.
Input:
List: The button will be available in the list you select.
Outputs:
The list entry’s data
Which actor performed the trigger
When the trigger happened
There are a few ways to run a List command workflow:
From an individual record page: Click the Run workflow icon on the list entry in the left-hand sidebar.
From a list: Select the checkboxes next to the list entries you want to enroll in the workflow, then click Run workflow and select the workflow.
From the Chrome extension: Open a record and click the Run workflow icon in the toolbar at the bottom.
Record added to list
Record added to list starts a workflow whenever a record is added to a selected list.
Input:
List: Select the list the workflow should monitor.
Outputs:
The list entry’s data
Which actor performed the trigger
When the trigger happened
List entry updated
List entry updated starts a workflow whenever a list entry is updated for a selected list.
Note: List entry updated does not trigger when:
An attribute value is first set while adding a record to the list (use Attribute value changed instead)
Object attributes are updated (use Record updated instead)
Inputs:
List: Select the list the workflow should monitor.
Attribute (optional): Select a specific list attribute if you only want the workflow to run when that attribute is updated.
Note: If you do not select an attribute, the workflow runs whenever any list attribute on any entry in the selected list is updated.
Outputs:
The list entry’s data
Which actor performed the trigger
When the trigger happened
The list entry’s new and previous values, if an attribute is selected
Data triggers
Start workflows when a specific attribute changes.
Attribute value changed
Attribute value changed starts a workflow whenever the attribute's value is set or changed, whether on record creation or in a later update.
Note: In legacy workflows, this block is called Attribute updated. The functionality is the same.
Inputs:
Object or List: Select the object or list that contains the attribute.
Attribute: Select the attribute the workflow should monitor.
Unlike Record updated and List entry updated, this trigger also fires if the attribute is given a value when a record or list entry is created.
Outputs:
The parent record’s data for object attributes, or the entry’s data for list attributes
The attribute’s new and previous values
Which actor performed the trigger
When the trigger happened
Task triggers
Task triggers start workflows from task activity.
Task created
Task created starts a workflow whenever a new task is created.
Input:
This block has nothing to configure.
Outputs:
The task’s data
Which actor performed the trigger
When the trigger happened
Utilities triggers
Utility triggers start workflows manually, on a schedule, or from an external request.
Webhook received
Webhook received starts a workflow when an external application sends a request to a provided URL.
Configure your application to send requests to the Webhook URL. Requests to the webhook should set Content-Type: application/json.
Outputs:
Webhook Payload Body
When the trigger happened
Follow this block with a Parse JSON block to extract structured data from the request body and use it in later blocks.
Manual run
Manual run lets you start a workflow on demand from the workflow page.
Note: This trigger is useful for testing while you build, but it starts a workflow without selecting any records or list entries. If you want to run a workflow on specific items, you can either:
Use a Record command or List entry command trigger instead, or
Combine Manual run with Find records or Find list entries
Input:
This block has nothing to configure.
Outputs:
Which actor performed the trigger
When the trigger happened
How to run it
To run a Manual run workflow, open the workflow editor and click Trigger workflow in the upper-right.
Recurring schedule
Recurring schedule starts a workflow on a defined schedule.
Inputs:
Frequency: Select daily, weekly, monthly, or an advanced schedule using a Cron expression.
Timezone: Select the timezone for the schedule.
Frequency-specific settings:
Daily: Select the time of day.
Weekly: Select the day or days of the week and the time of day.
Monthly: Select the day or days of the month and the time of day.
Output:
When the trigger happened
Steps
Steps define what happens after a workflow triggers.
Agent steps
Agent steps do research and return text that you can use in later blocks or save to an attribute.
Agent outputs are not saved to attributes automatically. You can use the answers directly in later blocks that accept text. If you want to store an answer, create a text type attribute first, then follow the agent block with Update record or Update list entry and map the returned text into that attribute.
Note: Agents may not be able to reliably reference some websites such as LinkedIn that are private or require a login.
Custom agent
Custom agent deploys an AI agent to perform tasks based on your instructions, with optional access to Attio data, MCP tools, and the web.
Inputs:
Prompt: Enter the instructions for the agent. The agent has no data by default. Use variables to pass in context from earlier blocks, and configure Tool access to give it access to Attio data or connected apps.
Output mode: Select how the agent returns its response.
Plaintext: The agent returns a free-text response.
Structured: The agent returns output that conforms to a schema you define. Each property in the schema becomes a separate output variable you can use in subsequent blocks.
Output schema (required when Output mode is Structured): Click Set a schema to open the schema editor. Paste a sample JSON payload to generate a schema automatically, or click + Create manually to build it yourself.
Advanced options > System prompt (optional): Define the agent's role, rules, and behavior. You can use variables from earlier blocks.
Model: Select the OpenAI, Google, or Anthropic model you want to use. To learn more about the models, refer to the vendor documentation:
Tool access (optional): Click Add tools to open the Tool access panel. All tools available are read-only.
Run as: Select the workspace member or workflow whose credentials the agent uses when calling tools. If a member is selected, they will receive a notification and must grant access via the Share access tab in their Ask Attio account settings.
Attio: Expand Read tools and select which Attio data the agent can read:
Call recordings
Emails
Lists
Meetings
Notes
Tasks
Workspace members
Records
Web access: Toggle on to allow the agent to browse external URLs to find and retrieve information. Content from external sites may influence how the agent behaves.
Apps: Connected MCP-enabled apps appear here. Expand an app to select which individual tools the agent can use. If you select another workspace member in Run as, Attio will send them a permission request. They must connect their apps via App connections in their account settings before the agent can use their app tools.
Note: Selecting a workflow to Run as gives the agent access to anything visible across the workspace, such as call recordings and notes, plus any objects and lists the workflow has read access to.
Selecting a specific workspace member to Run as gives the agent access to everything that member can access.
Output:
Custom agent's response
Web agent
Web agent deploys an AI agent to answer questions about a record based on research it performs across the web.
Note: In legacy workflows, this block is called Research record. The functionality is the same.
Inputs:
Record: Select the record you want to research. Use a variable to provide a record from a previous block. The input must be a record; the agent cannot research list entries.
Questions: Enter a question you want the agent to answer. Click + Add question to add more questions, or click the trash can icon next to a question to remove it.
Output:
Question answers
AI steps
AI steps generate tags or text from record data or text inputs.
Classify record
Classify record uses AI to summarize the record into one or more tags based on its attributes.
Inputs:
Record: Select the record to classify.
Tags: Enter the tags AI should choose from. Type a tag and press ⏎ Enter or the return key to add each one.
Allow multiple tags (optional): Check to let AI select more than one tag.
Output:
Record classification
Follow this block with another step to use or save the tags.
Classify text
Classify text uses AI to classify text into one or more tags.
Inputs:
Input: Provide the text to classify.
Tags: Enter the tags AI should choose from. Type a tag and press ⏎ Enter or the return key to add each one.
Allow multiple tags (optional): Check to let AI select more than one tag.
Output:
Text classification
Follow this block with another step to use or save the tags.
Summarize record
Summarize record uses AI to generate a text summary of the attributes for a record.
Inputs:
Record: Select the record to classify.
Instructions: Enter what you want AI to summarize and include.
Output:
Record summary
Follow this block with another step to use or save the text.
Save AI block outputs
AI outputs are not saved to attributes automatically.
To store AI outputs in an attribute:
For Classify record and Classify text, create a select or multi-select attribute with the same tags you use in the block.
For Summarize record, create a text attribute.
Then follow the AI block with Update record or Update list entry and map the block output into that attribute.
Record steps
Record steps create, update, find, or delete records.
Create record
Create record creates a new record.
Note: If the record may already exist, use Create or update record instead.
Inputs:
Object: Select the object of the records you want to create.
Attributes to set (optional): Set values for other object attributes.
Outputs:
The record’s data
Create or update record
Create or update record checks for an existing record and updates it if it exists. If no matching record exists, the block creates a new record.
Inputs:
Object: Select the object of the records you want to create or update.
Matching attribute: Select the unique object attribute used to check whether a record with a matching value already exists.
Attributes to set (optional): Set values for other object attributes.
Replace existing values (optional): When this is not enabled, new multi-select values are added to existing values. When selected, existing values are replaced.
Outputs:
The record’s data
Update record
Update record updates an existing record’s attribute values.
Inputs:
Object: Select the object of the records you want to update.
Record: Set the record you want to update by selecting a specific record or using a variable from an earlier block.
Attributes to set: Set values for other object attributes.
Replace existing values (optional): When this is not enabled, new multi-select values are added to existing values. When selected, existing values are replaced.
Outputs:
The record’s data
Find records
Find records returns records that match filter conditions so you can use them later in the workflow.
Inputs:
Object: Select the object to search.
Limit: Set how many records to return. The maximum is 100, and a value is required.
Filter: Set the filter conditions that return the records you want. Learn how to set filter conditions or groups.
Outputs:
Matching records: The records found that met the filter conditions.
Number of matches: The number of records found that met the filter conditions.
List steps
List steps create, find, update, or delete list entries.
Note: List entries and records are different entities. Entry inputs only accept a list entry and will fail if you provide a record. If you are starting with a record, use the Find list entries block to locate the entry, then pass the result using a variable.
Add record to list
Add record to list adds a record to a specific list.
Inputs:
List: Select the list where the record should be added.
Record: Set the record you want to add by selecting a specific record or using a variable from an earlier block.
Attributes to set (optional): Set values for the new entry’s list attributes.
Outputs:
The list entry’s data
Update list entry
Update list entry modifies an existing entry within a selected list.
Inputs:
List: Select the list the entry belongs to.
Entry: Set the list entry you want to update by selecting a specific list entry or using a variable from an earlier block.
Attributes to set: Set values for list attributes.
Replace existing values (optional): When this is not selected, new multi-select values are added to existing values. When selected, existing values are replaced.
Outputs:
The list entry’s data
Delete list entry
Delete list entry removes an entry from a list.
Inputs:
List: Select the list the entry belongs to.
Entry: Set the list entry you want to delete by selecting a specific list entry or using a variable from an earlier block.
Find list entries
Find list entries returns list entries that match filter conditions.
Inputs:
List: Select the list containing the entries you want to find.
Limit: Set how many list entries to return. The maximum is 100, and a value is required.
Filter: Set the filter conditions that return the list entries you want. Learn how to set filter conditions or groups.
Outputs:
Matching list entries: The list entries found that met the filter conditions.
Number of matches: The number of list entries found that met the filter conditions.
Sequence steps
Sequence steps enroll or remove person records from sequences.
Enroll in sequence
Enroll in sequence adds a person record as a recipient in an Attio email sequence.
Inputs:
Sequence: Select the sequence.
Recipient: Select the person record to enroll. It is not possible to enroll a company, user, list entry, or any entity other than a person record.
Sender: Select the workspace member who will send the emails.
Output:
Enrolled successfully: True or false
In a case where the recipient is already enrolled, the workflow run will not fail.
Note: The selected sender must have delegated sending enabled for the sequence or the workflow run will fail and the recipient will not be added. The sender can also choose which email address to send from within the delegated sending settings.
Exit from sequence
Exit from sequence stops future emails in a sequence from being sent to an enrolled person record.
Inputs:
Sequence: Select the sequence.
Recipient: Select the person record to remove.
If the recipient provided is not in the sequence, the workflow run will not fail.
Task steps
Task steps create tasks or mark tasks complete.
Complete task
Complete task marks a selected task as complete.
Input:
Task: Use a variable to select a task from an earlier Create task block.
Create task
Creates a new task.
Inputs:
Task: Enter the task text.
Due (optional): Select a fixed date if all tasks should have the same due date, or use a variable.
Linked records (optional): Select a fixed record if all tasks should be linked to the same record, or use a variable.
Assignees (optional): Select a fixed user if all tasks should be assigned to the same person, or use a variable.
Note: If Due, Linked records, or Assignees are left empty, the created task will not include those values. When the workflow runs, the assignee will be notified that the workflow assigned a task to them.
Outputs:
The created task’s data
Calculation steps
Calculation steps transform values or return derived values that you can use in later blocks.
Execute code
Execute code runs a custom JavaScript function as a step in your workflow, letting you apply custom logic or data transformations using code.
Input:
Code: Click Add code to open the code editor. Your code must include a function called
main. Whatever it returns will be the block's output.mainshould accept a single argument: an object containing your configured input names and values. Example:
async function main(inputs) {
// Access your configured inputs as inputs.<name>
return ""
}Output:
The value returned by the function
Note: The timeout duration for the Execute code block is 100 seconds.
Adjust time
Adjust time shifts a timestamp forward or backward by a set amount. You can use a variable to reference a timestamp from earlier in the workflow, such as Triggered at for when the current workflow run began.
Inputs:
Timestamp: Select a fixed timestamp or use a variable.
Offset: Enter a positive or negative number. A positive number moves time ahead, and a negative number moves time backward.
Unit: Select Seconds, Minutes, Hours, Days, Weeks, Months, or Years.
Output:
Adjusted timestamp
Example
For example, whenever a deal moves to In Progress, this workflow creates a task due 5 days later:
Attribute changed block (trigger): Select the Deals object and Deal stage attribute.
Filter block: Add a condition where New value > equals > In Progress.
Adjust time block: Add Updated at for the Timestamp, and offset by 5 days.
Create task block: For Due, add Adjusted timestamp.
Aggregate values
Aggregate values combines a list of numeric values using a selected aggregation method: sum, average, min, or max.
Inputs:
Values: Use a variable to select the number or currency values you want to aggregate.
Aggregation type: Select Sum, Average, Minimum, or Maximum.
Example
You can use this block to calculate the sum of deal values across all deals associated with a company record. Follow the block with an Update list entry or Update record block to save the Result in an attribute.
Formula
Formula calculates a result from a mathematical expression.
Inputs:
Formula: Type the mathematical formula, using variables to provide the values from Number or Currency type attributes that you want to use in your calculation. The following are supported: +, -, /, and *.
Output:
Formula result
Example
You could use a variable for an “MRR” attribute and multiply it by 12 to calculate the ARR. Follow the block with an Update list entry or Update record block to save the Result in an attribute.
Random number
Random number generates a number between a minimum and maximum value.
Inputs:
Minimum: Enter a number.
Maximum: Enter a number.
Output:
Random number
Example
One use case for this block is assigning work randomly across 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 with an If 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 block’s condition numbers accordingly.
Condition steps
Condition steps control whether a workflow continues and which path it follows.
Set filter conditions or groups
Use filter conditions to control when a workflow continues or which records or list entries a block returns.
To add filter conditions:
Click Add condition.
Select the attribute you want to filter by.
Select an operator.
Select or enter a value, if the operator requires one.
Click + Add condition to add another condition.
Toggle and or or.
To combine conditions and nest groups for more precise logic:
Open the ⋮ menu next to a condition.
Click Convert to advanced condition.
Add more conditions.
Select and or or to control how the group is evaluated.
To remove a condition or group:
Open the ⋮ menu next to the condition or group.
Click Delete condition or Delete group.
Understanding condition operators
Condition operators compare an attribute value against the value you enter or select. The operators available depend on the type of attribute you select.
Common operator types in workflows include:
is and is not for exact matches
contains and does not contain for partial text matches
starts with and ends with for text values
greater than, greater or equal to, less than, and less or equal to for number and currency values
after, at or after, before, and at or before for date and timestamp values
empty and not empty to check whether a value is present
Use and when every condition in a group must be true. Use or when any condition in a group can be true. For attributes that can hold multiple values, a condition is true if any one of the values matches.
Filter
Filter checks whether selected conditions are true. If the conditions are true, the workflow continues. If the conditions are not true, the workflow stops.
Inputs:
Add condition: Set the condition(s) that must be true for the workflow to continue.
Learn how to set filter conditions or groups.
If
If creates two paths and routes the workflow based on conditions.
Note: In Legacy workflows, this block is called If/else. The functionality is the same.
Inputs:
Add condition: Set the condition or conditions that, when true, cause the workflow to continue on the True path, and when false cause it to continue on the False path.
Learn how to set filter conditions or groups. Once you set the conditions, select the next block for True and False paths.
Switch
Switch routes the workflow into multiple paths based on conditions. These paths are called cases.
Inputs:
Add condition: Set condition(s) that must be true for the workflow to follow each case path.
Learn how to set filter conditions or groups. Once you set the conditions, select the next block for each case path.
Which path is taken in a Switch block?
If multiple paths are true, paths are evaluated in order: Case 1, Case 2, Case 3, then Default. The first path that returns true is the only path that runs.
The Default path is taken if no other case’s conditions are met. If no case conditions are met and there are no blocks on the Default path, the run does not continue past the Switch block.
Delay steps
Delay steps pause a workflow for a set amount of time or until a selected timestamp.
Delay
Delay pauses the workflow run for a specified duration.
Inputs:
Delay: Enter a number, then select Seconds, Minutes, Hours, Days, or Weeks.
Delay until
Delay until pauses the workflow until a specific date and time.
Inputs:
Delay until: Select a date and time or use a variable from an earlier block, such as an Adjust time block.
Workspace steps
Workspace steps help you route work and communicate with people in your workspace.
Round robin
Round robin selects a user from a defined set of users and cycles through the list in order across the workflow’s runs.
Inputs:
Users: Select the users to include.
Output:
Picked user or their Email address
Celebration
Celebration shows an animation to selected users in your workspace.
Inputs:
Type: Select an animation: Ceiling drop, Fireworks, or Cannons. Select an option for a preview.
Target: Select which users should see the animation.
Broadcast message
Broadcast message shows a popup notification to users in your workspace.
Inputs:
Style: Customize the message appearance.
Neutral shows a grey informational icon.
Success shows a green checkmark icon.
Warning shows a yellow caution icon.
Error shows a red error icon.
Target: Select which users should see the message.
Title: Enter a title.
Description (optional): Enter the message body.
Duration (seconds): Select how long the message stays visible.
Utilities steps
Utility steps support iteration, data parsing, and external requests.
Loop
Loop repeats a set of nested blocks for each item in a list.
Use Loop when you want to perform the same set of steps for multiple values returned by an earlier block. Those values might be records, list entries, linked records, multi-select values, or other iterable outputs.
Inputs:
Iterable: Use a variable to select the list of things to iterate over. You can either select an attribute that allows for multiple values, or any attribute of objects linked by multi-reference attributes.
Limit (optional): Set the maximum number of iterations to run. If left blank, the loop runs for every item in the list.
Outputs available for blocks inside the loop:
Current item: The item the loop is currently iterating over
Item position: The numerical position of the current item in the list of items the loop will iterate over
Count: The number of items that are being iterated over
Total count: The number of items provided to the loop block (can be higher than Count if a limit is set)
Limit (optional): The limit that was configured
Navigating loop blocks on the canvas
Click Select next block under Next step to select the first block you want to run in the loop. Blocks that should run for each iteration should be added inside the loop container, indicated by the dotted line.
To add steps after the looping blocks have finished, open the Loop block and click Select next block under Complete.
Parse JSON
Parse JSON parses a JSON string into structured values you can use in later workflow steps.
Inputs:
Input: Enter the JSON string you want to parse. You can paste in a value directly or use a variable from an earlier block, such as Webhook received or Send HTTP request.
Schema: Define the shape of the JSON you want to extract.
Paste a sample JSON payload to generate a schema automatically.
Or select Create manually to build the schema yourself.
Root type: Select the top-level structure of the JSON schema.
Properties: Add each property you want to extract and assign it a type.
Supported types include String, Number, Boolean, Object, Array of Strings, Array of Numbers, Array of Booleans, and Array of Objects.
Set optional: Mark a property as optional if it may not always be present in the JSON.
Outputs:
Parsed values based on the schema you define. These values can be used as variables in subsequent blocks.
Defining the schema
Your schema should match the structure of the JSON you expect to receive.
For example:
Use a top-level property for values at the root of the JSON object.
Use Object for nested JSON objects.
Use an array type for lists of values or nested objects.
If a value is missing, the block returns an empty value instead of failing. If the incoming value does not match the type defined in your schema, the block will fail. For example, a property defined as Number will fail if the JSON contains a string or array at that location.
If your input JSON looks like this:
{
"name": "Jane",
"email": "[email protected]",
"subscribed": true,
"tags": ["customer", "newsletter"]
}
Set the Root type to Object, then add these properties to your schema:
name as String
email as String
subscribed as Boolean
tags as Array of Strings
After the block runs, each parsed value can be used in later workflow steps.
Mapping parsed values to Attio attributes
Parsed values from the Parse JSON block can be mapped to supported Attio attribute types in later steps.
Boolean values can be mapped to Checkbox attributes.
Number and Array of Numbers values can be mapped to Number and Rating attributes.
String and Array of Strings values can be mapped to Text, Email Address, Domain, Select, Multi-select, Currency, Status, and Phone attributes.
Send HTTP request
Send HTTP request sends an HTTP request to another system from a workflow. Use Send HTTP request to send data to, or trigger actions in, external systems.
Inputs:
Method: Select the HTTP method to use. Supported methods are DELETE, GET, HEAD, PATCH, POST, and PUT.
URL: Enter the URL Attio should send the request to. You can use hard-coded text, variables from earlier steps, or a combination of both.
Headers (optional): Add any headers required by the receiving system as header and value pairs. You can use hard-coded text, variables, or a combination of both. Custom headers are generally supported, though these headers are not, and Attio may also block other headers as needed to maintain platform security.
Content-Type header (optional): Specify the format of the request body. This is required for requests that include a message body, such as POST and PUT requests.
Body (optional): Enter the request body in the format required by the receiving system. If a Content-Type header is set, the body will be validated against it.
Outputs:
HTTP status code: The HTTP status code returned by the receiving system.
HTTP response body: The response body returned by the receiving system.
Whether the response was successful: Returns true when the response status code is in the 200-299 range.
If the response body contains JSON, follow this block with Parse JSON to extract structured values for use elsewhere in the workflow.
Note: The timeout duration for the Send HTTP request block is 2 minutes.
Third-party blocks
Third-party blocks are provided by connected integrations, which allow other apps to trigger workflows or take actions within workflows.
Use third-party blocks when you want a workflow to interact with another system, such as sending information to that app, receiving information from it, or taking action based on activity that happens there. The blocks available in your workspace depend on which integrations are connected.
To use third-party blocks, connect your workspace to the corresponding app first. Many apps offer workflow blocks, including Slack, Outreach, Mailchimp, Mixmax, and Typeform blocks. Explore all integrations in Attio’s App Store.