Attio
Arcade tools designed for LLMs to interact with Attio CRM
Attio's Arcade toolkit enables LLMs to interact programmatically with Attio CRM, letting agents create, update, query, and manage records, lists, tasks, meetings, and call transcripts. It's optimized for workflow automation, idempotent upserts, and workspace-aware operations.
Capabilities
- CRUD and idempotent upsert semantics for records and list entries, with schema-aware field handling.
- Discover and query object schemas and records with pagination and nested-field filtering.
- Manage lists, tasks, workspace members, and permissions to orchestrate assignments and automations.
- Access meeting metadata and full call transcripts (speaker labels, segmented text, durations).
OAuth
- Provider: attio
- Scopes: call_recording:read, list_configuration:read-write, list_entry:read-write, meeting:read, note:read-write, object_configuration:read-write, record_permission:read-write, task:read-write, user_management:read
Available tools(20)
| Tool name | Description | Secrets | |
|---|---|---|---|
Add a record to an Attio list.
Optionally set list-specific attribute values via entry_values parameter. | |||
Create or update (upsert) a record using Attio's assert endpoint.
This is idempotent - safe to retry. If a record matching the attribute exists,
it will be updated. Otherwise, a new record is created.
IMPORTANT: The matching_attribute MUST be a unique attribute on the object.
Common unique attributes:
- people: 'email_addresses'
- companies: 'domains'
- deals: 'record_id' (name is NOT unique by default)
To update a deal by name, first query to get the record_id, then use update_record. | |||
Add a note to an Attio record.
Notes are useful for logging activities, meeting notes, and outreach history. | |||
Create a new record in Attio.
Always creates a new record — does not check for duplicates.
Use assert_record instead if you want upsert (create or update) behavior.
Example values for a deal:
{"name": "Acme Corp Deal", "stage": "Qualified"}
Example values for a person:
{"name": [{"first_name": "Jane", "last_name": "Doe"}],
"email_addresses": [{"email_address": "[email protected]"}]} | |||
Create a task in Attio.
Tasks are useful for follow-ups, reminders, and action items.
Optionally link to a record by providing both linked_record_id and linked_record_object. | |||
Get the full transcript from a call recording.
Returns the transcript with speaker labels. Use this after finding a meeting
with a call recording via list_record_meetings or get_meeting.
The transcript includes:
- Full raw transcript text
- Segmented transcript with speaker names
- Call duration and participant info | |||
Convenience tool to get a call transcript for a deal in one step.
Finds meetings for the deal, gets the specified meeting's call recording,
and returns the full transcript. Defaults to the most recent meeting.
This combines list_record_meetings + get_call_transcript into one call.
Returns an error if no meetings with recordings are found. | |||
Get entries from an Attio list with pagination.
Returns entries with their record IDs and flattened list-specific values. | |||
Get details of a specific meeting.
Returns meeting metadata and call recording info if available.
Use call_recording_id with get_call_transcript to fetch the transcript. | |||
Get the schema/attributes for an Attio object.
Call list_objects first to see available objects, then call this to see
their attributes for filtering. Returns attribute names, types, filter syntax hints,
and for select/status fields, the available option values to use in filters.
IMPORTANT: Location and personal-name fields require NESTED filter syntax. | |||
Get a single Attio record by ID.
Returns the record with flattened values and a direct web URL. | |||
Get all lists in the Attio workspace with pagination.
Returns list metadata including ID, name, and parent object type. | |||
List all objects (tables) in the Attio workspace.
CALL THIS FIRST to discover what objects exist. Standard objects include
'people', 'companies', 'deals', 'users'. Custom objects will also appear.
Returns object slugs (API names) and titles (display names). | |||
List meetings associated with an Attio record.
Returns meetings linked to a deal, company, or person including:
- Meeting ID and title
- Meeting type (e.g., 'Discovery', 'Demo')
- Start/end times
- Whether the meeting has a call recording
Use this to find meetings before fetching transcripts. | |||
Get tasks from Attio with optional filtering and pagination.
Can filter by assignee and/or completion status. | |||
Get all members in the Attio workspace.
Useful for task assignment and understanding who owns records. | |||
Query Attio records with filtering and pagination.
Workflow: 1) list_objects, 2) get_object_schema, 3) query_records with fields. | |||
Remove a record from an Attio list.
Note: Use the entry_id, not the record_id. Get entry_id from get_list_entries. | |||
Update a record directly by ID.
Use this when you have the record_id and want to update specific fields.
Unlike assert_record, this doesn't require a unique matching attribute.
For status fields like 'stage', pass the status title as a string:
{"stage": "Closed Won"}
For date fields, use ISO format:
{"close_date": "2024-01-15"} | |||
Get the authenticated user's profile and workspace context.
CALL THIS FIRST to understand your identity and permissions.
Returns the current user's name, email, and workspace membership info. |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
Attio.AddToList
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Add a record to an Attio list. Optionally set list-specific attribute values via entry_values parameter.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
list_id | string | Required | List UUID |
record_id | string | Required | Record UUID to add to the list |
entry_values | json | Optional | List-specific attribute values |
Requirements
Output
json— Created entry infoAttio.AssertRecord
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create or update (upsert) a record using Attio's assert endpoint. This is idempotent - safe to retry. If a record matching the attribute exists, it will be updated. Otherwise, a new record is created. IMPORTANT: The matching_attribute MUST be a unique attribute on the object. Common unique attributes: - people: 'email_addresses' - companies: 'domains' - deals: 'record_id' (name is NOT unique by default) To update a deal by name, first query to get the record_id, then use update_record.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
object_type | string | Required | The type of object to upsert a record for. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
matching_attribute | string | Required | Unique attribute for upsert match (e.g., 'email_addresses', 'domains') |
values | json | Required | Attribute values to set on the record |
Requirements
Output
json— Created or updated record infoAttio.CreateNote
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Add a note to an Attio record. Notes are useful for logging activities, meeting notes, and outreach history.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
parent_object | string | Required | The type of object to attach the note to. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
parent_record_id | string | Required | Record UUID to attach note to |
title | string | Required | Note title |
content | string | Required | Note body text |
format_type | string | Optional | Note format (default plaintext)plaintextmarkdown |
Requirements
Output
json— Created note infoAttio.CreateRecord
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a new record in Attio. Always creates a new record — does not check for duplicates. Use assert_record instead if you want upsert (create or update) behavior. Example values for a deal: {"name": "Acme Corp Deal", "stage": "Qualified"} Example values for a person: {"name": [{"first_name": "Jane", "last_name": "Doe"}], "email_addresses": [{"email_address": "[email protected]"}]}
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
object_type | string | Required | The type of object to create a record for. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
values | json | Required | Attribute values to set on the new record |
Requirements
Output
json— Created record info including record_id and web_urlAttio.CreateTask
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a task in Attio. Tasks are useful for follow-ups, reminders, and action items. Optionally link to a record by providing both linked_record_id and linked_record_object.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
content | string | Required | Task description |
assignee_id | string | Required | Workspace member UUID |
deadline | string | Required | Due date in ISO 8601 format |
linked_record_id | string | Optional | Record UUID to link to the task |
linked_record_object | string | Optional | The type of object to link to the task. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
Requirements
Output
json— Created task infoAttio.GetCallTranscript
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the full transcript from a call recording. Returns the transcript with speaker labels. Use this after finding a meeting with a call recording via list_record_meetings or get_meeting. The transcript includes: - Full raw transcript text - Segmented transcript with speaker names - Call duration and participant info
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
meeting_id | string | Required | Meeting UUID |
call_recording_id | string | Required | Call recording UUID |
include_timestamps | boolean | Optional | Include start/end times for each segment (default false) |
Requirements
Output
json— Call transcript with speaker labelsAttio.GetDealTranscript
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Convenience tool to get a call transcript for a deal in one step. Finds meetings for the deal, gets the specified meeting's call recording, and returns the full transcript. Defaults to the most recent meeting. This combines list_record_meetings + get_call_transcript into one call. Returns an error if no meetings with recordings are found.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
deal_record_id | string | Required | Deal record UUID |
meeting_index | integer | Optional | Which meeting (0=most recent, 1=second most recent, default 0) |
Requirements
Output
json— Call transcript for the specified deal meetingAttio.GetListEntries
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get entries from an Attio list with pagination. Returns entries with their record IDs and flattened list-specific values.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
list_id | string | Required | List UUID |
limit | integer | Optional | Max entries to return (default 25) |
offset | integer | Optional | Number of entries to skip (default 0) |
Requirements
Output
json— List entries with pagination infoAttio.GetMeeting
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get details of a specific meeting. Returns meeting metadata and call recording info if available. Use call_recording_id with get_call_transcript to fetch the transcript.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
meeting_id | string | Required | Meeting UUID |
Requirements
Output
json— Meeting details including call recording infoAttio.GetObjectSchema
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the schema/attributes for an Attio object. Call list_objects first to see available objects, then call this to see their attributes for filtering. Returns attribute names, types, filter syntax hints, and for select/status fields, the available option values to use in filters. IMPORTANT: Location and personal-name fields require NESTED filter syntax.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
object_type | string | Required | The type of object to get the schema for. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
Requirements
Output
json— Object schema with filterable attributes and their typesAttio.GetRecord
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get a single Attio record by ID. Returns the record with flattened values and a direct web URL.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
object_type | string | Required | The type of object to get a record for. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
record_id | string | Required | Record UUID |
Requirements
Output
json— Single record with flattened valuesAttio.ListLists
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get all lists in the Attio workspace with pagination. Returns list metadata including ID, name, and parent object type.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
limit | integer | Optional | Max lists to return (default 25) |
offset | integer | Optional | Number of lists to skip (default 0) |
Requirements
Output
json— Lists with pagination infoAttio.ListObjects
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List all objects (tables) in the Attio workspace. CALL THIS FIRST to discover what objects exist. Standard objects include 'people', 'companies', 'deals', 'users'. Custom objects will also appear. Returns object slugs (API names) and titles (display names).
Parameters
No parameters required.
Requirements
Output
json— List of all objects in the workspaceAttio.ListRecordMeetings
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List meetings associated with an Attio record. Returns meetings linked to a deal, company, or person including: - Meeting ID and title - Meeting type (e.g., 'Discovery', 'Demo') - Start/end times - Whether the meeting has a call recording Use this to find meetings before fetching transcripts.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
object_type | string | Required | The type of object to get meetings for. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
record_id | string | Required | Record UUID to get meetings for |
limit | integer | Optional | Max meetings to return (default 20) |
offset | integer | Optional | Number of meetings to skip (default 0) |
Requirements
Output
json— Meetings with pagination infoAttio.ListTasks
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get tasks from Attio with optional filtering and pagination. Can filter by assignee and/or completion status.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
assignee_id | string | Optional | Filter by assignee UUID |
is_completed | boolean | Optional | Filter by completion status |
limit | integer | Optional | Max tasks to return (default 25) |
offset | integer | Optional | Number of tasks to skip (default 0) |
Requirements
Output
json— Tasks with pagination infoAttio.ListWorkspaceMembers
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get all members in the Attio workspace. Useful for task assignment and understanding who owns records.
Parameters
No parameters required.
Requirements
Output
json— All workspace membersAttio.QueryRecords
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Query Attio records with filtering and pagination. Workflow: 1) list_objects, 2) get_object_schema, 3) query_records with fields.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
object_type | string | Required | The type of object to query. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
fields | array<string> | Required | Fields to return (call get_object_schema to see available fields) |
filter_json | string | Optional | JSON filter with operators: $eq, $contains, $gt, $lt |
sort_by | string | Optional | Attribute to sort by |
sort_direction | string | Optional | Sort direction (default desc)ascdesc |
limit | integer | Optional | Max records to return (default 25, max 100) |
offset | integer | Optional | Number of records to skip (default 0) |
Requirements
Output
json— Query results with pagination infoAttio.RemoveFromList
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Remove a record from an Attio list. Note: Use the entry_id, not the record_id. Get entry_id from get_list_entries.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
list_id | string | Required | List UUID |
entry_id | string | Required | Entry UUID (not record ID) |
Requirements
Output
json— Removal confirmationAttio.UpdateRecord
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Update a record directly by ID. Use this when you have the record_id and want to update specific fields. Unlike assert_record, this doesn't require a unique matching attribute. For status fields like 'stage', pass the status title as a string: {"stage": "Closed Won"} For date fields, use ISO format: {"close_date": "2024-01-15"}
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
object_type | string | Required | The type of object to update a record for. Standard object types are 'people', 'companies', and 'deals'. Custom object types are the API slug of the object. |
record_id | string | Required | Record UUID to update |
values | json | Required | Attribute values to update on the record |
Requirements
Output
json— Updated record infoAttio.WhoAmI
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the authenticated user's profile and workspace context. CALL THIS FIRST to understand your identity and permissions. Returns the current user's name, email, and workspace membership info.
Parameters
No parameters required.
Requirements
Output
json— Authenticated user profile and workspace context