Attio

Learn how to use Attio with Composio

Overview

SLUG: ATTIO

Description

Attio is a fully customizable workspace for your team’s relationships and workflows.

Authentication Details

client_id
stringRequired
client_secret
stringRequired
full
stringDefaults to https://api.attio.com/v2Required
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to task:read-write,object_configuration:read,record_permission:read,user_management:read,list_configuration:read,list_entry:read,comment:read-write

Connecting to Attio

Create an auth config

Use the dashboard to create an auth config for the Attio toolkit. This allows you to connect multiple Attio accounts to Composio for agents to use.

1

Select App

Navigate to Attio.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Attio Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4attio_auth_config_id = "ac_YOUR_ATTIO_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Attio: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, attio_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Attio toolkit’s playground

For code examples, see the Tool calling guide and Provider examples.

Tool List

Tool Name: Create Attribute

Description

Tool 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.

Action Parameters

api_slug
stringRequired
config
objectRequired
default_value
description
identifier
stringRequired
is_multiselect
booleanRequired
is_required
booleanRequired
is_unique
booleanRequired
relationship
target
stringRequired
title
stringRequired
type
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Entry

Description

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.

Action Parameters

entry_values
list_id
stringRequired
parent_object
stringRequired
parent_record_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Note

Description

This 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.

Action Parameters

content
stringRequired
created_at
parent_object
stringRequired
parent_record_id
stringRequired
title
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Record

Description

Creates a new record in Attio for a specified object type (people, companies, deals, users, workspaces, or custom objects). **PREREQUISITE**: Before using this action, you MUST call ATTIO_LIST_ATTRIBUTES (target='objects', identifier=<object_type>) to discover the valid attribute slugs for your target object type. DO NOT guess attribute names. **Object-specific attributes (common examples)**: - 'people': name, email_addresses, phone_numbers, primary_location, job_title, company - 'companies': name, domains, description, primary_location, team - 'deals': name, owner, stage, value, associated_company, associated_people (NOT 'company') - 'users': primary_email_address, user_id, person, workspace - Custom objects: Attributes vary by workspace - always use List Attributes to discover them. Note: Attribute slugs differ between object types even for similar concepts (e.g., 'company' on people vs 'associated_company' on deals).

Action Parameters

object_type
stringRequired
values
objectRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Entry

Description

Tool to delete a single list entry by its entry_id in Attio. Use when you need to remove a record from a list. The operation is permanent and cannot be undone.

Action Parameters

entry_id
stringRequired
list_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Note

Description

This 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.

Action Parameters

note_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Record

Description

This tool allows you to delete a record from Attio permanently. The deletion is irreversible, and the data will eventually be removed from the system.

Action Parameters

object_type
stringRequired
record_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Find Record

Description

This 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.

Action Parameters

attributes
limit
Defaults to 500
object_id
stringRequired
offset
record_id

Action Response

data
arrayRequired
error
pagination
successful
booleanRequired

Tool Name: Get Object Details

Description

This tool retrieves detailed information about a specific object type in Attio, including its identifier, API slug, singular and plural nouns, and creation timestamp.

Action Parameters

object_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Record

Description

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.

Action Parameters

object_type
stringRequired
record_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Attributes

Description

Tool 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.

Action Parameters

identifier
stringRequired
limit
offset
show_archived
target
stringRequired

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List Entries

Description

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.

Action Parameters

filter
limit
Defaults to 500
list_id
stringRequired
offset
sorts

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List List Entries

Description

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.

Action Parameters

filter
limit
Defaults to 500
list
stringRequired
offset
sorts

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List Lists

Description

This tool retrieves all lists available in the Attio workspace. The lists are returned sorted as they appear in the sidebar. This tool is essential for managing and navigating lists, and is a prerequisite for many list-related operations. It requires the list_configuration:read permission scope.

Action Parameters

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List Notes

Description

This tool lists all notes associated with a specific record in Attio. Notes are returned in reverse chronological order (newest first).

Action Parameters

limit
Defaults to 50
parent_object
stringRequired
parent_record_id
stringRequired

Action Response

data
arrayRequired
error
pagination
successful
booleanRequired

Tool Name: List Objects

Description

This tool retrieves a list of all available objects (both system-defined and user-defined) in the Attio workspace. It makes a GET request to the /v2/objects endpoint and returns a JSON response containing key metadata about each object, which is fundamental for understanding and accessing the workspace's structure.

Action Parameters

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Record Attribute Values

Description

Tool 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.

Action Parameters

attribute
stringRequired
limit
object_type
stringRequired
offset
record_id
stringRequired
show_historic

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List Record Entries

Description

Tool to list all entries across all lists for which a record is the parent in Attio. Use when you need to see which lists a particular record belongs to. Returns list information and entry IDs for each list the record appears in.

Action Parameters

limit
Defaults to 100
object_type
stringRequired
offset
record_id
stringRequired

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List Records

Description

This tool lists records from a specific object type in Attio. It provides simple pagination support and returns records in the order they were created. 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.

Action Parameters

limit
Defaults to 20
object_type
stringRequired
offset

Action Response

data
arrayRequired
error
pagination
successful
booleanRequired

Tool Name: List Workspace Members

Description

Tool 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.

Action Parameters

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: Query Records

Description

Tool 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.

Action Parameters

filter
limit
Defaults to 500
object
stringRequired
offset
sorts

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: Search Records

Description

Tool 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.

Action Parameters

limit
Defaults to 25
objects
arrayRequired
query
stringRequired
request_as
Required

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: Update Attribute

Description

Tool to update a single attribute on a given object or list in Attio. Use when you need to modify attribute properties like title, description, validation rules, or configuration. Cannot modify system attributes. To archive an attribute, set is_archived to true.

Action Parameters

api_slug
attribute
stringRequired
config
default_value
description
identifier
stringRequired
is_archived
is_required
is_unique
target
stringRequired
title

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Entry

Description

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.

Action Parameters

entry_id
stringRequired
entry_values
objectRequired
list_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Record

Description

This 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.

Action Parameters

object_type
stringRequired
record_id
stringRequired
values
objectRequired

Action Response

data
objectRequired
error
successful
booleanRequired