Attio
Service domainCRM
Arcade Optimized
Arcade tools designed for LLMs to interact with Attio CRM
20tools
Attio is a CRM platform; this toolkit lets LLMs interact with Attio workspaces to read, write, and organize CRM data across records, lists, tasks, meetings, and call transcripts.
Capabilities
- Workspace discovery & schema inspection — enumerate objects (people, companies, deals, custom objects), retrieve attribute schemas with filter hints, list workspace members, and resolve the authenticated user's identity and permissions.
- Record management — create, update, upsert (assert), and query records across any object type, with support for structured field types (status, date, nested personal-name/location fields).
- List operations — list all Attio lists, retrieve paginated entries, and add or remove records from lists including setting list-specific entry attributes.
- Notes & tasks — attach notes to records for activity logging and create tasks with optional record linkage for follow-ups and reminders.
- Meetings & call transcripts — list meetings linked to any record, retrieve meeting metadata and recording info, and fetch full call transcripts with speaker labels, duration, and participant details — including a single-step convenience tool for deals.
OAuth
This toolkit authenticates via OAuth 2.0 with Attio as the provider. See the Arcade Attio auth provider docs for configuration details.
Available tools(20)
20 of 20 tools
Operations
Behavior
| 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 update the record by that ID. | |||
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.
For upsert (create or update) behavior, match on a unique attribute instead.
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": "jane | |||
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
that has a call recording, along with its call_recording_id.
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 finding the deal's meetings and fetching a 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 the call_recording_id together with the meeting_id to fetch the call transcript. | |||
Get the schema/attributes for an Attio object.
Call this to see an object's attributes before filtering its records. 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: find the object type and its attribute API slugs, then query with those slugs
as fields. | |||
Remove a record from an Attio list.
Note: Use the entry_id of the record's entry in the list, not the record_id. | |||
Update a record directly by ID.
Use this when you have the record_id and want to update specific fields.
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. |
Last updated on