Attio is a fully customizable workspace for your team's relationships and workflows.
Attio is a fully customizable workspace for your team's relationships and workflows. On Nagent, Attio is exposed as a fully-configurable crm integration that any agent can call — 108 actions, and OAuth authentication. No code is required to wire Attio into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Attio to automate the kinds of tasks crm teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Attio into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Attio, with input parameters and output schema. Drop these into any step of an agent built in Helix.
ATTIO_ASSERT_COMPANYCreates or updates a company record in Attio using a unique attribute to search for existing companies. If a company is found with the same value for the matching attribute, that company will be updated. If no company is found, a new one will be created. Use this when you prefer to update records on conflicts.
Input parameters
The name of the company. Optional but recommended.
List of team member email addresses to associate with this company. These should be email addresses of people records in your workspace.
Single website domain for the company (automatically converted to list format). Use this for convenience when providing a single domain. Alternatively, use 'domains' to provide multiple domains at once.
List of website domains for the company. If matching_attribute is 'domains', either 'domain' or 'domains' is typically required. For multiselect attributes like domains, new values will be added and existing values will not be deleted. Provide as simple strings (e.g., \['example.com', 'example.org'\]).
Description or summary of the company
Physical business address of the company. Use string format: '1 Infinite Loop, Cupertino, CA, 95014, US' (recommended). Alternatively, you can provide an object with all 10 location fields.
The ID or slug of the attribute used to check if a company already exists. Must be an attribute with a uniqueness constraint. If a company is found with the same value for this attribute, it will be updated. If no company is found, a new one will be created. Common examples: 'domains' (most common) or any custom unique attribute slug. WARNING: 'name' is NOT a unique attribute and cannot be used as a matching attribute.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_ASSERT_PERSONTool to create or update person records using a unique attribute to search for existing people. Use when you want to ensure a person exists with specific details without creating duplicates.
Input parameters
Dictionary of attribute slugs to values. **CRITICAL**: The matching attribute specified in 'matching_attribute' MUST be included in the values. **ATTRIBUTE FORMATS**: (1) 'email_addresses': Use \[{'email_address': 'john@example.com'}\] or \['john@example.com'\]. (2) 'name': Use \[{'first_name': 'John', 'last_name': 'Doe', 'full_name': 'John Doe'}\] or \[{'full_name': 'John Doe'}\]. Both first_name and last_name are required by the API (default to empty string if not provided). (3) 'phone_numbers': Use \[{'original_phone_number': '+15558675309', 'country_code': 'US'}\]. (4) 'primary_location': Use string format like '1 Infinite Loop, Cupertino, CA, 95014, US'. (5) 'company': Use \[{'target_object': 'companies', 'target_record_id': '<company_uuid>'}\] for record reference. (6) 'linkedin': Use simple string URL. **MULTISELECT BEHAVIOR**: If the matching attribute is a multiselect, new values are added (existing kept). For other multiselect attributes, values are synced to match the supplied list.
The ID or slug of the unique attribute to check if a person already exists. For person records, email_addresses is the only unique attribute by default. If a person is found with the same value for this attribute, that person will be updated. If no person with the same value is found, a new person will be created instead.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_ASSERT_USER_RECORDCreates or updates a user record in Attio using a unique attribute to search for existing users. If a user is found with the same value for the matching attribute, that user will be updated. If no user is found, a new one will be created. Use this to ensure user records exist without duplicates.
Input parameters
The attribute values for the user record as a dictionary where keys are attribute slugs and values are the attribute data. **CRITICAL - MATCHING ATTRIBUTE BEHAVIOR**: The matching attribute specified in the 'matching_attribute' parameter MUST be included in the values. **ATTRIBUTE FORMATS**: (1) 'primary_email_address': Use \[{'email_address': 'user@example.com'}\] or \['user@example.com'\] format. (2) 'user_id': Use \[{'value': 'user_123'}\] or simple string value. (3) 'person': Use \[{'target_object': 'people', 'target_record_id': '<person_uuid>'}\] for record reference. (4) 'workspace': Use \[{'target_object': 'workspaces', 'target_record_id': '<workspace_uuid>'}\] for record reference. **MULTISELECT BEHAVIOR**: If the matching attribute is a multiselect attribute, new values will be added and existing values will not be deleted. For any other multiselect attribute, all values will be either created or deleted as necessary to match the list of supplied values.
The ID or slug of the unique attribute to check if a user record already exists. Must be a unique attribute. If a user is found with the same value for this attribute, it will be updated. If no user is found, a new one will be created. Common examples: 'primary_email_address', 'user_id', or any custom unique attribute slug.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_ASSERT_WORKSPACECreates or updates a workspace record in Attio using a unique attribute to search for existing workspaces. If a workspace is found with the same value for the matching attribute, that workspace will be updated. If no workspace is found, a new one will be created.
Input parameters
The name of the workspace.
List of user record IDs to associate with this workspace. These should be UUIDs of user records in your Attio workspace. Format: provide as list of record IDs which will be converted to record references.
Company record ID to associate with this workspace. This should be the UUID of a company record in your Attio workspace. Will be converted to a record reference.
URL to the workspace's avatar image.
The unique identifier for the workspace. Use this when matching_attribute is 'workspace_id'.
The ID or slug of the attribute used to check if a workspace already exists. Must be a unique attribute. If a workspace is found with the same value for this attribute, it will be updated. If no workspace is found, a new one will be created. Common examples: 'workspace_id' (most common), 'name', or any custom unique attribute slug.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_ATTRIBUTETool to create a new attribute on an object or list in Attio. Use when you need to add custom fields to track additional information. For record-reference types, you can establish bidirectional relationships by supplying a relationship object.
Input parameters
Attribute type: text, number, checkbox, currency, date, timestamp, rating, status, select, record-reference, actor-reference, location, domain, email-address, phone-number, interaction, personal-name
Display name for the attribute
Type-specific configuration settings (required for currency and record-reference types)
Whether the attribute is on an object or list.
Snake-case identifier for API calls (e.g., 'custom_field')
Whether values must be distinct across records. Uniqueness restrictions apply only to new data, not retroactively. Some attribute types (e.g., 'select') do not support unique constraints; the API will return an error if incompatible.
A UUID or slug identifying the object or list to create the attribute on
Explanatory text about the attribute
Whether new records must have a value for this attribute. Note: Required attributes (is_required=true) are not permitted on lists; only custom objects support required attributes.
Bidirectional relationship configuration for record-reference attributes
Initial value assignment strategy
Whether the attribute permits multiple values
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_COMMENTTool to create a new comment on a thread, record, or list entry in Attio. Use when you need to add a comment to an existing conversation, a record (like a person, company, or deal), or a list entry.
Input parameters
Reference to a list entry to attach the comment to.
The workspace member who wrote this comment. Must include type='workspace-member' and the UUID of the workspace member.
Format of the comment content. Currently only 'plaintext' is supported. Uses line feed character \\n for new lines.
Reference to a record to attach the comment to.
The plaintext content of the comment. Use \\n for line breaks.
UUID of an existing thread to add the comment to. Mutually exclusive with 'record' and 'entry'. Use this when adding a comment to an existing conversation thread.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_COMPANYCreates a new company record in Attio. This endpoint will throw an error on conflicts of unique attributes like domains. If you prefer to update company records on conflicts, use the Assert company record endpoint instead. Note: The logo_url attribute cannot currently be set via the API.
Input parameters
The name of the company. Optional but recommended.
List of team member email addresses to associate with this company. These should be email addresses of people records in your workspace.
List of website domains for the company. This field has a uniqueness constraint - the endpoint will throw an error if any domain conflicts with an existing company record. If you prefer to update records on conflicts instead, use the Assert company record endpoint. Provide as simple strings (e.g., \['example.com', 'example.org'\]).
Description or summary of the company
Physical business address of the company. Use string format: '1 Infinite Loop, Cupertino, CA, 95014, US' (recommended). Alternatively, you can provide an object with all 10 location fields.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_DEAL_RECORDTool to create a new deal record in Attio. Use when you need to track a new sales opportunity or deal. This endpoint will throw an error on conflicts of unique attributes. Minimal requirement is providing at least one attribute value.
Input parameters
The name of the deal. Optional but recommended.
The status/stage of the deal. Can be the status UUID or status title (e.g., 'Lead', 'In Progress', 'Won', 'Lost').
The monetary value of the deal. Decimal number with max 4 decimal places.
UUID of the workspace member who owns this deal. Use owner_email instead if you have the email address.
Email address of the workspace member who owns this deal. This is the preferred way to set the owner.
Company record UUID to associate with this deal. Use this if you have the company record ID.
List of person record UUIDs to associate with this deal. Use this if you have the person record IDs.
List of email addresses to associate people with this deal. The system will find matching person records by email address.
Domain name to associate a company with this deal. The system will find the matching company record by domain.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_ENTRYDEPRECATED: Use ATTIO_ATTIO_POST_V2_LISTS_LIST_ENTRIES instead. Tool to add a record to a list as a new list entry in Attio. Use when you need to organize records into specific lists. Throws errors on unique attribute conflicts. Multiple list entries are allowed for the same parent record.
Input parameters
A UUID or slug identifying the list to add the entry to
Custom attribute values for the list entry. Field values organized by attribute slug or ID. For multiselect attributes, all values must be specified
The UUID or slug of the parent object type (e.g., 'people', 'companies')
The UUID of the record being added to the list
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_LISTTool to create a new list in Attio. Use when you need to organize records into custom lists. Once created, add attributes using the Create Attribute API and add records using the Create Entry API. New lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level.
Input parameters
The human-readable name of the list
A unique, human-readable slug to access the list through API calls. Should be formatted in snake case
A UUID or slug to identify the allowed object type for records added to this list (e.g., 'people', 'companies')
The level of access granted to all members of the workspace for this list. Pass null to keep the list private and only grant access to specific workspace members. Note: New lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level
The level of access granted to specific workspace members for this list. Pass an empty array to grant access to no workspace members. Note: New lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_NOTEThis tool creates a new note on a given record in Attio. The note can be attached to any record type (like person, company, or deal) and includes a title and content. It requires parameters such as parent_object, parent_record_id, title, and content, with an optional created_at timestamp.
Input parameters
The title of the note
The content of the note
Optional timestamp for when the note was created (ISO 8601 format)
The object type the note is associated with. Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'.
**MUST BE A VALID UUID** - The unique identifier of the specific record within the object. Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (32 hexadecimal characters with hyphens). Do NOT use placeholder strings like 'COMPANY_ID' or 'RECORD_ID' - only actual UUIDs are accepted. Obtain this value from previous API responses (e.g., ATTIO_CREATE_RECORD, ATTIO_FIND_RECORD, ATTIO_LIST_RECORDS).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_OBJECTTool to create a new custom object in your Attio workspace. Use when you need to add a new object type beyond the standard objects (people, companies, deals, users, workspaces). Requires api_slug (snake_case identifier), singular_noun, and plural_noun.
Input parameters
The object configuration with API slug, singular noun, and plural noun. All three fields are required when creating a new object.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_PERSONCreates a new person record in Attio. This endpoint will throw an error on conflicts of unique attributes like email_addresses. If you prefer to update person records on conflicts instead, use the Assert person record endpoint. Note: The avatar_url attribute cannot currently be set via the API.
Input parameters
Person's name. Provide as array with first_name, last_name, and/or full_name. If only full_name is provided, it will be auto-split into first_name and last_name. If only first_name and/or last_name are provided, full_name will be auto-generated.
Associated company record IDs (UUIDs) to link this person to companies
LinkedIn profile URL
Person's job title
Description of the person
Person's phone numbers in E.164 international format (leading '+' and country code, e.g. '+15558675309', '+442071234567'). 10-digit numeric inputs are auto-prefixed with '+1' (US). Common formatting characters (spaces, dashes, parens, dots) are stripped. Numbers that cannot be normalized are rejected with a helpful error.
Person's email addresses. This field has a uniqueness constraint - the endpoint will throw an error if any email conflicts with an existing person record. If you prefer to update records on conflicts instead, use the Assert person record endpoint.
Person's primary location. Use string format: '1 Infinite Loop, Cupertino, CA, 95014, US' (recommended). Alternatively, you can provide an object with location fields like line_1, line_2, city, state, postal_code, country_code, etc.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_RECORDThis tool creates a new record in Attio for a specified object type (people, companies, deals, users, workspaces, etc.). It requires the object type and a values dictionary containing the attributes for the new record. IMPORTANT: Different object types have different attributes. For example: - 'people' object uses: name, email_addresses, phone_numbers, primary_location, job_title, etc. - 'users' object uses: primary_email_address, user_id, person, workspace - 'companies' object uses: name, domains, description, etc. Always verify the correct attribute names for your target object type before creating records. Use the List Attributes API or check your workspace to see available attributes for each object type.
Input parameters
Attribute values for the new record. Keys are attribute slugs, values are attribute data. CRITICAL: Call ATTIO_LIST_ATTRIBUTES (target='objects', identifier=<object_type>) to discover valid slugs and required attributes (is_required=true) BEFORE creating records. Do NOT guess attribute names. **OBJECT-SPECIFIC ATTRIBUTES**: (1) 'people': 'name' (personal-name), 'email_addresses', 'phone_numbers', 'primary_location', 'job_title', 'company' (record-reference to companies). (2) 'companies': 'name' (text), 'domains', 'description', 'primary_location', 'team' (record-reference to people). (3) 'deals': 'name' (deal title), 'owner' (actor-reference), 'stage' (status), 'value' (currency), 'associated_company' (record-reference to companies), 'associated_people' (record-reference to people). (4) 'users': 'primary_email_address', 'user_id', 'person', 'workspace'. (5) Custom objects: slugs are workspace-specific, always use List Attributes. **VALUE FORMATS**: Multi-value attributes (email-address, phone-number, personal-name, location, domain) require arrays. Single-value attributes (text, number) accept simple values or single-element arrays. personal-name: requires 'first_name', 'last_name', 'full_name' (full_name auto-generated if omitted). email-address: use 'email_address'. phone-number: use 'original_phone_number'. **ACTOR-REFERENCE** (e.g., 'owner', 'created_by'): Reference workspace members by email address. Formats: email string, array with email, or object with workspace_member_email_address field. **RECORD-REFERENCE** (e.g., 'company', 'associated_company'): Include target_object (API slug, e.g., 'people', 'companies') and target_record_id (UUID). Format: \[{"target_object": "<slug>", "target_record_id": "<uuid>"}\]. **STATUS** (e.g., 'stage' for deals): Format: \[{"status": "<title_or_uuid>"}\]. Use ATTIO_LIST_ATTRIBUTE_STATUSES to get available statuses. **LOCATION**: Use string format (recommended) or object with fields: line_1, line_2, line_3, line_4, locality, region, postcode, country_code, latitude, longitude. **DOMAIN**: use \["example.com"\] or \[{"domain": "example.com"}\]. 'root_domain' is output-only. **CURRENCY**: Use \[{"currency_value": 1000.00}\] or simple number.
The type of object to create a record for. Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'. You can also use custom object types from your workspace. IMPORTANT: Each object type has different attributes - you must use the correct attribute names for the specific object type you're creating.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_SELECT_OPTIONTool to add a new select option to a select or multiselect attribute in Attio. Use when you need to add a new choice to an existing select field.
Input parameters
The data for the new select option
Whether the attribute is on an object or a list
A UUID or slug to identify the select or multiselect attribute
A UUID or slug to identify the object or list the select attribute belongs to
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_STATUSTool to add a new status to a status attribute on either an object or a list. Use when you need to create a new status option for status attributes. Company and person objects do not support status attributes at this time.
Input parameters
The status data containing the title and optional configuration.
Whether the attribute is on an object or a list. Note that company and person objects do not support status attributes at this time.
A UUID or slug to identify the attribute the status will belong to.
A UUID or slug to identify the object or list the status attribute belongs to.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_TASKTool to create a new task in Attio. Use when you need to add a task with content and optional deadline, assignees, or linked records. Note: Tasks can only be created from plaintext without record reference formatting.
Input parameters
The text content of the task. A maximum length of 2000 characters is enforced.
Workspace members assigned to this task. Provide an array of objects with 'referenced_actor_type' and 'referenced_actor_id' properties.
The deadline of the task, in ISO 8601 format. Set to null if no deadline.
Whether the task has been completed.
Records linked to the task. Provide an array of objects with 'target_object' and 'target_record_id' properties. Creating record links within task content text is not possible via the API at present.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_USER_RECORDCreates a new user record in Attio. User records represent workspace members or users in the system. Requires primary_email_address, user_id, and workspace_id. Optionally link to an existing person record. Note: Required attributes may vary based on workspace configuration - check the List Attributes action if you encounter missing_value errors.
Input parameters
Unique identifier for the user. This should be a unique string value that identifies the user in your system.
Optional UUID of a person record to link this user to. If provided, this associates the user with an existing person in the workspace.
UUID of the workspace this user should belong to. Get workspace IDs using the List Workspace Records action.
Primary email address for the user. This is the email that will be used for user authentication and notifications.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_WEBHOOKTool to create a webhook and subscribe to events in Attio. Use when you need to set up a new webhook endpoint to receive real-time event notifications. Returns the webhook configuration including a one-time signing secret for verifying event authenticity.
Input parameters
URL where the webhook events will be delivered to. Must be an HTTPS URL starting with 'https://'.
One or more event subscriptions for the webhook. Each subscription specifies an event type and optional filter conditions.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_CREATE_WORKSPACE_RECORDCreates a new workspace record in Attio. The workspace_id field is required and must be unique. This endpoint will throw an error on conflicts of unique attributes. Use when you need to create a new workspace entry in your Attio workspace.
Input parameters
The name of the workspace
User records associated with this Workspace (record-reference type). Format: \[{'target_object': 'users', 'target_record_id': '<uuid>'}\]
A related Company record (record-reference type). Format: {'target_object': 'companies', 'target_record_id': '<uuid>'}
The URL of an avatar image
A unique identifier for this Workspace in your system. This is a required and unique attribute.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_COMMENTTool to delete a comment by its comment_id. Use when you need to remove a comment from Attio. If the comment is at the head of a thread, all messages in the thread are also deleted. The operation is permanent and cannot be undone.
Input parameters
The ID of the comment to delete. If deleting a comment at the head of a thread, all messages in the thread are also deleted.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_COMPANYTool to delete a company record from Attio by its record_id. Use when you need to permanently remove a company record. The deletion is irreversible and cannot be recovered.
Input parameters
The unique identifier (UUID) of the company record to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_DEALTool to delete a deal record from Attio by its record_id. Use when you need to permanently remove a deal record. The deletion is irreversible and cannot be recovered.
Input parameters
The unique identifier (UUID) of the deal record to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_ENTRYTool to delete a single list entry by its entry_id in Attio. Use when you need to remove an entry from a specific list. The operation is permanent and cannot be undone.
Input parameters
A UUID or slug identifying the list the entry is in
A UUID identifying the entry to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_NOTEThis tool allows users to delete a specific note in Attio by its ID. It is implemented via DELETE https://api.attio.com/v2/notes/{note_id} and handles note deletion by validating the provided note_id. It complements ATTIO_CREATE_NOTE functionality, providing complete note management capabilities within the Attio platform.
Input parameters
The ID of the note to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_PERSONTool to delete a person record from Attio by its record_id. Use when you need to permanently remove a person record. The deletion is irreversible and cannot be recovered.
Input parameters
The unique identifier (UUID) of the person record to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_RECORDThis tool allows you to delete a record from Attio permanently. The deletion is irreversible, and the data will eventually be removed from the system.
Input parameters
The unique identifier of the record to delete
The type of object to delete. Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'. You can also use custom object types from your workspace.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_TASKTool to delete a task by its task_id. Use when you need to remove a task from Attio. The operation is permanent and cannot be undone.
Input parameters
The ID of the task to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_USERTool to delete a user record from Attio by its record_id. Use when you need to permanently remove a user record. The deletion is irreversible and cannot be recovered.
Input parameters
The unique identifier (UUID) of the user record to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_WEBHOOKTool to delete a webhook by its webhook_id. Use when you need to remove a webhook subscription from Attio. The operation is permanent and cannot be undone.
Input parameters
A UUID identifying the webhook to delete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_DELETE_WORKSPACE_RECORDTool to delete a workspace record from Attio by its record_id. Use when you need to permanently remove a workspace record. The deletion is irreversible and cannot be recovered.
Input parameters
The UUID of the workspace record to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_FIND_RECORDThis tool allows users to find a record in Attio by either its unique ID or by searching using unique attributes. It provides two methods: one for directly retrieving a record by its ID with the GET /v2/objects/{object}/records/{record_id} endpoint, and another for searching by attributes using the POST /v2/objects/{object}/records/query endpoint.
Input parameters
Maximum number of records to return when searching.
Number of records to skip for pagination
The UUID or slug identifying the object type to search in. Standard object type slugs include 'people', 'companies', 'deals', 'users', 'workspaces'. Note: 'lists' is NOT a valid object type - use list-specific actions (e.g., ATTIO_LIST_LISTS, ATTIO_LIST_LIST_ENTRIES) to work with lists. Can also use 'object_type' as an alias for this field.
The unique ID of the record to retrieve directly
Dictionary of attributes to search by using attribute slugs. CRITICAL: Validate slugs via ATTIO_LIST_ATTRIBUTES (target='objects', identifier=<object_id>) before filtering. System attributes (e.g., 'email_addresses', 'name') are consistent across workspaces; custom attributes vary and invalid slugs cause 'unknown_filter_attribute_slug' errors. Filtering syntax: - Simple values use shorthand ($eq implied) - Single-element lists unwrap to shorthand - Multi-element lists convert to $or conditions - Dict values with operators ({'$eq': v}, {'$contains': v}, {'$not_empty': true}) pass through unchanged - Select/multi-select: use Attio option slugs or IDs (not plain text) - Record-reference (e.g., 'team', 'company'): to filter by referenced record attributes, use path filtering: {'path': \[\['object', 'attribute'\], \['target_object', 'target_attribute'\]\], 'constraints': {...}}. Nested field syntax like {'team': {'name': {...}}} is NOT supported. To filter by record_id directly: {'attribute_slug': {'target_object': 'type', 'target_record_id': 'uuid'}}. - Interaction attributes (e.g., 'last_email_interaction'): filter on sub-properties: owner_actor (nested type/id), interacted_at ($eq/$gte/$gt/$lte/$lt, ISO 8601), interaction_type ($eq/$not_empty)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_ATTRIBUTETool to get information about a single attribute on either an object or a list. Use when you need detailed information about a specific attribute's configuration, type, or metadata.
Input parameters
Whether the attribute is on an object or a list.
A UUID or slug to identify the attribute to retrieve.
A UUID or slug to identify the object or list the attribute belongs to. For objects, use slugs like 'people', 'companies', 'deals', or a UUID. For lists, use the list slug or UUID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_COMMENTTool to get a single comment by its comment_id in Attio. Use when you need to retrieve detailed information about a specific comment, including its content, author, thread, and resolution status.
Input parameters
A UUID which identifies the comment to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_COMPANYTool to get a single company record by its record_id in Attio. Use when you need to retrieve detailed information about a specific company. Returns all attribute values for the company with temporal and audit metadata.
Input parameters
UUID identifying the company record to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_DEAL_RECORDTool to get a single deal record by its record_id in Attio. Use when you need to retrieve detailed information about a specific deal. Returns all attribute values for the deal with temporal and audit metadata.
Input parameters
UUID identifying the deal record to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_LISTTool to retrieve details of a single list in your Attio workspace. Use when you need to get information about a specific list by its UUID or slug.
Input parameters
A UUID or slug to identify the list.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_LIST_ENTRYTool to get a single list entry by its entry_id. Use when you need to retrieve detailed information about a specific entry in an Attio list.
Input parameters
A UUID or slug identifying the list the entry is in.
A UUID identifying the entry.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_NOTETool to get a single note by its note_id in Attio. Use when you need to retrieve detailed information about a specific note, including its title, content (plaintext and markdown), tags, and creator information.
Input parameters
A UUID which identifies the note to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_OBJECTTool to get a single object by its object_id or slug. Use to retrieve detailed schema information about a specific object type in the Attio workspace. Also use as a prerequisite validation step before calling ATTIO_FIND_RECORD, ATTIO_LIST_RECORDS, or ATTIO_CREATE_RECORD — attribute slugs must exactly match what this tool returns. The returned schema defines required attributes for record creation; omitting them causes invalid_request_error with code missing_value (HTTP 400). Custom attributes (e.g., industry, category) vary by object type — verify their presence and data type here before building filters or record values.
Input parameters
A UUID or slug to identify the object. Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'. Use ATTIO_LIST_OBJECTS alongside this tool to confirm object slugs — some concepts (e.g., tasks) may be modeled as deals or custom objects rather than dedicated types.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_RECORDDEPRECATED: Use ATTIO_FIND_RECORD instead. Tool to get a single person, company, or other record by its record_id in Attio. Use when you need to retrieve detailed information about a specific record. Returns all attribute values for the record with temporal and audit metadata.
Input parameters
A UUID identifying the record Must be paired with the correct object_type — using a record_id from one object type with a different object_type will fail. Always use object_type and record_id together as retrieved from prior responses.
A UUID or slug identifying the object that the record belongs to. Can also use 'object' as an alias for this field.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_RECORD_ENTRIESTool to list all entries, across all lists, for which a record is the parent. Use when you need to find which lists a specific record belongs to. Returns list IDs, slugs, entry IDs, and creation timestamps.
Input parameters
The maximum number of results to return. The default is 100 and the maximum is 1000.
A UUID or slug identifying the object that the record belongs to.
The number of results to skip over before returning. The default is 0.
A UUID identifying the record.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_SELFTool to identify the current access token, the workspace it is linked to, and any permissions it has. Use when you need to verify token validity or retrieve workspace information associated with the current authentication.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_TASKTool to get a single task by its task_id in Attio. Use when you need to retrieve detailed information about a specific task, including its content, deadline, assignees, and linked records.
Input parameters
The ID of the task to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_V2_OBJECTS_OBJECT_RECORDS_RECORD_IDDEPRECATED: Use ATTIO_FIND_RECORD instead. Tool to get a single person, company or other record by its record_id. Use when you need to retrieve detailed information about a specific record.
Input parameters
A UUID or slug identifying the object that the record belongs to.
A UUID identifying the record.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_V2_TASKSTool to list all tasks in the workspace. Use when you need to retrieve tasks, optionally filtering by assignee, completion status, or linked records. Results are sorted by creation date from oldest to newest by default.
Input parameters
Optionally sort the results. "created_at:asc" returns oldest results first, "created_at:desc" returns the newest results first. If unspecified, defaults to "created_at:asc" (oldest results first).
The maximum number of results to return. Defaults to 500.
The number of results to skip over before returning. Defaults to 0.
Filter tasks by workspace member assignees. Workspace members can be referenced by either their email address or ID. Pass an empty value or the string `null` to find tasks with no assignee.
Filter tasks by whether they have been completed. By default, both completed and non-completed tasks are returned. Specify `true` to only return completed tasks, or `false` to only return non-completed tasks.
Pass a value to this parameter to filter results to only those tasks that contain the specified record in the `linked_records` property of the task. This parameter should identify the object that the linked record belongs to. For example, if filtering to tasks that link to a specific person record, this parameter should be `people`. If provided, `linked_record_id` must also be provided.
Pass a value to this parameter to filter results to only those tasks that contain the specified record in the `linked_records` property of the task. This parameter should contain the record ID of the linked record. If provided, `linked_object` must also be provided.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_V2_WORKSPACE_MEMBERSDEPRECATED: Use ATTIO_LIST_WORKSPACE_MEMBERS instead. Tool to list all workspace members in the workspace. Use when you need to retrieve information about workspace members, their access levels, or their identities.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_WEBHOOKTool to get a single webhook by its webhook_id in Attio. Use when you need to retrieve detailed information about a specific webhook configuration. Returns the webhook's target URL, event subscriptions, status, and metadata.
Input parameters
A UUID which identifies the webhook.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_WORKSPACE_MEMBERTool to get a single workspace member by their workspace_member_id. Use when you need details about a specific workspace member, including their name, email, access level, and avatar.
Input parameters
A UUID to identify the workspace member
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_GET_WORKSPACE_RECORDTool to get a single workspace record by its record_id. Use when you need to retrieve detailed information about a specific workspace. Returns all attribute values for the workspace record with temporal and audit metadata.
Input parameters
UUID string identifying the workspace record to fetch
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_ATTRIBUTE_OPTIONSTool to list all select options for a particular attribute on either an object or a list. Use when you need to discover available options for select or status type attributes.
Input parameters
The maximum number of results to return for pagination purposes.
The number of results to skip before returning results.
Whether the attribute is on an object or a list.
A UUID or slug to identify the attribute you want to list select options on. This must be a select or status type attribute.
A UUID or slug to identify the object or list the select attribute belongs to. For objects, use slugs like 'companies', 'people', or a UUID. For lists, use the list slug or UUID.
Set to true if you want the results to include archived select options. Defaults to false.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_ATTRIBUTESTool to list the attribute schema for an Attio object or list (including slugs, types, select/status config) to enable correct filtering and writes. Use when you need to discover what attributes exist on an object or list, their types, and their configuration (e.g., available options for select/status attributes). Returns attributes in UI sort order.
Input parameters
The maximum number of results to return for pagination purposes.
The number of results to skip before returning results.
Whether the attributes are on an object or a list.
A UUID or slug to identify the object or list the attributes belong to. For objects, use slugs like 'people', 'companies', 'deals', or a UUID. For lists, use the list slug or UUID.
Whether archived attributes should be included in the results.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_ATTRIBUTE_STATUSESTool to list all statuses for a particular status attribute on either an object or a list. Use when you need to discover available statuses for a status attribute, including their IDs, titles, and configuration.
Input parameters
Whether the attribute is on an object or a list. Please note that the company and people objects do not support status attributes at this time.
A UUID or slug to identify the attribute you want to list statuses on.
A UUID or slug to identify the object or list the status attribute belongs to.
True if you want the results to include archived statuses. Defaults to false if not specified.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_CALL_RECORDINGSTool to list all call recordings for a meeting in Attio. Use when you need to retrieve call recordings associated with a specific meeting. This endpoint is in beta.
Input parameters
The maximum number of results to return. Defaults to 50 with a maximum of 200.
A cursor for pagination. Use the next_cursor from the previous response to get the next page of results.
The UUID of the meeting to list call recordings for. Must be in UUID format.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_COMPANIESTool to list company records in Attio with optional filtering and sorting. Use when you need to retrieve company records based on criteria like domain, name, or description.
Input parameters
Maximum number of records to return. Defaults to 25.
Array of sort specifications to order results. Each sort object specifies direction ('asc'/'desc'), attribute, and optionally field or path.
Attio filter object for server-side filtering. Supports both shorthand and verbose syntax with operators. Filter by attribute slugs (e.g., 'name', 'domains', 'description'). Multi-field attributes must be accessed via nested syntax: {'domains': {'domain': {'$eq': 'attio.com'}}}. Available operators: $eq (equality), $not_empty (presence check), $in (set membership), $contains (substring), $starts_with (prefix), $ends_with (suffix), $lt/$lte/$gt/$gte (numeric/date comparison), $and/$or/$not (logical). Examples: {'name': 'Acme'} for shorthand, {'domains': {'domain': {'$eq': 'example.com'}}} for exact domain match, {'$and': \[{'name': {'$contains': 'Inc'}}, {'description': {'value': {'$not_empty': True}}}\]} for complex queries.
Number of records to skip for pagination
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_COMPANY_ATTRIBUTE_VALUESTool to get all values for a given attribute on a company record. Historic values can be queried using the show_historic query param. Historic values cannot be queried on COMINT or enriched attributes. Some attributes are subject to billing status and may return an empty array.
Input parameters
Maximum number of results to return
Number of results to skip
A UUID or slug to identify the attribute
A UUID of the company record to fetch attribute values for
If true, returns all historic values; defaults to false. Cannot be used with COMINT or enriched attributes
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_COMPANY_RECORD_ENTRIESTool to list all entries across all lists for which a company record is the parent in Attio. Use when you need to see which lists a particular company record belongs to. Returns list information and entry IDs for each list the company appears in.
Input parameters
Maximum number of results to return. Default is 100, maximum is 1000
Number of results to skip over before returning. Default is 0
A UUID identifying the company record
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_DEAL_ENTRIESTool to list all entries across all lists for which a deal record is the parent in Attio. Use when you need to see which lists a particular deal record belongs to. Returns list information and entry IDs for each list the deal appears in.
Input parameters
Maximum number of results to return. Default is 100, maximum is 1000
Number of results to skip over before returning. Default is 0
A UUID identifying the deal record
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_DEAL_RECORD_ATTRIBUTE_VALUESTool to retrieve all values for a specified attribute on a deal record in Attio. Use when you need to see current or historic values for a specific deal attribute. Historic values can be queried using show_historic param but cannot be queried on COMINT or enriched attributes.
Input parameters
Maximum number of results to return
Number of results to skip before returning
UUID or slug to identify the attribute you want to query values on
UUID of the deal record to fetch attribute values for
If true, returns all historic values for the attribute. If false, returns only currently active value(s). Defaults to false. Cannot be set to true for COMINT attributes or enriched attributes
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_DEAL_RECORDSTool to list deal records in Attio with the option to filter and sort results. Use when you need to retrieve deal records based on filter criteria or sorting requirements.
Input parameters
Maximum number of results to return. Defaults to 500
Array of sort objects with direction, attribute, and field properties
Filter results to a subset. Supports operators like $and, $or, $not, $eq, $contains. Example: {'name': {'$contains': 'Acme'}} or {'status': {'$eq': 'open'}}.
Number of results to skip. Defaults to 0
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_ENTRIESDEPRECATED: Use ATTIO_ATTIO_POST_V2_LISTS_LIST_ENTRIES_QUERY instead. Tool to list entries in a given list with filtering and sorting options. Use when you need to retrieve records added to a specific list in Attio. Entries are returned based on the filters and sorts provided.
Input parameters
Maximum number of results to return. Maximum 500
Array of sort objects to sort results by attributes
Filter entries by attribute values. Keys are attribute slugs (e.g., 'name', 'categories'). For status attributes, values can be either (1) status title strings (case-sensitive, e.g., 'In Progress', 'Lead') or (2) status_id UUIDs for advanced filtering. Status titles must match exactly. Use ATTIO_LIST_ATTRIBUTE_STATUSES to discover valid status options for a list. Example with text field: {'name': 'Acme Corp'}. Example with status field using title: {'deal_stage': 'In Progress'}. Example with status field using UUID: {'deal_stage': '0ebdb78d-3c9f-42b4-9df8-cb9d8b402c00'}
Number of results to skip over before returning
A UUID or slug identifying the list to retrieve entries from
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_LIST_ENTRIESDEPRECATED: Use ATTIO_ATTIO_POST_V2_LISTS_LIST_ENTRIES_QUERY instead. Tool to retrieve entries (records) that belong to a specific Attio list. Use when you need to enumerate list membership or access list-specific attribute values. This is distinct from listing all records of an object type - it specifically returns records that are members of a particular list.
Input parameters
UUID or API slug identifying the list to retrieve entries from
Maximum number of entries to return. Defaults to 500.
Optional array of sort descriptors to order results. Each descriptor contains direction ('asc' or 'desc'), attribute name, and optionally a field for nested sorting.
Optional filter object to retrieve a subset of entries. Object with attribute names as keys and values to match. Omit or pass empty object to enumerate all entries.
Number of entries to skip for pagination. Defaults to 0.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_LIST_ENTRY_ATTRIBUTE_VALUESTool to retrieve all values for a specified attribute on a list entry in Attio. Use when you need to see the history of values for a specific attribute on a list entry. Can return only active values or include all historical values sorted chronologically.
Input parameters
A UUID or slug identifying the list the entry is in
Maximum number of results to return for pagination
Number of results to skip before returning
A UUID identifying the entry
A UUID or slug to identify the attribute you want to query values on
If true, returns all historic values for the attribute. If false, returns only currently active value(s). Defaults to false. Can only be set to true for attributes which support historic data; will error for non-historic attributes.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_LISTSThis tool retrieves all lists available in the Attio workspace, sorted as they appear in the sidebar. Returns list metadata only (names, IDs, configuration) — not the records/entries within those lists. To fetch actual list entries, use ATTIO_FIND_RECORD with appropriate filters. This tool is a prerequisite for many list-related operations. Requires the list_configuration:read permission scope.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_MEETINGSTool to list all meetings in the workspace using a deterministic sort order. Use when you need to retrieve meetings, optionally filtering by participants, linked records, or time ranges. This endpoint is in beta.
Input parameters
The order in which to sort the meetings. Defaults to start_asc (earliest meetings first).
The maximum number of meetings to return. Must be between 1 and 200. Defaults to 50.
A pagination cursor used to fetch the next page of meetings. Responses with more meetings will include a cursor for you to use here. If not provided, the first page will be returned.
The timezone to use when filtering meetings using ends_from and starts_before (IANA timezone format, e.g., 'America/New_York'). Defaults to UTC. This property has no effect for non-all-day meetings.
Use ends_from to filter meetings to only those that end after the specified timestamp (ISO 8601 format). ends_from is inclusive, meaning that meetings that end at the exact timestamp will be included in results. When evaluating all-day meetings, we filter results from the perspective of a specific timezone (see timezone parameter).
A comma-separated list of emails to filter meetings by. If provided, meetings will be filtered to only include meetings that include at least one of the provided emails as participants.
The object to filter meetings by. Must be a valid object slug or ID (e.g., 'people', 'companies'). If provided, linked_record_id must also be provided.
Use starts_before to filter meetings to only those that start before the specified timestamp (ISO 8601 format). starts_before is exclusive, meaning that meetings that start at the exact timestamp will not be included in results. When evaluating all-day meetings, we filter results from the perspective of a specific timezone (see timezone parameter).
Used to filter meetings to only those values that include a specific linked record. Must be a valid record ID (UUID format). If provided, linked_object must also be provided.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_NOTESLists notes in Attio. Can list all notes in the workspace, or filter by parent object type and/or specific record. Notes are returned in reverse chronological order (newest first).
Input parameters
Maximum number of notes to return. Default is 10, maximum is 50.
The number of results to skip over before returning. Default is 0.
The slug or ID of the parent object the notes belong to (e.g., 'people', 'companies', 'deals'). If provided, parent_record_id must also be specified. If omitted, lists all notes in the workspace.
The UUID of the parent record to filter notes by. Must be in UUID format (e.g., '92446133-64cf-4f83-bca9-594ca2f8da57'). If provided, parent_object must also be specified. If omitted, lists all notes in the workspace.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_OBJECTSThis tool retrieves a list of all available objects (both system-defined and user-defined) in the Attio workspace via GET /v2/objects, returning key metadata including slugs and IDs for each object. Call this tool first before ATTIO_LIST_RECORDS, ATTIO_FIND_RECORD, or ATTIO_CREATE_RECORD to discover valid object slugs — hardcoded slugs may not exist across workspaces. Concepts like tasks may be modeled as deals or custom objects rather than dedicated types, so confirm the correct object type before proceeding. Attribute values in responses can be arrays of time-bounded entries rather than simple scalars; downstream code must handle nested structures.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_PEOPLE_ATTRIBUTE_VALUESTool to get all values for a given attribute on a person record. Use when you need to retrieve current or historic values for a specific person attribute. Historic values can be queried using the show_historic param but cannot be queried on COMINT or enriched attributes (returns 400 error).
Input parameters
Maximum number of results to return
Number of results to skip
UUID or slug to identify the attribute
UUID of the person record to fetch attribute values for
If true, returns all historic values; defaults to false. Cannot be used with COMINT or enriched attributes (will return 400 error)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_PEOPLE_RECORD_ENTRIESTool to list all entries across all lists for which a person record is the parent in Attio. Use when you need to see which lists a particular person record belongs to. Returns list information and entry IDs for each list the person appears in.
Input parameters
Maximum number of results to return. Default is 100, maximum is 1000
Number of results to skip over before returning. Default is 0
A UUID identifying the person record
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_RECORD_ATTRIBUTE_VALUESTool to retrieve all values for a specified attribute on a record in Attio. Use when you need to see the history of values for a specific attribute. Can return only active values or include historical values. Historic values cannot be queried on COMINT or enriched attributes.
Input parameters
Maximum results to return
Number of results to skip before returning
Attribute identifier (UUID or slug)
Record identifier (UUID)
Object identifier (UUID or slug)
Returns all historical values when true; returns only active values when false
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_RECORDSThis tool lists records from a specific object type in Attio. It provides simple pagination support and returns records in creation order (oldest first). For complex filtering, use the FindRecord action instead. Standard object types include: people, companies, deals, users, workspaces. If you get a 404 error, verify the object type exists using the List Objects action first. Response attribute values are returned as arrays of time-bounded objects under a `values` map (e.g., `values\['name'\]`), not simple scalars — handle arrays, nested objects, and empty arrays accordingly. Select attributes are accessed via `option.title`; currency, stage, and select fields may be null or empty arrays. Access records via `data.data` in the response.
Input parameters
Maximum number of records to return Maximum is ~500. Check `has_more` in the response to detect additional pages; increment `offset` by `limit` to retrieve subsequent pages.
Number of records to skip for pagination
The type/slug of object to list records for (also accepts 'object_id' as an alias). Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'. You can also use custom object types from your workspace. Use the List Objects action to discover all available object types.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_THREADSTool to list threads of comments on a record or list entry in Attio. Use when you need to view all comment threads associated with a specific record or list entry. Threads contain one or more comments sorted chronologically.
Input parameters
The list (slug or ID) to filter threads by. Must be provided together with 'entry_id'. Use this to view threads on list entries.
Maximum number of threads to return. Default is 10, maximum is 50.
The object type (slug or ID) to filter threads by. Must be provided together with 'record_id'. Examples: 'people', 'companies', 'deals'.
Number of results to skip over before returning. Default is 0. Used for pagination.
UUID of the specific list entry to filter threads by. Must be provided together with 'list'. Use this to view threads on a particular list entry.
UUID of the specific record to filter threads by. Must be provided together with 'object'. Use this to view threads on a particular record.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_USER_RECORD_ENTRIESTool to list all entries across all lists for which a user record is the parent in Attio. Use when you need to see which lists a particular user record belongs to. Returns list information and entry IDs for each list the user appears in.
Input parameters
Maximum number of results to return. Default is 100, maximum is 1000
Number of results to skip over before returning. Default is 0
A UUID identifying the user record
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_USER_RECORDSTool to list user records in Attio with optional filtering and sorting. Use when you need to retrieve workspace members or user records based on specific criteria.
Input parameters
Maximum number of user records to return. Defaults to 500.
Array of sort specifications to order results. Each sort object specifies direction ('asc'/'desc'), attribute, and optionally field or path.
An object used to filter results to a subset of user records. Supports Attio filter syntax with operators like $eq, $not_empty, $in, $contains, etc.
Number of user records to skip for pagination. Defaults to 0.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_WEBHOOKSTool to get all webhooks in your Attio workspace. Use when you need to retrieve a list of configured webhooks, their subscriptions, and statuses. Supports pagination via limit and offset parameters.
Input parameters
The maximum number of results to return, between 10 and 100, defaults to 10. See the full guide to pagination in Attio documentation.
The number of results to skip over before returning, defaults to 0. See the full guide to pagination in Attio documentation.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_WORKSPACE_MEMBERSTool to list workspace members (actors) so agents can reliably assign owners and resolve workspace-member IDs even when the optional Users standard object is disabled. Use when writing or assigning actor-reference attributes (e.g., record/list entry owners) that require referenced_actor_type=workspace-member and an actor id.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_WORKSPACE_RECORD_ATTRIBUTE_VALUESTool to retrieve all values for a specified attribute on a workspace record in Attio. Use when you need to see the history of values for a specific attribute on a workspace record. Can return only active values or include all historical values sorted chronologically.
Input parameters
Maximum number of results to return for pagination
Number of results to skip before returning
The API slug of the attribute (e.g., 'name', 'workspace_id', 'users', 'company', 'avatar_url', 'created_at', 'created_by')
A UUID identifying the workspace record
If true, returns all historic values for the attribute. If false, returns only currently active value(s). Defaults to false
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_WORKSPACE_RECORD_ENTRIESTool to list all entries across all lists for which a workspace record is the parent in Attio. Use when you need to see which lists a particular workspace record belongs to. Returns list information and entry IDs for each list the workspace appears in.
Input parameters
Maximum number of results to return. Default is 100, maximum is 1000
Number of results to skip over before returning. Default is 0
A UUID identifying the workspace record
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_LIST_WORKSPACE_RECORDSTool to list workspace records with filtering and sorting options. Use when you need to retrieve workspace-level records from Attio. Records are returned based on the filters and sorts provided. Requires record_permission:read and object_configuration:read scopes.
Input parameters
Maximum number of results to return. Defaults to 500
Array of sort objects to order results by attributes or paths
Filter object to subset records. Supports operators like $and, $or, $eq, $ne, $in, $nin, etc. Example: {'$and': \[{'attribute_slug': {'$eq': 'value'}}, {'another_slug': {'$ne': 'other'}}\]} Refer to Attio's filter syntax documentation for advanced queries.
Number of results to skip over before returning. Defaults to 0
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PATCH_RECORDTool to update people, companies, and other records by record_id using PATCH method. For multiselect attributes, values supplied will be prepended to existing values. Use PUT endpoint to overwrite or remove multiselect values.
Input parameters
A UUID or slug of the object the record belongs to. Standard object types include 'people', 'companies', 'deals'. You can also use custom object slugs from your workspace.
Attribute values keyed by api_slug or attribute_id. Single value for single-select, array for multiselect. PATCH behavior: multiselect values are PREPENDED to existing values. Use PUT endpoint to overwrite/remove. Type formats: text/number (plain string or number), select/status ('Option Title' string), multiselect (\['Option 1', 'Option 2'\]), currency {'currency_value', 'currency_code'}, date 'YYYY-MM-DD', personal-name {'first_name', 'last_name', 'full_name'}, email {'email_address'}, phone {'original_phone_number', 'country_code'}, record-reference {'target_record_id', 'target_object'}, domain ('example.com' or {'domain': '...'}).
A UUID of the record to update.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PATCH_V2_LISTS_LIST_ENTRIES_ENTRY_IDTool to update list entries by entry_id in Attio. Use when you need to modify attribute values on existing list entries. For multiselect attributes, the values supplied will be created and prepended to existing values. Use the PUT endpoint to overwrite or remove multiselect attribute values.
Input parameters
A UUID or slug of the list the list entry belongs to
A UUID of the list entry to update
An object with an attribute `api_slug` or `attribute_id` as the key, and a single value (for single-select attributes), or an array of values (for single or multi-select attributes) as the values. For multiselect attributes, the values supplied will be created and prepended to the list of values that already exist (if any)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PEOPLE_GET_PERSONTool to get a single person record by its record_id in Attio. Use when you need to retrieve detailed information about a specific person. Returns all attribute values for the person with temporal and audit metadata.
Input parameters
UUID identifying the person record to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PEOPLE_LIST_PERSONSTool to list person records from Attio with optional filtering and sorting. Use when you need to retrieve people based on specific criteria or get a paginated list of all people.
Input parameters
Maximum number of records to return. Defaults to 500.
Array of sort specifications to order results. Each sort object specifies direction ('asc'/'desc'), attribute, and optionally field or path.
Attio filter object for server-side filtering. Supports shorthand and verbose syntax. IMPORTANT: Filter by attribute slugs (e.g., 'name', 'email_addresses'), NOT sub-properties directly. Multi-field attributes like 'name' have sub-properties (first_name, last_name, full_name) accessed via nested syntax: {'name': {'first_name': {'$eq': 'John'}}}. Do NOT use {'first_name': 'John'} - first_name is not a top-level attribute. CRITICAL: All operators must include the '$' prefix (e.g., $eq, NOT 'eq'). OPERATOR SUPPORT BY ATTRIBUTE TYPE: - Text: $eq, $not_empty, $in, $contains, $starts_with, $ends_with, $and, $or, $not - Email-address sub-properties (email_address, email_domain, etc.): $eq, $contains, $starts_with, $ends_with. Note: $not_empty is NOT supported for email-address sub-properties. - Personal-name sub-properties: $eq and string operators on first_name, last_name, full_name - Numeric/Date: $eq, $not_empty, $in, $lt, $lte, $gt, $gte, $and, $or, $not Examples: {'name': 'John'} for shorthand, {'name': {'last_name': {'$contains': 'Smith'}}} for nested, {'email_addresses': {'email_address': {'$eq': 'user@example.com'}}} for exact email match.
Number of records to skip for pagination. Defaults to 0.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_POST_V2_LISTS_LIST_ENTRIESTool to add a record to a list as a new list entry in Attio. Use when you need to organize records into specific lists. This endpoint will throw on conflicts of unique attributes. Multiple list entries are allowed for the same parent record.
Input parameters
The UUID or slug identifying the list that the created list entry should belong to
An object with an attribute `api_slug` or `attribute_id` as the key, and a single value (for single-select attributes), or an array of values (for single or multi-select attributes) as the values. For complete documentation on values for all attribute types, please see Attio's attribute type docs
A UUID or slug identifying the object that the added parent record belongs to
A UUID identifying the record you want to add to the list. The record will become the 'parent' of the created list entry
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_POST_V2_LISTS_LIST_ENTRIES_QUERYTool to list entries in a given list, with the option to filter and sort results. Use when you need to retrieve records that belong to a specific list with optional filtering and sorting.
Input parameters
A UUID or slug identifying the list to retrieve entries from
The maximum number of results to return. Defaults to 500.
An array of sort objects used to sort results. Each descriptor must contain direction ('asc' or 'desc') and either attribute or path.
Filter object using list-specific attribute slugs (NOT parent object attributes). Use ATTIO_LIST_ATTRIBUTES with target='lists' to discover valid attribute slugs for this list. Supports shorthand syntax (e.g., {'attribute_slug': 'value'}) for simple equality or verbose syntax with operators like $eq, $not_empty, $in, $contains, $lt, $gt. See https://docs.attio.com/rest-api/how-to/filtering-and-sorting for complete syntax.
The number of results to skip over before returning. Defaults to 0.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_POST_V2_OBJECTS_OBJECT_RECORDSDEPRECATED: Use ATTIO_CREATE_RECORD instead. Creates a new person, company or other record. This endpoint will throw on conflicts of unique attributes. If you would prefer to update records on conflicts, please use the Assert record endpoint instead.
Input parameters
The UUID or slug identifying the object the created record should belong to.
An object with an attribute `api_slug` or `attribute_id` as the key, and a single value (for single-select attributes), or an array of values (for single or multi-select attributes) as the values. For complete documentation on values for all attribute types, please see the Attio attribute type documentation. Example: {'name': \[{'first_name': 'John', 'last_name': 'Doe', 'full_name': 'John Doe'}\], 'email_addresses': \[{'email_address': 'john@example.com'}\]}
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_POST_V2_OBJECTS_OBJECT_RECORDS_QUERYTool to list people, company or other records in Attio with the option to filter and sort results. Use when you need to retrieve records based on complex filter criteria or sorting requirements.
Input parameters
Maximum number of records to return. Common values up to 500.
Array of sort specifications to order results. Each sort object specifies direction ('asc'/'desc'), attribute, and optionally field or path. IMPORTANT: 'updated_at' is NOT a valid attribute - use 'created_at' or call List Attributes to discover valid sortable attributes.
Attio filter object. Supports shorthand, verbose, and path-based filtering. IMPORTANT: Filter by attribute slugs (e.g., 'name', 'email_addresses'), NOT sub-properties directly. Use ATTIO_LIST_ATTRIBUTES to discover correct slugs - names may differ from display titles (e.g., 'company' not 'companies'). Multi-field attributes like 'name' have sub-properties (first_name, last_name, full_name) accessed via nested syntax: {'name': {'first_name': {'$eq': 'John'}}}. Do NOT use {'first_name': 'John'} - first_name is not a top-level attribute. TIMESTAMP/DATE: 'created_at' is the standard timestamp attribute. CRITICAL: 'updated_at' is NOT valid in Attio. Use $eq/$gt/$gte/$lt/$lte on timestamp attributes: {'created_at': {'$gte': '2024-01-01T00:00:00.000Z'}}. INTERACTION ATTRIBUTES (e.g., 'last_email_interaction', 'last_calendar_interaction'): Properties: owner_member_id ($eq/$not_empty), interacted_at ($eq/$gte/$gt/$lte/$lt - requires ISO8601, NOT $not_empty), interaction_type ($eq/$not_empty). RECORD-REFERENCE: Use attribute slug with target_object and target_record_id: {'company': {'target_object': 'companies', 'target_record_id': 'id'}}. Use singular slug (e.g., 'company' not 'companies'). PATH-BASED FILTERING: {'path': \[\[object_slug, attribute_slug\], ...\], 'constraints': {property: value}}. Path is an array of \[object_slug, attribute_slug\] pairs; constraints apply to the final attribute. Operators: $eq, $not_empty, $in, $contains, $starts_with, $ends_with, $lt/$lte/$gt/$gte, $and/$or/$not. CRITICAL: All operators MUST include the $ prefix (use $gte, NOT gte).
The object slug or UUID to query records from (e.g., 'people', 'companies', or custom object UUID). Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'.
Number of records to skip for pagination
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_POST_V2_OBJECTS_RECORDS_SEARCHDEPRECATED: Use ATTIO_SEARCH_RECORDS instead. Tool to fuzzy search for records across one or more objects in Attio. Use when you need to find records by name, domain, email, phone number, or social handle. This endpoint is in beta and returns eventually consistent results. For results guaranteed to be up to date, use the record query endpoint instead.
Input parameters
Maximum number of results to return. Defaults to 25. Range: 1-25.
Query string to search for (max 256 characters). An empty string returns a default set of results. Matches names, domains, emails, phone numbers and social handles on people and companies, and labels on all other objects.
Specifies which objects to filter results by. At least one object must be specified. Accepts object slugs or IDs.
Specifies the context in which to perform the search. Use 'workspace' to return all search results or specify a workspace member to limit results to what one specific person in your workspace can see.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PUT_V2_LISTS_LIST_ENTRIESTool to create or update a list entry for a given parent record in Attio. If an entry with the specified parent record is found, that entry will be updated. If no such entry is found, a new entry will be created instead. For multiselect attributes, all values will be either created or deleted as necessary to match the list of values supplied in the request.
Input parameters
A UUID or slug of the list the list entry belongs to.
An object with an attribute api_slug or attribute_id as the key, and a single value (for single-select attributes), or an array of values (for single or multi-select attributes) as the values. For multiselect attributes, all values will be either created or deleted as necessary to match the list of values supplied.
A UUID or slug identifying the object that the added parent record belongs to.
A UUID identifying the record you want to add to the list. The record will become the 'parent' of the created list entry.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PUT_V2_LISTS_LIST_ENTRIES_ENTRY_IDTool to update list entries by entry_id in Attio using PUT method. Use when you need to completely replace attribute values on existing list entries. For multiselect attributes, the values supplied will overwrite/remove the list of values that already exist (if any). Use the PATCH endpoint to add multiselect attribute values without removing those that already exist.
Input parameters
A UUID or slug of the list the list entry belongs to
A UUID of the list entry to update
An object with an attribute `api_slug` or `attribute_id` as the key, and a single value (for single-select attributes), or an array of values (for single or multi-select attributes) as the values. For multiselect attributes, the values supplied will overwrite/remove the list of values that already exist (if any). Use the PATCH endpoint to add multiselect attribute values without removing those that already exist.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PUT_V2_OBJECTS_OBJECT_RECORDSTool to create or update people, companies and other records in Attio using a matching attribute. Use when you want to avoid duplicate records - if a record with the same value for the matching attribute is found, it will be updated; otherwise a new record is created. If you want to avoid matching and always create new records, use the Create Record endpoint instead.
Input parameters
A UUID or slug to identify the object the record should belong to. Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'. You can also use custom object types from your workspace.
An object with an attribute api_slug or attribute_id as the key, and a single value (for single-select attributes), or an array of values (for single or multi-select attributes) as the values. For complete documentation on values for all attribute types, please see Attio's attribute type docs. Examples of value formats by attribute type: TEXT/NUMBER: 'Text value' or 123, EMAIL: \[{'email_address': 'test@example.com'}\], PERSONAL-NAME: \[{'first_name': 'Test', 'last_name': 'User', 'full_name': 'Test User'}\], DOMAIN: \[{'domain': 'example.com'}\], SELECT: \['Select option 1', 'Select option 2'\], RECORD-REFERENCE: \[{'target_object': 'people', 'target_record_id': 'uuid'}\]
The ID or slug of the attribute to use to check if a record already exists. The attribute must be unique. If a record is found with the same value for the matching attribute, that record will be updated. If no record with the same value for the matching attribute is found, a new record will be created instead. IMPORTANT: For multiselect matching attributes, new values will be added and existing values will not be deleted. For any other multiselect attribute, all values will be either created or deleted as necessary to match the list of supplied values.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_PUT_V2_OBJECTS_OBJECT_RECORDS_RECORD_IDTool to update people, companies, and other records by record_id using PUT method. For multiselect attributes, values supplied will overwrite/remove existing values. Use PATCH endpoint to append without removing.
Input parameters
A UUID or slug of the object the record belongs to. Standard object types include 'people', 'companies', 'deals'. You can also use custom object slugs from your workspace.
Attribute values keyed by api_slug or attribute_id. Single value for single-select, array for multiselect. PUT behavior: multiselect values OVERWRITE/REMOVE existing values. Use PATCH endpoint to append without removing. Type formats: text/number (plain string or number), select/status ('Option Title' string), multiselect (\['Option 1', 'Option 2'\]), currency {'currency_value', 'currency_code'}, date 'YYYY-MM-DD', personal-name {'first_name', 'last_name', 'full_name'}, email {'email_address'}, phone {'original_phone_number', 'country_code'}, record-reference {'target_record_id', 'target_object'}, domain ('example.com' or {'domain': '...'}).
A UUID of the record to update.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_QUERY_RECORDSTool to query records for a specific Attio object using server-side filtering operators and sorting. Use when you need to retrieve records based on complex filter criteria (e.g., 'get all agreements where product=X and status in Y') rather than simple listing or ID-based lookup. This avoids downloading large pages and filtering locally, which is slow and costly.
Input parameters
Maximum number of records to return. Common values up to 500.
Array of sort specifications to order results. Each sort object specifies direction ('asc'/'desc'), attribute, and optionally field or path.
Attio filter object for server-side filtering. IMPORTANT: Always filter by attribute slugs (e.g., 'name', 'email_addresses'), NEVER by sub-properties directly at the top level. TIMESTAMP FILTERS: All timestamp comparisons MUST use ISO8601 string format (e.g., '2024-01-01T00:00:00.000Z'). Example: {'created_at': {'$gte': '2024-01-01T00:00:00.000Z'}}. PERSONAL-NAME: 'name' sub-properties (first_name, last_name, full_name) MUST be nested under 'name'. Correct: {'name': {'first_name': {'$contains': 'John'}, 'last_name': {'$contains': 'Smith'}}}. WRONG: {'first_name': {...}} - fails with 'unknown_filter_attribute_slug'. Shorthand: {'name': 'John Smith'}. EMAIL: email_addresses supports $eq, $contains, $starts_with, $ends_with (NOT $not_empty). INTERACTION (e.g., 'last_email_interaction'): Properties: owner_member_id ($eq/$not_empty), interacted_at ($eq/$gte/$gt/$lte/$lt with ISO8601), interaction_type ($eq/$not_empty). RECORD-REFERENCE: {'company': {'target_object': 'companies', 'target_record_id': '<uuid>'}}. Multiple: {'company': {'target_object': 'companies', 'target_record_id': {'$in': \['<uuid1>', '<uuid2>'\]}}}. Path-based: {'path': \[\['companies', 'team'\], \['people', 'name'\]\], 'constraints': {'first_name': {'$eq': 'John'}}}. OPERATORS: $eq, $not_empty (varies by type), $in, $contains, $starts_with, $ends_with, $lt/$lte/$gt/$gte, $and/$or/$not.
The object slug or UUID to query records from (e.g., 'people', 'companies', or custom object UUID). Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'.
Number of records to skip for pagination
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_SEARCH_RECORDSTool to fuzzy search for records across multiple objects in Attio. Use when you need to find records by name, domain, email, phone number, or social handle. This endpoint is in beta and returns eventually consistent results. Matching strategy follows the in-product search approach.
Input parameters
Maximum number of results to return. Range: 1-25
Query string to search for. An empty string returns a default set of results. Maximum 256 characters
Specifies which objects to filter results by. At least one object must be specified. Accepts object slugs or IDs
Specifies the context for the search request. Can be workspace or workspace-member
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_ATTRIBUTETool to update an existing attribute by its attribute_id or slug. Use when you need to modify attribute properties such as title, description, validation rules, or configuration settings.
Input parameters
The data object containing the attribute fields to update. At least one field (title, description, api_slug, is_required, is_unique, default_value, config, or is_archived) must be provided.
Whether the attribute is on an object or a list.
A UUID or slug to identify the attribute.
A UUID or slug to identify the object or list the attribute belongs to.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_COMPANYTool to update a company record in Attio by its record_id. Use when you need to modify company attributes like name, description, domains, or team. For multiselect attributes, values are prepended to existing values. Note: logo_url cannot be updated via API.
Input parameters
Attribute values to update on the company record. Keys are attribute slugs; values are arrays of value objects. Type formats: text/number {'value': x}, currency {'currency_value', 'currency_code'}, date {'value': 'YYYY-MM-DD'}, domain {'domain': '...'} (do NOT include 'root_domain'), select/status {'option': 'Title'} (must match workspace options; use List Attributes to discover), email {'email_address': '...'}, phone {'original_phone_number', 'country_code'}, record-reference {'target_record_id', 'target_object'}, location (address string or object). For multiselect, values are prepended (not replaced). logo_url cannot be updated via API.
The UUID identifying the company record to update
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_DEAL_RECORDTool to update an existing deal record in Attio by record ID. Uses PATCH to partially update only the provided fields, leaving other fields unchanged.
Input parameters
Attribute values to update on the deal record. Keys are attribute slugs; values are arrays. Type formats: text/number use plain strings, currency {'currency_value': N}, select/status use plain string (recommended) or {'option'/'status': 'Title'}, actor-reference use email string or {'workspace_member_email_address': '...'} (use ATTIO_LIST_WORKSPACE_MEMBERS for valid emails), record-reference {'target_object': '...', 'target_record_id': 'uuid'}. Auto-correction: {'value': '...'} is auto-converted to a plain string.
A UUID of the deal record to update
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_ENTRYDEPRECATED: Use ATTIO_ATTIO_PATCH_V2_LISTS_LIST_ENTRIES_ENTRY_ID instead. Tool to update list entries by their ID in Attio. Use when you need to modify attribute values on existing list entries. When multiselect attributes are included, the values supplied will be prepended to existing values.
Input parameters
A UUID or slug identifying the list containing the entry
A UUID identifying the specific list entry to update
Attribute values to update. Field values organized by attribute slug or ID. For multiselect attributes, values will be prepended to existing values
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_LISTTool to update an existing list in Attio. Use when you need to modify list properties like name, api_slug, or permissions. Lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level. Changing the parent object of a list is not possible through the API.
Input parameters
A UUID or slug to identify the list to update
The human-readable name of the list
A unique, human-readable slug to access the list through API calls. Should be formatted in snake case
The level of access granted to all members of the workspace for this list. Pass null to keep the list private and only grant access to specific workspace members. Note: Lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level
The level of access granted to specific workspace members for this list. Pass an empty array to grant access to no workspace members. Note: Lists must have either workspace_access set to 'full-access' or one or more workspace_member_access with 'full-access' level
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_OBJECTTool to update a single object's configuration in Attio. Use when you need to modify an object's API slug, singular noun, or plural noun. Standard objects (people, companies, deals, users, workspaces) and custom objects can be updated.
Input parameters
The object data to update. Provide at least one of api_slug, singular_noun, or plural_noun.
A UUID or slug to identify the object to update. Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'. You can also use custom object types from your workspace.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_PERSONTool to update a person record in Attio by its record_id. Use when you need to modify person attributes like name, email, job title, or phone numbers. For multiselect attributes, values are prepended to existing values. Note: avatar_url cannot be updated via API.
Input parameters
Attribute values to update on the person record. Keys are attribute slugs; values are arrays of value objects. Type formats: text/number {'value': x}, personal-name {'first_name', 'last_name', 'full_name'}, email {'email_address': '...'}, phone {'original_phone_number', 'country_code'}, currency {'currency_value', 'currency_code'}, date {'value': 'YYYY-MM-DD'}, select/status {'option': 'Title'} (must match workspace options; use List Attributes to discover), record-reference {'target_record_id', 'target_object'}, location (address string or object). For multiselect, values are prepended (not replaced); use Assert Person to overwrite. avatar_url cannot be updated via API.
The UUID identifying the person record to update
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_RECORDThis tool updates an existing record in Attio for a specified object type (people, companies, deals, users, workspaces, etc.). It uses PATCH to partially update only the provided fields, leaving other fields unchanged.
Input parameters
Attribute values to update on the record. Keys are attribute slugs; values are arrays. Type formats: text/number/date use plain strings, currency {'currency_value': N}, select/status use plain string (recommended) or {'option'/'status': 'Title'}, personal-name {'first_name', 'last_name', 'full_name'}, email {'email_address': '...'}, phone {'original_phone_number', 'country_code'}, actor-reference use email string or {'workspace_member_email_address': '...'} (use ATTIO_LIST_WORKSPACE_MEMBERS for valid emails), record-reference {'target_object': '...', 'target_record_id': 'uuid'}. Auto-correction: {'value': '...'} is auto-converted to a plain string.
The unique identifier of the record to update
The type of object to update. Standard object types include 'people', 'companies', 'deals', 'users', 'workspaces'. You can also use custom object types from your workspace.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_SELECT_OPTIONTool to update an existing select option for a select or multiselect attribute in Attio. Use when you need to rename an option or archive it. Archived options are hidden from selection but preserve historical data for records that used them.
Input parameters
The fields to update on the select option
A UUID or select option title to identify the select option to update
Whether the attribute is on an object or a list.
A UUID or slug to identify the select or multiselect attribute
A UUID or slug to identify the object or list the select attribute belongs to
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_STATUSTool to update a status on a status attribute on either an object or a list in Attio. Use when you need to modify status properties like title, celebration settings, target time, or archive status. Company and person objects do not support status attributes at this time.
Input parameters
The status data to update. At least one field must be provided.
A UUID or status title to identify the status to update
Whether the attribute is on an object or a list. Note that company and person objects do not support status attributes at this time.
A UUID or slug to identify the attribute to update the status on
A UUID or slug to identify the object or list the status attribute belongs to
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_TASKTool to update an existing task in Attio by its task_id. Use when you need to modify a task's deadline, completion status, linked records, or assignees. Only these four fields can be updated via this endpoint.
Input parameters
The fields to update. Only deadline_at, is_completed, linked_records, and assignees can be updated.
The ID of the task to update.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_USER_RECORDTool to update a user record in Attio by its record_id. Use when you need to modify user attributes like user_id, primary_email_address, person, or workspace references. Attributes not included in the request will remain unchanged.
Input parameters
The attribute values to update on the user record. Each key is an attribute slug, and values are arrays of attribute value objects. Attributes that are not included in the request body will not be changed. Common user attributes include: user_id, primary_email_address, person, workspace. Different attribute types require different value structures: (1) Text fields (e.g., user_id): use \[{'value': 'text'}\]. (2) Email fields (e.g., primary_email_address): use \[{'email_address': 'user@example.com'}\]. (3) Record-reference fields (e.g., person, workspace): use \[{'target_record_id': 'uuid', 'target_object': 'people'}\].
The ID of the user record to update
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_WEBHOOKTool to update a webhook's target URL and/or event subscriptions. Use when you need to modify an existing webhook configuration in Attio.
Input parameters
URL where the webhook events will be delivered to. Must be an HTTPS URL.
A UUID which identifies the webhook.
One or more events the webhook is subscribed to. Each subscription contains an event type and optional filter conditions.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ATTIO_UPDATE_WORKSPACE_RECORDTool to update a workspace record by ID using PATCH method. Only the attributes provided in the request will be updated; other attributes remain unchanged.
Input parameters
The attribute values to update on the workspace record. Only the attributes included will be updated; other attributes will remain unchanged. Common workspace attributes include: (1) 'name': workspace name as a text field, e.g., {"name": \[{"value": "Updated Workspace Name"}\]}. (2) 'workspace_id': workspace identifier. (3) 'users': record references to user records. (4) 'company': record reference to a company record. (5) 'avatar_url': URL to workspace avatar image. Each attribute requires an array of value objects with attribute-type-specific fields.
The UUID of the workspace record to update
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 85 agents privately built on Nagent that already use Attio.
Build on Nagent
Connect Attio to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Attio, and click "Connect Now." You'll authenticate with OAuth — Nagent handles credential storage and refresh automatically. Once connected, Attio is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Attio is connected, you configure its 108 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Attio steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Attio event fires, the agent kicks off automatically.
Every Attio action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Attio ships with 108 pre-built crm actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Attio together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Attio-based workflows tailored to your business.