Attio MCP connector
OAuth 2.1/DCRCRM & SalesProductivityConnect to Attio MCP. Access and manage CRM records, lists, notes, tasks, emails, and workspace data across people, companies, and deals.
Attio MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'attiomcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Attio MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'attiomcp_list_comments',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "attiomcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Attio MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="attiomcp_list_comments",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Whoami records — Returns information about the current user’s identity and workspace membership, including their email, name, workspace member ID, access level, and workspace name
- Record upsert — Create or update a people, companies, or other record using a matching attribute to find an existing record
- Update task, record, note — Update an existing task’s deadline, completion status, assignee, or linked record
- Search semantic — Search all notes in the workspace using semantic similarity to find notes where specific topics were discussed, even if exact keywords are not present
- Run basic report — Run an aggregate report on records in an object or entries in a list, computing totals, averages, minimums, maximums, or grouped breakdowns
- List workspace teams, workspace members, tasks — List teams in the Attio workspace, returning each team’s ID, name, description, archived status, creation timestamp, and members
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
attiomcp_add_record_to_list#Adds a record to a list as a new list entry. By default, duplicate entries are prevented; set allow_duplicates to true to create multiple entries for the same record.5 params
Adds a record to a list as a new list entry. By default, duplicate entries are prevented; set allow_duplicates to true to create multiple entries for the same record.
liststringrequiredThe ID or slug of the list to add the entry to.parent_objectstringrequiredThe object type of the parent record being added to the list.parent_record_idstringrequiredThe ID of the record to add to the list.allow_duplicatesbooleanoptionalWhether to allow adding a record that already exists in the list.entry_valuesobjectoptionalOptional attribute values for the list entry keyed by api_slug or attribute_id.attiomcp_create_comment#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.6 params
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.
contentstringrequiredThe comment text; email addresses are auto-converted to @mentions if they match workspace members.parent_comment_idstringoptionalThe ID of the parent comment to reply to; must be a top-level comment, not a reply.parent_entry_idstringoptionalThe entry ID to comment on; must be provided with parent_list.parent_liststringoptionalThe list the entry belongs to; must be provided with parent_entry_id.parent_objectstringoptionalThe object the record belongs to; must be provided with parent_record_id.parent_record_idstringoptionalThe record ID to comment on; must be provided with parent_object.attiomcp_create_note#Creates a new note attached to a record and returns the created note's ID. The note body supports Markdown formatting including headings, lists, bold, italic, and links.5 params
Creates a new note attached to a record and returns the created note's ID. The note body supports Markdown formatting including headings, lists, bold, italic, and links.
contentstringrequiredThe body of the note in Markdown format.parent_objectstringrequiredThe object type for the parent record.parent_record_idstringrequiredThe record ID to attach the note to.titlestringrequiredThe title of the note.meeting_idstringoptionalOptional ID to link this note to a specific meeting.attiomcp_create_record#Creates a new record in a specified object such as people, companies, or deals. Before calling this tool, use list-attribute-definitions for the target object to understand available attributes and their required value formats.2 params
Creates a new record in a specified object such as people, companies, or deals. Before calling this tool, use list-attribute-definitions for the target object to understand available attributes and their required value formats.
objectstringrequiredThe ID or slug of the object to create the record in.valuesobjectrequiredAn object mapping attribute slugs or IDs to their values for the new record.attiomcp_create_task#Creates a new task in Attio with optional deadline, assignee, and linked record. Returns the created task's ID.6 params
Creates a new task in Attio with optional deadline, assignee, and linked record. Returns the created task's ID.
contentstringrequiredThe text content of the task.assignee_workspace_member_idstringoptionalThe workspace member ID to assign the task to.deadline_atstringoptionalThe deadline date for the task as an ISO 8601 UTC timestamp.is_completedbooleanoptionalWhether the task is completed; defaults to false.linked_record_idstringoptionalThe record ID to link the task to; must be provided with linked_record_object.linked_record_objectstringoptionalThe object type for the linked record; must be provided with linked_record_id.attiomcp_delete_comment#Deletes a comment you created. Deleting a parent comment will also delete all of its replies.1 param
Deletes a comment you created. Deleting a parent comment will also delete all of its replies.
comment_idstringrequiredThe ID of the comment to delete.attiomcp_get_call_recording#Retrieves the full details of a call recording by ID, including its status, timestamps, and complete transcript.2 params
Retrieves the full details of a call recording by ID, including its status, timestamps, and complete transcript.
call_recording_idstringrequiredThe ID of the call recording to retrieve.meeting_idstringrequiredThe ID of the meeting that the call recording is associated with.attiomcp_get_email_content#Retrieves the full content and body of an email. Requires the mailbox_id and email_id, which can be obtained from email search results.2 params
Retrieves the full content and body of an email. Requires the mailbox_id and email_id, which can be obtained from email search results.
email_idstringrequiredThe ID of the email to retrieve content for.mailbox_idstringrequiredThe ID of the mailbox containing the email.attiomcp_get_note_body#Retrieves the full body content of a note by its ID.1 param
Retrieves the full body content of a note by its ID.
note_idstringrequiredThe ID of the note to retrieve the body of.attiomcp_get_records_by_ids#Retrieve a set of records by their IDs for a given object type. Returns an array of records with their attribute values; records not found are silently omitted from the response.2 params
Retrieve a set of records by their IDs for a given object type. Returns an array of records with their attribute values; records not found are silently omitted from the response.
objectstringrequiredThe ID or slug of the object for which to retrieve records.record_idsarrayrequiredThe IDs of the records to retrieve. Records that are not found will not be included in the response.attiomcp_list_attribute_definitions#List attribute definitions for a given object, including their types, slugs, and configuration. Supports optional fuzzy search and pagination.5 params
List attribute definitions for a given object, including their types, slugs, and configuration. Supports optional fuzzy search and pagination.
objectstringrequiredThe ID or slug of the object for which to retrieve attribute definitions.include_archivedbooleanoptionalIf true, the response will include archived attributes.limitnumberoptionalMaximum number of results to return.offsetnumberoptionalNumber of results to skip for pagination.querystringoptionalPlain text search term for fuzzy matching attribute titles and descriptions. If not specified or null, returns all attributes.attiomcp_list_comment_replies#List replies to a top-level comment thread by its comment ID. Only works with top-level comments; reply comments cannot be used as the parent.3 params
List replies to a top-level comment thread by its comment ID. Only works with top-level comments; reply comments cannot be used as the parent.
comment_idstringrequiredThe ID of the parent comment thread to list replies for. Must be a top-level comment, not a reply.limitnumberoptionalMaximum number of replies to return.offsetnumberoptionalNumber of results to skip for pagination.attiomcp_list_comments#List paginated top-level comments on a record or list entry, with up to 5 replies each. Provide either (parent_object + parent_record_id) for records, or (parent_list + parent_entry_id) for list entries.6 params
List paginated top-level comments on a record or list entry, with up to 5 replies each. Provide either (parent_object + parent_record_id) for records, or (parent_list + parent_entry_id) for list entries.
limitnumberoptionalMaximum number of top-level comments to return.offsetnumberoptionalNumber of results to skip for pagination.parent_entry_idstringoptionalFilter to comments on a specific list entry. The entry ID. Must be provided with parent_list.parent_liststringoptionalFilter to comments on a specific list entry. The list the entry belongs to. Must be provided with parent_entry_id.parent_objectstringoptionalFilter to comments on a specific record. The object the record belongs to. Must be provided with parent_record_id.parent_record_idstringoptionalFilter to comments on a specific record. The record ID. Must be provided with parent_object.attiomcp_list_list_attribute_definitions#List attribute definitions for a given list, including entry-level attribute types and slugs. Supports optional fuzzy search and pagination.5 params
List attribute definitions for a given list, including entry-level attribute types and slugs. Supports optional fuzzy search and pagination.
liststringrequiredThe ID or slug of the list for which to retrieve attribute definitions.include_archivedbooleanoptionalIf true, the response will include archived attributes.limitnumberoptionalMaximum number of results to return.offsetnumberoptionalNumber of results to skip for pagination.querystringoptionalPlain text search term for fuzzy matching attribute titles and descriptions. If not specified or null, returns all attributes.attiomcp_list_lists#List all lists in the Attio workspace, returning metadata such as ID, name, API slug, and parent object types. Optionally filter by name or slug using the query parameter.3 params
List all lists in the Attio workspace, returning metadata such as ID, name, API slug, and parent object types. Optionally filter by name or slug using the query parameter.
limitnumberoptionalMaximum number of results to return.offsetnumberoptionalNumber of results to skip for pagination.querystringoptionalFilter returned lists using fuzzy search against list name or API slug. If null or not provided, returns all lists.attiomcp_list_records#Retrieve a paginated list of records from a specified object type such as people, companies, or deals. Supports optional filtering with comparison operators and sorting by attribute values.5 params
Retrieve a paginated list of records from a specified object type such as people, companies, or deals. Supports optional filtering with comparison operators and sorting by attribute values.
objectstringrequiredThe object type to list records from, as a slug or UUID.filterstringoptionalOptional filter criteria to narrow results. Supports single conditions, AND groups, and OR groups.limitnumberoptionalMaximum number of records to return (1–50).offsetnumberoptionalNumber of records to skip for pagination.sortsarrayoptionalSorting to apply (max 2 sorts). If empty, results are returned in a deterministic random order.attiomcp_list_records_in_list#List entries in a given list with optional filtering and sorting, returning paginated results. Each entry includes the parent record and all entry-level attributes.5 params
List entries in a given list with optional filtering and sorting, returning paginated results. Each entry includes the parent record and all entry-level attributes.
liststringrequiredThe list to query entries from.filterstringoptionalFilter criteria to apply. Supports single conditions, AND groups, and OR groups.limitnumberoptionalMaximum number of entries to return (max 50).offsetnumberoptionalNumber of entries to skip for pagination.sortsarrayoptionalSorting to apply (max 2). If empty, results are returned in a deterministic random order.attiomcp_list_tasks#List tasks in the workspace with optional filters for assignee, completion status, linked record, and date ranges. Returns paginated results including task content, deadlines, and linked record details.12 params
List tasks in the workspace with optional filters for assignee, completion status, linked record, and date ranges. Returns paginated results including task content, deadlines, and linked record details.
assignee_workspace_member_idstringoptionalFilter by assignee. Pass a workspace member ID to find tasks assigned to that member. Pass null to find unassigned tasks.created_at_gtestringoptionalFilter to tasks created at or after this timestamp (inclusive).created_at_ltestringoptionalFilter to tasks created at or before this timestamp (inclusive).deadline_at_gtestringoptionalFilter to tasks with deadline at or after this timestamp (inclusive).deadline_at_ltestringoptionalFilter to tasks with deadline at or before this timestamp (inclusive).is_completedbooleanoptionalFilter by completion status. true returns only completed tasks, false returns only incomplete tasks. Omit to return all tasks.limitnumberoptionalMaximum number of results to return.linked_record_idstringoptionalFilter to tasks linked to a specific record. The record ID. Must be provided with linked_record_object.linked_record_objectstringoptionalFilter to tasks linked to a specific record. The object the linked record belongs to. Must be provided with linked_record_id.offsetnumberoptionalNumber of results to skip for pagination.sort_bystringoptionalAttribute to sort results by. Defaults to deadline_at.sort_directionstringoptionalThe sort direction.attiomcp_list_workspace_members#List members in the Attio workspace, returning their ID, email address, name, access level, and team memberships. Optionally filter by name, email, or team using the query parameter.2 params
List members in the Attio workspace, returning their ID, email address, name, access level, and team memberships. Optionally filter by name, email, or team using the query parameter.
include_suspendedbooleanoptionalIf true, response will include suspended members.querystringoptionalFilter 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.attiomcp_list_workspace_teams#List teams in the Attio workspace, returning each team's ID, name, description, archived status, creation timestamp, and members. Teams are groups of workspace members used primarily for permission management.1 param
List teams in the Attio workspace, returning each team's ID, name, description, archived status, creation timestamp, and members. Teams are groups of workspace members used primarily for permission management.
include_archivedbooleanoptionalIf true, the response will include archived teams.attiomcp_run_basic_report#Run an aggregate report on records in an object or entries in a list, computing totals, averages, minimums, maximums, or grouped breakdowns. Supports optional filtering and up to two group-by dimensions.4 params
Run an aggregate report on records in an object or entries in a list, computing totals, averages, minimums, maximums, or grouped breakdowns. Supports optional filtering and up to two group-by dimensions.
metricobjectrequiredThe metric to compute — either a count of records/entries or an aggregation (sum, mean, min, max, count) of a numeric attribute.sourcestringrequiredThe source dataset for the report — a list or object slug or UUID.filterstringoptionalOptional filter criteria to narrow rows before aggregation.group_byarrayoptionalOne or two grouping dimensions — the first is the primary (outer) key, the second is secondary (inner) key.attiomcp_search_call_recordings_by_metadata#Search all call recordings in the workspace by metadata such as speaker workspace members, speaker person records, related records, meeting title, and time range. Returns paginated call recording metadata ordered by start time (most recent first); use get-call-recording to fetch full transcripts.9 params
Search all call recordings in the workspace by metadata such as speaker workspace members, speaker person records, related records, meeting title, and time range. Returns paginated call recording metadata ordered by start time (most recent first); use get-call-recording to fetch full transcripts.
limitnumberoptionalMaximum number of results to return.meeting_title_querystringoptionalFull-text search query to filter call recordings by meeting title.offsetnumberoptionalNumber of results to skip for pagination.related_record_idsarrayoptionalFilter to call recordings associated with specific records — must be provided with related_record_object.related_record_objectstringoptionalThe object type of the related records to filter by — must be provided with related_record_ids.speaker_person_record_idsarrayoptionalFilter to call recordings where all specified person records were speakers.speaker_workspace_member_idsarrayoptionalFilter to call recordings where all specified workspace members were speakers.starts_afterstringoptionalFilter to call recordings that started on or after this timestamp (inclusive).starts_beforestringoptionalFilter to call recordings that started on or before this timestamp (inclusive).attiomcp_search_emails_by_metadata#Search emails visible to the user by metadata including participant email addresses, domain, and sent time range. Returns paginated email metadata ordered by sent time (most recent first); use get-email-content to retrieve full email bodies.6 params
Search emails visible to the user by metadata including participant email addresses, domain, and sent time range. Returns paginated email metadata ordered by sent time (most recent first); use get-email-content to retrieve full email bodies.
domainstringoptionalFilter by domain the email was sent from or to — ORed with participant_email_addresses if both are provided.limitnumberoptionalMaximum number of results to return.offsetnumberoptionalNumber of results to skip for pagination.participant_email_addressesarrayoptionalFilter by email participants across all roles (from, to, cc, bcc) — ORed with the domain filter if both are provided.sent_at_gtstringoptionalFilter to emails sent after this timestamp.sent_at_ltstringoptionalFilter to emails sent before this timestamp.attiomcp_search_meetings#Search past and future meetings in the workspace by participants, related records, and time range. Returns paginated results split into past meetings (most recent first) and future meetings (soonest first), with call recording IDs for past meetings.10 params
Search past and future meetings in the workspace by participants, related records, and time range. Returns paginated results split into past meetings (most recent first) and future meetings (soonest first), with call recording IDs for past meetings.
starts_afterstringrequiredFilter to meetings starting after this timestamp (exclusive).starts_beforestringrequiredFilter to meetings starting before this timestamp (exclusive).timezonestringrequiredIANA timezone string used for all-day meeting calculations.limitnumberoptionalMaximum number of results to return.offsetnumberoptionalNumber of results to skip for pagination.participant_email_addressesarrayoptionalFilter to meetings where participants with matching email addresses are present.participant_email_addresses_operatorstringoptionalAND requires all specified emails to be participants; OR requires any one of them.related_record_idsarrayoptionalFilter to meetings linked to specific records — must be provided with related_record_object.related_record_objectstringoptionalThe object type for related record filtering — must be provided with related_record_ids.related_records_operatorstringoptionalAND requires the meeting to be linked to all specified records; OR requires linkage to any one of them.attiomcp_search_notes_by_metadata#Search notes by metadata including parent record, associated meeting, author workspace member, and creation time range. Returns paginated results ordered by creation date (most recent first).8 params
Search notes by metadata including parent record, associated meeting, author workspace member, and creation time range. Returns paginated results ordered by creation date (most recent first).
created_at_gtstringoptionalFilter to notes created after this timestamp.created_at_ltstringoptionalFilter to notes created before this timestamp.limitnumberoptionalMaximum number of results to return.meeting_idstringoptionalFilter to notes associated with a specific meeting.offsetnumberoptionalNumber of results to skip for pagination.parent_record_idstringoptionalThe record ID to filter notes by — must be provided with parent_record_object.parent_record_objectstringoptionalThe object type for the parent record — must be provided with parent_record_id.workspace_membership_idstringoptionalFilter to notes associated with a specific workspace member.attiomcp_search_records#Perform a full-text search for records in a given object across indexed attributes such as domains, email addresses, phone numbers, name/title, description, social handles, and location. Returns paginated results.4 params
Perform a full-text search for records in a given object across indexed attributes such as domains, email addresses, phone numbers, name/title, description, social handles, and location. Returns paginated results.
objectstringrequiredThe object type to search records in, as a slug or UUID.querystringrequiredCase-insensitive full-text search query across indexed attributes.limitnumberoptionalMaximum number of results to return.offsetnumberoptionalNumber of results to skip for pagination.attiomcp_semantic_search_call_recordings#Search all call recordings using semantic similarity to find calls where specific topics were discussed, even if exact keywords are not present in the transcript. Searches both transcript content and call recording overviews (title and summary) using vector embeddings.1 param
Search all call recordings using semantic similarity to find calls where specific topics were discussed, even if exact keywords are not present in the transcript. Searches both transcript content and call recording overviews (title and summary) using vector embeddings.
querystringrequiredThe search query to find semantically similar call recordings.attiomcp_semantic_search_emails#Search emails visible to the user using semantic similarity to find emails where specific topics were discussed, even if the exact keywords are not present. Returns up to 20 email metadata results; use get-email-content to retrieve full email bodies.2 params
Search emails visible to the user using semantic similarity to find emails where specific topics were discussed, even if the exact keywords are not present. Returns up to 20 email metadata results; use get-email-content to retrieve full email bodies.
querystringrequiredThe search query for semantic content-based search across emails.include_emails_of_othersbooleanoptionalIf true, search through emails of all workspace members; if false, search only the user's own mailbox.attiomcp_semantic_search_notes#Search all notes in the workspace using semantic similarity to find notes where specific topics were discussed, even if exact keywords are not present. Returns up to 20 note metadata results; use get-note-body to retrieve the full content of a note.1 param
Search all notes in the workspace using semantic similarity to find notes where specific topics were discussed, even if exact keywords are not present. Returns up to 20 note metadata results; use get-note-body to retrieve the full content of a note.
querystringrequiredThe search query to find semantically similar notes.attiomcp_update_list#Update the name or API slug of a list. At least one of name or api_slug must be provided.3 params
Update the name or API slug of a list. At least one of name or api_slug must be provided.
liststringrequiredThe ID or slug of the list to update.api_slugstringoptionalThe new API slug for the list, formatted in snake_case.namestringoptionalThe new human-readable name for the list.attiomcp_update_list_entry_by_id#Update attribute values on an existing list entry by its entry ID. Call list-records-in-list first to find the entry you want to update.4 params
Update attribute values on an existing list entry by its entry ID. Call list-records-in-list first to find the entry you want to update.
entry_idstringrequiredThe ID of the list entry to update.entry_valuesobjectrequiredAn object mapping attribute slugs or IDs to their new values for the list entry.liststringrequiredThe ID or slug of the list containing the entry.patch_multiselect_valuesbooleanoptionalIf true, multiselect attribute values are prepended to existing values. If false, values are replaced to match the supplied list.attiomcp_update_list_entry_by_record_id#Update attribute values on a list entry by finding it via its parent record ID. Errors if the record has zero or multiple entries in the specified list.5 params
Update attribute values on a list entry by finding it via its parent record ID. Errors if the record has zero or multiple entries in the specified list.
entry_valuesobjectrequiredAn object mapping attribute slugs or IDs to their new values for the list entry.liststringrequiredThe ID or slug of the list containing the entry.parent_objectstringrequiredThe slug or ID of the object that the parent record belongs to.parent_record_idstringrequiredThe ID of the parent record whose list entry will be updated.patch_multiselect_valuesbooleanoptionalIf true, multiselect attribute values are prepended to existing values. If false, values are replaced to match the supplied list.attiomcp_update_note#Append or prepend plain-text content to an existing note and optionally update its title. At least one of operation or updated_title must be provided.3 params
Append or prepend plain-text content to an existing note and optionally update its title. At least one of operation or updated_title must be provided.
note_idstringrequiredThe ID of the note to update.operationstringoptionalOptional content update operation — append adds paragraphs to the end, prepend adds paragraphs to the start.updated_titlestringoptionalOptional new title for the note.attiomcp_update_record#Update attribute values on a people, companies, or other record by its record ID. Call list-attribute-definitions first to discover available attribute slugs and valid value formats.4 params
Update attribute values on a people, companies, or other record by its record ID. Call list-attribute-definitions first to discover available attribute slugs and valid value formats.
objectstringrequiredThe object type for the target record.record_idstringrequiredThe UUID of the record to update.valuesobjectrequiredAn object mapping attribute slugs or IDs to their new values.patch_multiselect_valuesbooleanoptionalIf true, multiselect attribute values are prepended to existing values. If false, values are replaced to match the supplied list.attiomcp_update_task#Update an existing task's deadline, completion status, assignee, or linked record. Set deadline_at to null to clear the deadline.6 params
Update an existing task's deadline, completion status, assignee, or linked record. Set deadline_at to null to clear the deadline.
task_idstringrequiredThe ID of the task to update.assignee_workspace_member_idstringoptionalThe workspace member ID to assign the task to.deadline_atstringoptionalThe new deadline date for the task as an ISO 8601 timestamp. Set to null to clear the deadline.is_completedbooleanoptionalWhether the task is completed.linked_record_idstringoptionalThe record ID to link the task to. Must be provided with linked_record_object.linked_record_objectstringoptionalThe object type for the linked record. Must be provided with linked_record_id.attiomcp_upsert_record#Create or update a people, companies, or other record using a matching attribute to find an existing record. If a record with the same matching attribute value exists it is updated; otherwise a new record is created.4 params
Create or update a people, companies, or other record using a matching attribute to find an existing record. If a record with the same matching attribute value exists it is updated; otherwise a new record is created.
matching_attributestringrequiredThe slug or ID of the unique attribute used to search for an existing record.objectstringrequiredThe object type for the target record.valuesobjectrequiredAn object mapping attribute slugs or IDs to values. Must include a value for the matching_attribute.patch_multiselect_valuesbooleanoptionalIf true, multiselect attribute values are prepended to existing values. If false, values are replaced to match the supplied list.attiomcp_whoami#Returns information about the current user's identity and workspace membership, including their email, name, workspace member ID, access level, and workspace name.0 params
Returns information about the current user's identity and workspace membership, including their email, name, workspace member ID, access level, and workspace name.