← Back to all apps

Attio

Businessby Attio Ltd

Access your entire CRM directly from Claude. Look up contacts and companies, find decision makers, and discover email addresses. Log notes from calls and meetings, track engagement history, and create follow-up tasks with deadlines. Search and filter your pipeline by stage, funding round, role, or location. Tap into meeting intelligence—search call recordings, access transcripts, and surface key insights. Make Attio a seamless part of your AI workflow, so you can manage relationships and close deals faster without switching tools.

30ChatGPT Tools
23Claude Tools
Attio LtdDeveloper
BusinessCategory

Use Cases

productivity

Available Tools

Create comment

create-comment
Full Description

Creates a new comment on a record, list entry, or as a reply to an existing comment thread. Provide exactly one of: (parent_object + parent_record_id) for records, (parent_list + parent_entry_id) for list entries, or (parent_comment_id) for replies. Email addresses in the content will be automatically converted to @mentions if they match workspace members.

Parameters (1 required, 5 optional)
Required
contentstring

The comment content as plain text. Email addresses in the text will be automatically converted to @mentions if they match workspace members. example: Great work on this deal! cc team@example.com

Optional
parent_comment_idstring

Reply to an existing comment thread. The ID of the parent comment. Cannot be a reply - must be a top-level comment. example: 23e44572-20fc-4915-81ac-c98d04c34516

parent_entry_idstring

Create comment on a list entry. The entry ID. Must be provided with parent_list. example: 2dc6463b-61d1-4135-ad5e-1afa3077d36c

parent_liststring

Create comment on a list entry. The list the entry belongs to. Must be provided with parent_entry_id. format: slug or UUID example: "my_list", "1c3735b7-45eb-4ecd-8480-abd0846b0c3d"

parent_objectstring

Create comment on a record. The object the record belongs to. Must be provided with parent_record_id. format: slug or UUID example: "people", "companies", "daacd68c-781b-46da-821a-212c8f6ef63d"

parent_record_idstring

Create comment on a record. The record ID. Must be provided with parent_object. example: 9c49c875-f53b-4728-bebb-6ad34cc16451

Create note

create-note
Full Description

Creates a new note attached to a record. Returns the created note's ID.

Parameters (4 required, 1 optional)
Required
contentstring

The body of the note in markdown format. format: Markdown. Supports: headings (#, ##, ###), lists (-, *, 1.), bold (**), italic (*), strikethrough (~~), highlight (==), links ([text](url)). Code blocks, images, and tables are not supported. example: ## Summary\n\nDiscussed **roadmap** priorities.

parent_objectstring

The object type for the parent record. format: slug or UUID example: "people", "companies", "7e04d71e-bc67-40dd-94d9-9a561ab9d74e"

parent_record_idstring

The record ID to attach the note to. example: 97892ba3-89ca-448c-ae3f-b0450d112d8f

titlestring

The title of the note. example: Q1 Planning Meeting Notes

Optional
meeting_idstring

Optional ID to link to a specific meeting. example: a13780ea-95f7-4d7a-80f3-1951970c49af

Create record

create-record
Full Description

Create a new record in a given object. IMPORTANT: Before calling this tool, you should call list-attribute-definitions for the target object to understand which attributes are available, their types, whether they are required, and (for select/status fields) the valid options. Different attribute types require different value formats - see the 'values' parameter description for details.

Parameters (2 required)
Required
objectstring

The ID or slug of the object to create the record in. format: slug or UUID example: "companies", "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

valuesobject

An object mapping attribute slugs or IDs to values. Use `api_slug` or `attribute_id` from `list-attribute-definitions` as the key. # VALUE FORMATS BY ATTRIBUTE TYPE: * text: String - "name": "Acme Corp" * number: Number - "employee_count": 100 * checkbox: Boolean - "is_active": true * date: ISO 8601 date - "founded_date": "2024-01-15" * timestamp: ISO 8601 datetime - "created_at": "2024-01-15T10:30:00Z" * rating: Number 0-5 - "priority": 3 * email_address: String or array of strings (depends on is_multiselect) - "email_addresses": ["alice@example.com"] * phone_number: String or array of strings (depends on is_multiselect) - "phone_numbers": ["+14155551234"] * domain: String or array of strings (depends on is_multiselect) - "domains": ["example.com", "attio.com"] * select: Option title or UUID - "industry": "Software" * status: Status title or UUID - "stage": "In Progress" * currency: Number (uses attribute's configured currency) - "deal_value": 10000 * location: Address string - "address": "1 Infinite Loop, Cupertino, CA, 95014, US" Or object - {"line_1": "1 Infinite Loop", "locality": "Cupertino", "region": "CA", "postcode": "95014", "country_code": "US", "latitude": "37.331741", "longitude": "-122.030333"} * personal_name: "Lastname, Firstname" format (note: last name comes FIRST) - "contact_name": "Doe, John" Or object with ALL THREE required fields: [{"first_name": "John", "last_name": "Doe", "full_name": "John Doe"}] * actor_reference: Workspace member by email or UUID - "owner": "user@example.com" * interaction: NOT WRITABLE - this attribute type cannot be set via the API # RECORD REFERENCES (linking to other records): Record reference attributes link to records in other objects (e.g., linking a deal to a company). Formats supported: 1. By record ID: {"target_object": "companies", "target_record_id": "<uuid>"} 2. By matching attribute (must contain exactly ONE matching value): {"target_object": "people", "email_addresses": [{"email_address": "alice@example.com"}]} The key (e.g. "email_addresses") is an attribute slug on the target object. 3. Simple format (only if attribute references a single object type): - For people: pass an email address - "contact": "alice@example.com" (matches by email) - For companies: pass a domain - "company": "acme.com" (matches by domain) - Otherwise: pass a record UUID - "related_record": "<uuid>" # ARRAYS VS SINGLE VALUES: For attributes with is_multiselect=true, always provide an array. For single-value attributes, you can use either format: "name": "value" or "name": ["value"] example: {"actor_reference_by_id":"7c5bad94-acd0-4137-a422-48bac5c40098","actor_reference_by_email":"user@example.com","checkbox":true,"currency":13.37,"date":"2012-12-12","domain":["example.com","sub.example.com"],"email_address":["hello@example.com"],"location_simple_format":"1 Infinite Loop, Cupertino, CA, 95014, US","location_object_format":{"line_1":"1 Infinite Loop","locality":"Cupertino","region":"CA","postcode":"95014","country_code":"US","latitude":"37.331741","longitude":"-122.030333"},"number":1337,"personal_name_simple_format":"Smith, John","personal_name_object_format":{"first_name":"John","last_name":"Smith","full_name":"John Owen Smith"},"rating":3,"rating_min":0,"rating_max":5,"record_reference_by_id":[{"target_object":"companies","target_record_id":"bf5535dd-efae-4c52-aea0-525673c98834"}],"record_reference_by_value":[{"target_object":"people","email_addresses":[{"email_address":"test@example.com"}]}],"select":"Select option 1","select_multiselect":["Select option 1","Select option 2"],"text":"Text value","timestamp":"2012-12-12T12:12:121Z","f439d187-2cdc-4f6a-9464-adf74d0ba68e":"Example text value attribute referenced by ID","name":"Acme Corp","industry":"Software","employee_count":100,"primary_contact":"Doe, John","email_addresses":["contact@acme.com"],"associated_company":[{"target_object":"companies","target_record_id":"46cc9100-e0f0-4ca9-ac14-138cfe38de67"}]}

Create task

create-task
Full Description

Creates a new task in Attio. Tasks can optionally have a deadline, an assignee (workspace member), and be linked to a record (e.g., a person or company).

To assign to a workspace member, provide their workspace_member_id. To link to a record, provide both the object type (e.g., "people", "companies") and the record_id together.

Returns the created task's ID.

Parameters (1 required, 5 optional)
Required
contentstring

The text content of the task. MUST be provided. example: Follow up on current software solutions

Optional
assignee_workspace_member_idstring

The workspace member ID to assign the task to. Only one assignee can be specified via MCP. example: 31abd9d6-667f-4240-b995-717be5ad126e

deadline_atstring

The deadline date for the task. format: ISO 8601 timestamp string. UTC timezone. example: 2026-02-15T00:00:00.000Z

is_completedboolean

Whether the task is completed. Defaults to false. example: false

Default: False
linked_record_idstring

The record ID to link the task to. Must be provided with linked_record_object. example: 492c42ea-4def-4e51-9d1b-9ce24fc9e57f

linked_record_objectstring

The object type for the linked record. Must be provided with linked_record_id. format: slug or UUID example: "people", "companies"

Delete comment

delete-comment
Full Description

Deletes a comment. You can only delete comments that you created. Deleting a parent comment will also delete all of its replies.

Parameters (1 required)
Required
comment_idstring

The ID of the comment to delete. example: 55008f3e-7280-4c0f-89e2-d54e2649ddfa

Get call recording

get-call-recording
Full Description

Retrieves the full details of a call recording by ID, including its status, timestamps, and complete transcript.

Parameters (2 required)
Required
call_recording_idstring

The ID of the call recording to retrieve. example: ce7d95ea-2fee-4081-a7a2-884fc679174b

meeting_idstring

The ID of the meeting that the call recording is associated with. example: ff3bfd00-9623-4d8a-96cf-33b6c6cf2375

Get email content

get-email-content
Full Description

Retrieves the full content/body of an email. Requires the mailbox_id and email_header_id, which can be obtained from email search results.

Parameters (2 required)
Required
email_idstring

The ID of the email to retrieve content for. example: 923d51bf-a841-49b0-8db9-008f66fecd03

mailbox_idstring

The ID of the mailbox containing the email. example: 5b3306f9-9aa3-42c8-879a-0c79ef306a51

Get note body

get-note-body
Full Description

Get the body of a note by its ID

Parameters (1 required)
Required
note_idstring

The ID of the note to get the body of. example: 1f06d2aa-bc46-4415-a030-b5ec054bd1e3

Get records by IDs

get-records-by-ids
Full Description

Retrieve a given set of records by their IDs for a given object. Returns an array of records with their attribute values. If a record is not found, it will not be included in the response.

Parameters (2 required)
Required
objectstring

The ID or slug of the object for which to retrieve records. format: slug or UUID example: "companies", "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

record_idsarray

The IDs of the records to retrieve. Records that are not found will not be included in the response. example: ["ad27ac5f-95ab-4cc6-8880-e2655a1aae69", "d2e13173-1b77-48b3-ab1e-cf508f43c73e"]

List attribute definitions

list-attribute-definitions
Full Description

List attribute definitions for a given object

Parameters (1 required, 2 optional)
Required
objectstring

The ID or slug of the object for which to retrieve attribute definitions. format: slug or UUID example: "companies", "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

Optional
include_archivedboolean

If true, the response will include archived attributes.

Default: False
query

Plain text search term for fuzzy matching attribute titles and descriptions. If not specified or null, returns all attributes.

Default: null

List comment replies

list-comment-replies
Full Description

Lists replies to a comment. Provide the comment_id of a top-level comment to fetch its replies. Cannot be used with reply comments - only top-level comments that were created on records or list entries. All replies in a thread use the same parent comment ID.

Parameters (1 required, 2 optional)
Required
comment_idstring

The ID of the parent comment thread to list replies for. Must be a top-level comment, not a reply. example: cb07077b-b36b-43c3-9384-8d7d545d8a4d

Optional
limitnumber

Maximum number of replies to return.

Default: 20
offsetnumber

Number of results to skip for pagination.

Default: 0

List comments

list-comments
Full Description

Lists comments on a record or list entry. Returns paginated top-level comments with up to 5 replies each. If a thread has more replies, use "list-comment-replies" to fetch additional replies. Provide either (parent_object and parent_record_id) to list comments on a record, or (parent_list and parent_entry_id) to list comments on a list entry.

Parameters (0 required, 6 optional)
Optional
limitnumber

Maximum number of top-level comments to return.

Default: 10
offsetnumber

Number of results to skip for pagination.

Default: 0
parent_entry_idstring

Filter to comments on a specific list entry. The entry ID. Must be provided with parent_list. example: 59e2f755-8fb6-40a5-bdf5-e987c61a8585

parent_liststring

Filter to comments on a specific list entry. The list the entry belongs to. Must be provided with parent_entry_id. format: slug or UUID example: "my_list", "8c97aa64-87aa-42f5-bee7-b9711e954ad2"

parent_objectstring

Filter to comments on a specific record. The object the record belongs to. Must be provided with parent_record_id. format: slug or UUID example: "people", "companies", "97096c5f-eb38-4d85-970d-485bcfb06043"

parent_record_idstring

Filter to comments on a specific record. The record ID. Must be provided with parent_object. example: d71231fe-bd1a-4095-beda-58d1d5da8354

List lists

list-lists
Full Description

List all lists in the Attio workspace. Returns list metadata including ID, name, API slug, and parent object types. Use the query parameter to filter by name or slug.

Parameters (0 required, 3 optional)
Optional
limitnumber

Maximum number of results to return.

Default: 10
offsetnumber

Number of results to skip for pagination.

Default: 0
querystring/null

Filter returned lists using fuzzy search against list name or API slug. If null or not provided, returns all lists. example: "sales pipeline"

Default: null

List records

list-records
Full Description

List records in a given object with optional filtering and sorting. Returns paginated results.

Use this tool to retrieve records that match specific criteria. You can filter on attributes using comparison operators, combine filters with AND/OR logic, and sort results by attribute values.

Before calling this tool, ensure you know the attribute slugs or IDs for any filters or sorts you want to apply. Use the list-attribute-definitions tool to discover available attributes for an object.

Parameters (1 required, 4 optional)
Required
objectstring

The object to list records from. format: slug or UUID example: "companies", "people", "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

Optional
filter

Filter criteria to apply. If null, returns all records. Filter syntax supports three types: 1. Single condition: {"attribute": "name", "op": "eq", "value": "Acme Corp"} 2. AND group (all must match): {"and": [{"attribute": "industry", "op": "eq", "value": "Technology"}, {"attribute": "employee_count", "op": "gte", "value": 50}]} 3. OR group (any must match): {"or": [{"attribute": "stage", "op": "eq", "value": "Proposal"}, {"attribute": "stage", "op": "eq", "value": "Negotiation"}]} Groups can be nested. Available operators by type: - text: eq, neq, contains, not-contains, starts-with, ends-with - number/currency/rating: eq, neq, gt, gte, lt, lte - date/timestamp: eq, neq, gt, gte, lt, lte (use ISO 8601 format) - checkbox: eq, neq (boolean value) - select/status: eq, neq, gt, gte, lt, lte (by option title or sort order) - record_reference: eq, neq (use {object_id, record_id} value) - actor_reference: eq, neq (workspace member UUID) - domain/email/phone/personal_name: eq, neq, contains, not-contains, starts-with, ends-with example: {"and": [{"attribute": "is_customer", "op": "eq", "value": true}, {"attribute": "employee_count", "op": "gte", "value": 50}]}

Default: null
limitnumber

Maximum number of records to return (max 50).

Default: 10
offsetnumber

Number of records to skip for pagination.

Default: 0
sortsarray

Sorting to apply (max 2). If empty, results are returned in a deterministic random order. Sortable types: text, number, currency, date, timestamp, checkbox, rating, domain, email_address, phone_number, personal_name. example: [{"attribute": "name", "direction": "asc"}]

Default: []

List records in list

list-records-in-list
Full Description

List entries in a given list with optional filtering and sorting. Returns paginated results.

Use this tool to retrieve entries within a list that match specific criteria. You can filter on attributes using comparison operators, combine filters with AND/OR logic, and sort results by attribute values.

Each entry includes the parent record it belongs to and all entry-level attributes.

Parameters (1 required, 4 optional)
Required
liststring

The list to query entries from. format: slug or UUID example: "my-sales-pipeline", "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

Optional
filter

Filter criteria to apply. If null, returns all entries. Filter syntax supports three types: 1. Single condition: {"attribute": "name", "op": "eq", "value": "Acme Corp"} 2. AND group (all must match): {"and": [{"attribute": "industry", "op": "eq", "value": "Technology"}, {"attribute": "employee_count", "op": "gte", "value": 50}]} 3. OR group (any must match): {"or": [{"attribute": "stage", "op": "eq", "value": "Proposal"}, {"attribute": "stage", "op": "eq", "value": "Negotiation"}]} Groups can be nested. Available operators by type: - text: eq, neq, contains, not-contains, starts-with, ends-with - number/currency/rating: eq, neq, gt, gte, lt, lte - date/timestamp: eq, neq, gt, gte, lt, lte (use ISO 8601 format) - checkbox: eq, neq (boolean value) - select/status: eq, neq, gt, gte, lt, lte (by option title or sort order) - record_reference: eq, neq (use {object_id, record_id} value) - actor_reference: eq, neq (workspace member UUID) - domain/email/phone/personal_name: eq, neq, contains, not-contains, starts-with, ends-with example: {"and": [{"attribute": "is_customer", "op": "eq", "value": true}, {"attribute": "employee_count", "op": "gte", "value": 50}]}

Default: null
limitnumber

Maximum number of entries to return (max 50).

Default: 10
offsetnumber

Number of entries to skip for pagination.

Default: 0
sortsarray

Sorting to apply (max 2). If empty, results are returned in a deterministic random order. Sortable types: text, number, currency, date, timestamp, checkbox, rating, domain, email_address, phone_number, personal_name. example: [{"attribute": "name", "direction": "asc"}]

Default: []

List tasks

list-tasks
Full Description

Lists tasks in the workspace with optional filters. Returns paginated results with task content, completion status, assignees, linked records, and deadlines. Use to find tasks by assignee, completion status, linked record, or date ranges.

Parameters (0 required, 12 optional)
Optional
assignee_workspace_member_idstring

Filter by assignee. Pass a workspace member ID to find tasks assigned to that member. Pass null to find unassigned tasks. Omit to return tasks regardless of assignee. example: 27eed573-fd87-45e5-9f4e-b7ccb9215ca1

created_at_gtestring

Filter to tasks created at or after this timestamp (inclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

created_at_ltestring

Filter to tasks created at or before this timestamp (inclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

deadline_at_gtestring

Filter to tasks with deadline at or after this timestamp (inclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

deadline_at_ltestring

Filter to tasks with deadline at or before this timestamp (inclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

is_completedboolean

Filter by completion status. true returns only completed tasks, false returns only incomplete tasks. Omit to return all tasks.

limitnumber

Maximum number of results to return.

Default: 10
linked_record_idstring

Filter to tasks linked to a specific record. The record ID. Must be provided with linked_record_object. example: ea1183a4-a654-430b-b04b-56fba189d0e9

linked_record_objectstring

Filter to tasks linked to a specific record. The object the linked record belongs to. Must be provided with linked_record_id. format: slug or UUID example: "people", "companies", "890836fd-dfda-4e75-9358-86aeb7a9a637"

offsetnumber

Number of results to skip for pagination.

Default: 0
sort_bystring

Attribute to sort results by. Defaults to deadline_at.

Options:created_atdeadline_at
Default: deadline_at
sort_directionstring

The sort direction.

Options:ascdesc
Default: asc

List workspace members

list-workspace-members
Full Description

List members in the Attio workspace. Returns a list of matching members with their ID, email address, name, access level, and team memberships. Use the query parameter to filter by name, email, or team.

Parameters (0 required, 2 optional)
Optional
include_suspendedboolean

If true, response will include suspended members.

Default: False
querystring/null

Filter returned members using fuzzy search against member name, email address, and teams they are a member of. If null or not provided, returns all members. example: "John Smith"

Default: null

List workspace teams

list-workspace-teams
Full Description

List teams in the workspace. Teams are groups of workspace members used primarily for permission management. Returns an array of teams, each with: workspace_team_id, name, description, is_archived, created_at, and members (array of {name, email}).

Parameters (0 required, 1 optional)
Optional
include_archivedboolean

If true, the response will include archived teams.

Default: False

Search call recordings by metadata

search-call-recordings-by-metadata
Full Description

Searches all call recordings across the workspace by their metadata. Useful for finding call recordings based on who was on the call (workspace members or person records), related records (e.g., companies or deals), meeting title, and time range. Returns paginated results ordered by start time (most recent first). Uses limit/offset pagination.

Returns call recording metadata only (IDs and timestamps). Use the "get-call-recording" tool to retrieve the full transcript of a call recording.

Parameters (0 required, 9 optional)
Optional
limitnumber
Default: 20
meeting_title_querystring

Search for call recordings by meeting title. Supports full-text search with query enhancement (synonyms, stemming) and substring matching for partial queries. example: quarterly review

offsetnumber
Default: 0
related_record_idsarray

Filter to call recordings associated with specific records (e.g., companies or deals). Must be provided with related_record_object. example: ["59a35c5f-d363-4b54-9f71-1040129cba1f"]

related_record_objectstring

The object type of the related records. Must be provided with related_record_ids. format: slug or UUID example: "companies", "c2bece4a-bfe7-4b3b-b76b-fce4d7751adb"

speaker_person_record_idsarray

Filter to call recordings where specific person records were speakers. All specified persons must be present on the call. example: ["1395a453-3fda-4e39-ad4d-350b735956da"]

speaker_workspace_member_idsarray

Filter to call recordings where specific workspace members were speakers. All specified members must be present on the call. example: ["5ec946de-58e3-4a71-a4a3-97ded7645484"]

starts_afterstring

Filter to call recordings that started on or after this timestamp (inclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

starts_beforestring

Filter to call recordings that started on or before this timestamp (inclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

Search emails by metadata

search-emails-by-metadata
Full Description

Searches emails visible to the user by their metadata. Useful for finding emails based on participants, domain, and time range. Returns paginated results ordered by sent time (most recent first). Uses limit/offset pagination.

When both domain and participant_email_addresses are provided, they are ORed together (emails matching either filter are returned).

Returns email metadata only (ID, subject, summary, snippet, sender, sent_at). Use the "get-email-content" tool to retrieve the full content of an email.

Parameters (0 required, 6 optional)
Optional
domainstring

Filter by domain the email came from or was sent to. ORed with participant_email_addresses filter if both are provided. example: example.com

limitnumber

Maximum number of results to return. example: 10

Default: 20
offsetnumber

Number of results to skip for pagination.

Default: 0
participant_email_addressesarray

Filter by email participants. Filters by participants of all roles (from, to, cc, bcc). ORed with domain filter if both are provided. format: Array of valid email addresses. example: ["john@example.com", "jane@example.com"]

sent_at_gtstring

Filter to emails sent after this timestamp. format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-01T00:00:00.000Z

sent_at_ltstring

Filter to emails sent before this timestamp. format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-31T23:59:59.999Z

Search meetings

search-meetings
Full Description

Search across past and future meetings in the workspace. Returns paginated results with meeting metadata and associated call recording IDs. Useful for finding meetings based on participants, related records, and time range. Results are split into past_meetings (sorted by start time descending) and future_meetings (sorted by start time ascending).

Returns call_recording_ids for past meetings so you can fetch full transcripts via the "get-call-recording" tool.

Parameters (3 required, 7 optional)
Required
starts_afterstring

Filter to meetings starting after this timestamp (exclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-01T00:00:00.000Z

starts_beforestring

Filter to meetings starting before this timestamp (exclusive). format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-31T23:59:59.999Z

timezonestring

IANA timezone string for all-day meeting calculations. If an invalid timezone is provided, UTC will be used as a fallback. example: "America/New_York", "Europe/London"

Optional
limitnumber
Default: 20
offsetnumber
Default: 0
participant_email_addressesarray

Filter to meetings where participants with matching email addresses are present. Uses normalized email addresses (case-insensitive). example: ["alice@example.com", "bob@example.com"]

participant_email_addresses_operatorstring

AND = all specified emails must be participants. OR = any of the specified emails is a participant. Only valid when participant_email_addresses is provided. example: "OR"

Options:ANDOR
Default: OR
related_record_idsarray

Filter to meetings linked to specific records. Must be provided with related_record_object. example: ["0461377b-8433-4ae7-8d3e-1b1ed26f0de1"]

related_record_objectstring

The object type for related record filtering. Must be provided with related_record_ids. format: slug or UUID example: "companies", "deals", "a10a3806-0911-430a-a118-834cded8357a"

related_records_operatorstring

AND = meeting must be linked to ALL specified records. OR = meeting must be linked to ANY of the specified records. example: "AND"

Options:ANDOR
Default: AND

Search notes by metadata

search-notes-by-metadata
Full Description

Searches for notes by their metadata. Useful for finding notes based on parent record, meeting, author (workspace member), and creation time. Returns paginated results ordered by creation date (most recent first). Uses limit/offset pagination.

Parameters (0 required, 8 optional)
Optional
created_at_gtstring

Use to filter to notes created after a specific point in timestamp. format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

created_at_ltstring

Use to filter to notes created before a specific point in timestamp. format: ISO 8601 timestamp string. UTC timezone. example: 2026-01-20T00:00:00.000Z

limitnumber
Default: 10
meeting_idstring

Use to filter to notes associated with a specific meeting. example: d2e13173-1b77-48b3-ab1e-cf508f43c73e

offsetnumber
Default: 0
parent_record_idstring

Use to filter to notes attached to a specific record. Must be provided with parent_record_object. example: "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

parent_record_objectstring

Use to filter to notes attached to a specific record. Must be provided with parent_record_id. format: slug or UUID example: "companies", "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

workspace_membership_idstring

Use to filter to notes associated with a specific workspace member. example: 31abd9d6-667f-4240-b995-717be5ad126e

Search records

search-records
Full Description

Perform a full-text search for records in a given object. Only searches indexed attributes: domains, email addresses, phone numbers, name/title, description, social handles, and location. Returns paginated results.

Parameters (2 required, 2 optional)
Required
objectstring

The ID or slug of the object to search records in. format: slug or UUID example: "companies", "492c42ea-4def-4e51-9d1b-9ce24fc9e57f"

querystring

Case-insensitive, full-text search query. Searches indexed attributes: domains, email addresses, phone numbers, name/title, description, social handles, and location. example: "Acme Corp"

Optional
limitnumber

Maximum number of results to return.

Default: 10
offsetnumber

Number of results to skip for pagination.

Default: 0

Semantic search call recordings

semantic-search-call-recordings
Full Description

Searches all call recordings across the workspace using semantic similarity. Returns call recordings that are most semantically similar to the query, even if the exact keywords are not present in the transcript. Useful for finding calls where a specific topic was discussed.

Searches both transcript content and call recording overviews (title and summary) automatically. Returns matching transcript chunks and call recording overview information. Use the "get-call-recording" tool to retrieve the full transcript of a call recording.

Parameters (1 required)
Required
querystring

The search query to find semantically similar call recordings. Searches both transcript content and call recording overviews (title and summary) using vector embeddings, finding calls where similar topics were discussed even if the exact keywords are not present. example: quarterly revenue discussion

Semantic search emails

semantic-search-emails
Full Description

Searches emails visible to the user using semantic similarity. Returns up to 20 emails that are most semantically similar to the query, even if exact keywords are not present. Useful for finding emails where a specific topic was discussed.

Returns email metadata only (ID, subject, summary, snippet, sender, sent_at). Use the "get-email-content" tool to retrieve the full content of an email.

Parameters (1 required, 1 optional)
Required
querystring

The search query for semantic/content-based search. example: meeting notes from last quarter

Optional
include_emails_of_othersboolean

If true, search through emails of other workspace members as well. If false, only search through the user's own mailbox. example: false

Default: False

Semantic search notes

semantic-search-notes
Full Description

Searches all notes across the workspace using semantic similarity. Returns up to 20 notes that are most semantically similar to the query, even if the exact keywords are not present in the note. Useful for finding notes where a specific topic was discussed.

Returns note metadata only (ID, title, timestamps, parent record). Use the "get-note-body" tool to retrieve the full content of a note.

Parameters (1 required)
Required
querystring

The search query to find semantically similar notes. This searches the body content of notes using vector embeddings, finding notes where similar topics were discussed even if the exact keywords are not present. example: quarterly revenue discussion

Update record

update-record
Full Description

Use this tool to update people, companies, and other records by record_id.

Parameters (3 required, 1 optional)
Required
objectstring

The object type for the target record. format: slug or UUID example: "people", "companies", "61b39cc0-ce16-45d9-8eda-afe6b3a8a8ed"

record_idstring

A UUID of the record to update. example: 7df4c475-3584-48db-94fe-aa880d0bd0e0

valuesobject

An object mapping attribute slugs or IDs to values. Use `api_slug` or `attribute_id` from `list-attribute-definitions` as the key. # VALUE FORMATS BY ATTRIBUTE TYPE: * text: String - "name": "Acme Corp" * number: Number - "employee_count": 100 * checkbox: Boolean - "is_active": true * date: ISO 8601 date - "founded_date": "2024-01-15" * timestamp: ISO 8601 datetime - "created_at": "2024-01-15T10:30:00Z" * rating: Number 0-5 - "priority": 3 * email_address: String or array of strings (depends on is_multiselect) - "email_addresses": ["alice@example.com"] * phone_number: String or array of strings (depends on is_multiselect) - "phone_numbers": ["+14155551234"] * domain: String or array of strings (depends on is_multiselect) - "domains": ["example.com", "attio.com"] * select: Option title or UUID - "industry": "Software" * status: Status title or UUID - "stage": "In Progress" * currency: Number (uses attribute's configured currency) - "deal_value": 10000 * location: Address string - "address": "1 Infinite Loop, Cupertino, CA, 95014, US" Or object - {"line_1": "1 Infinite Loop", "locality": "Cupertino", "region": "CA", "postcode": "95014", "country_code": "US", "latitude": "37.331741", "longitude": "-122.030333"} * personal_name: "Lastname, Firstname" format (note: last name comes FIRST) - "contact_name": "Doe, John" Or object with ALL THREE required fields: [{"first_name": "John", "last_name": "Doe", "full_name": "John Doe"}] * actor_reference: Workspace member by email or UUID - "owner": "user@example.com" * interaction: NOT WRITABLE - this attribute type cannot be set via the API # RECORD REFERENCES (linking to other records): Record reference attributes link to records in other objects (e.g., linking a deal to a company). Formats supported: 1. By record ID: {"target_object": "companies", "target_record_id": "<uuid>"} 2. By matching attribute (must contain exactly ONE matching value): {"target_object": "people", "email_addresses": [{"email_address": "alice@example.com"}]} The key (e.g. "email_addresses") is an attribute slug on the target object. 3. Simple format (only if attribute references a single object type): - For people: pass an email address - "contact": "alice@example.com" (matches by email) - For companies: pass a domain - "company": "acme.com" (matches by domain) - Otherwise: pass a record UUID - "related_record": "<uuid>" # ARRAYS VS SINGLE VALUES: For attributes with is_multiselect=true, always provide an array. For single-value attributes, you can use either format: "name": "value" or "name": ["value"] example: {"actor_reference_by_id":"7c5bad94-acd0-4137-a422-48bac5c40098","actor_reference_by_email":"user@example.com","checkbox":true,"currency":13.37,"date":"2012-12-12","domain":["example.com","sub.example.com"],"email_address":["hello@example.com"],"location_simple_format":"1 Infinite Loop, Cupertino, CA, 95014, US","location_object_format":{"line_1":"1 Infinite Loop","locality":"Cupertino","region":"CA","postcode":"95014","country_code":"US","latitude":"37.331741","longitude":"-122.030333"},"number":1337,"personal_name_simple_format":"Smith, John","personal_name_object_format":{"first_name":"John","last_name":"Smith","full_name":"John Owen Smith"},"rating":3,"rating_min":0,"rating_max":5,"record_reference_by_id":[{"target_object":"companies","target_record_id":"bf5535dd-efae-4c52-aea0-525673c98834"}],"record_reference_by_value":[{"target_object":"people","email_addresses":[{"email_address":"test@example.com"}]}],"select":"Select option 1","select_multiselect":["Select option 1","Select option 2"],"text":"Text value","timestamp":"2012-12-12T12:12:121Z","f439d187-2cdc-4f6a-9464-adf74d0ba68e":"Example text value attribute referenced by ID","name":"Acme Corp","industry":"Software","employee_count":100,"primary_contact":"Doe, John","email_addresses":["contact@acme.com"],"associated_company":[{"target_object":"companies","target_record_id":"46cc9100-e0f0-4ca9-ac14-138cfe38de67"}]}

Optional
patch_multiselect_valuesboolean

If `true`, values provided for multiselect attributes will be created and prepended to the list of values that already exist (if any). If `false`, values provied for multiselect attributes will be either created or deleted as necessary to match the list of supplied values. Defaults to `true`.

Default: True

Update task

update-task
Full Description

Updates an existing task in Attio. You can update the deadline, completion status, assignee, and linked record.

To update the assignee, provide their workspace_member_id. To update the linked record, provide both the object type (e.g., "people", "companies") and the record_id together. To clear the deadline, set deadline_at to null.

Returns the updated task's ID.

Parameters (1 required, 5 optional)
Required
task_idstring

The ID of the task to update. example: 492c42ea-4def-4e51-9d1b-9ce24fc9e57f

Optional
assignee_workspace_member_idstring

The workspace member ID to assign the task to. Only one assignee can be specified via MCP. example: 31abd9d6-667f-4240-b995-717be5ad126e

deadline_atstring/null

The deadline date for the task. Set to null to clear the deadline. format: ISO 8601 timestamp string. UTC timezone. example: 2026-02-15T00:00:00.000Z

is_completedboolean

Whether the task is completed. example: true

linked_record_idstring

The record ID to link the task to. Must be provided with linked_record_object. example: 492c42ea-4def-4e51-9d1b-9ce24fc9e57f

linked_record_objectstring

The object type for the linked record. Must be provided with linked_record_id. format: slug or UUID example: "people", "companies"

Upsert record

upsert-record
Full Description

Use this tool to create or update people, companies and other records. A matching attribute is used to search for existing records.

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. If the matching attribute is a multiselect attribute, new values will be added and existing values will not be deleted.

If you would like to avoid matching, please use the create-record tool.

Parameters (3 required, 1 optional)
Required
matching_attributestring

The ID or slug of the attribute to use to check if a record already exists. The attribute must be unique. The value for `matching_attribute` MUST be provided in the `values` payload. example: "email_addresses", "domains", "80bc99f9-a0c8-4fe6-9f7f-852d5b0e879d"

objectstring

The object type for the target record. format: slug or UUID example: "people", "companies", "1c66f3f1-45ca-4f18-9252-c52c95c2a5b9"

valuesobject

An object mapping attribute slugs or IDs to values. Use `api_slug` or `attribute_id` from `list-attribute-definitions` as the key. # VALUE FORMATS BY ATTRIBUTE TYPE: * text: String - "name": "Acme Corp" * number: Number - "employee_count": 100 * checkbox: Boolean - "is_active": true * date: ISO 8601 date - "founded_date": "2024-01-15" * timestamp: ISO 8601 datetime - "created_at": "2024-01-15T10:30:00Z" * rating: Number 0-5 - "priority": 3 * email_address: String or array of strings (depends on is_multiselect) - "email_addresses": ["alice@example.com"] * phone_number: String or array of strings (depends on is_multiselect) - "phone_numbers": ["+14155551234"] * domain: String or array of strings (depends on is_multiselect) - "domains": ["example.com", "attio.com"] * select: Option title or UUID - "industry": "Software" * status: Status title or UUID - "stage": "In Progress" * currency: Number (uses attribute's configured currency) - "deal_value": 10000 * location: Address string - "address": "1 Infinite Loop, Cupertino, CA, 95014, US" Or object - {"line_1": "1 Infinite Loop", "locality": "Cupertino", "region": "CA", "postcode": "95014", "country_code": "US", "latitude": "37.331741", "longitude": "-122.030333"} * personal_name: "Lastname, Firstname" format (note: last name comes FIRST) - "contact_name": "Doe, John" Or object with ALL THREE required fields: [{"first_name": "John", "last_name": "Doe", "full_name": "John Doe"}] * actor_reference: Workspace member by email or UUID - "owner": "user@example.com" * interaction: NOT WRITABLE - this attribute type cannot be set via the API # RECORD REFERENCES (linking to other records): Record reference attributes link to records in other objects (e.g., linking a deal to a company). Formats supported: 1. By record ID: {"target_object": "companies", "target_record_id": "<uuid>"} 2. By matching attribute (must contain exactly ONE matching value): {"target_object": "people", "email_addresses": [{"email_address": "alice@example.com"}]} The key (e.g. "email_addresses") is an attribute slug on the target object. 3. Simple format (only if attribute references a single object type): - For people: pass an email address - "contact": "alice@example.com" (matches by email) - For companies: pass a domain - "company": "acme.com" (matches by domain) - Otherwise: pass a record UUID - "related_record": "<uuid>" # ARRAYS VS SINGLE VALUES: For attributes with is_multiselect=true, always provide an array. For single-value attributes, you can use either format: "name": "value" or "name": ["value"] example: {"actor_reference_by_id":"7c5bad94-acd0-4137-a422-48bac5c40098","actor_reference_by_email":"user@example.com","checkbox":true,"currency":13.37,"date":"2012-12-12","domain":["example.com","sub.example.com"],"email_address":["hello@example.com"],"location_simple_format":"1 Infinite Loop, Cupertino, CA, 95014, US","location_object_format":{"line_1":"1 Infinite Loop","locality":"Cupertino","region":"CA","postcode":"95014","country_code":"US","latitude":"37.331741","longitude":"-122.030333"},"number":1337,"personal_name_simple_format":"Smith, John","personal_name_object_format":{"first_name":"John","last_name":"Smith","full_name":"John Owen Smith"},"rating":3,"rating_min":0,"rating_max":5,"record_reference_by_id":[{"target_object":"companies","target_record_id":"bf5535dd-efae-4c52-aea0-525673c98834"}],"record_reference_by_value":[{"target_object":"people","email_addresses":[{"email_address":"test@example.com"}]}],"select":"Select option 1","select_multiselect":["Select option 1","Select option 2"],"text":"Text value","timestamp":"2012-12-12T12:12:121Z","f439d187-2cdc-4f6a-9464-adf74d0ba68e":"Example text value attribute referenced by ID","name":"Acme Corp","industry":"Software","employee_count":100,"primary_contact":"Doe, John","email_addresses":["contact@acme.com"],"associated_company":[{"target_object":"companies","target_record_id":"46cc9100-e0f0-4ca9-ac14-138cfe38de67"}]}

Optional
patch_multiselect_valuesboolean

If `true`, values provided for multiselect attributes will be created and prepended to the list of values that already exist (if any). If `false`, values provied for multiselect attributes will be either created or deleted as necessary to match the list of supplied values. Defaults to `true`.

Default: True

Who am I

whoami
Full Description

Returns information about the current user's identity and workspace membership, including their email, name, workspace member ID, access level, and workspace name.