| name | attio |
| description | Attio CRM API integration with managed OAuth. Create and manage contacts, companies, deals, tasks, notes, lists, webhooks, and custom objects. Use this skill when users want to search contacts, update deal records, create companies, manage lists, or configure CRM workflows in Attio. |
Attio

Attio is a flexible CRM platform for managing contacts, companies, deals, tasks, and custom objects. This integration provides comprehensive CRUD operations across all Attio resource types through ClawLink's hosted OAuth flow.
Setup in 3 Steps
| Step 1: Install | Step 2: Pair Account | Step 3: Connect Attio |
|---|
 |  | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Attio |
How It Works
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────>│ ClawLink │────>│ Attio API │
│ (User Chat) │ │ (OAuth) │ │ │
└─────────────────┘ └──────────────┘ └──────────────────┘
Install
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Quick Start
- List companies --
attio_list_companies
- Create a person --
attio_create_person
- Search for a record --
attio_search_records
Authentication
ClawLink handles OAuth automatically. When you connect Attio through the dashboard, ClawLink obtains and refreshes tokens on your behalf. No API keys needed.
Connect at: https://claw-link.dev/dashboard?add=attio
Connection Management
Security & Permissions
Read operations (listing, searching, getting records) are safe. Write operations (creating, updating records) require confirmation. Delete operations are permanent and require explicit approval.
Tool Reference
Company Operations
| Tool | Description | Mode |
|---|
attio_list_companies | List company records with optional filtering and sorting | Read |
attio_get_company | Get a single company record by record_id | Read |
attio_create_company | Create a new company record | Write |
attio_update_company | Update a company record by record_id | Write |
attio_assert_company | Create or update a company using a unique matching attribute | Write |
attio_delete_company | Delete a company record permanently | Write |
attio_list_company_attribute_values | Get all values for a given attribute on a company | Read |
attio_list_company_record_entries | List all list entries for a company record | Read |
People Operations
| Tool | Description | Mode |
|---|
attio_people_list_persons | List person records with optional filtering | Read |
attio_people_get_person | Get a single person record by record_id | Read |
attio_create_person | Create a new person record | Write |
attio_update_person | Update a person record by record_id | Write |
attio_assert_person | Create or update a person using a unique matching attribute | Write |
attio_delete_person | Delete a person record permanently | Write |
attio_list_people_attribute_values | Get all values for a given attribute on a person | Read |
attio_list_people_record_entries | List all list entries for a person record | Read |
Deal Operations
| Tool | Description | Mode |
|---|
attio_list_deal_records | List deal records with optional filtering | Read |
attio_get_deal_record | Get a single deal record by record_id | Read |
attio_create_deal_record | Create a new deal record | Write |
attio_update_deal_record | Update a deal record by record_id | Write |
attio_delete_deal | Delete a deal record permanently | Write |
attio_list_deal_record_attribute_values | Get all values for a deal attribute | Read |
attio_list_deal_entries | List all list entries for a deal record | Read |
Task Operations
| Tool | Description | Mode |
|---|
attio_get_v2_tasks | List all tasks with optional filtering | Read |
attio_get_task | Get a single task by task_id | Read |
attio_create_task | Create a new task | Write |
attio_update_task | Update an existing task | Write |
attio_delete_task | Delete a task permanently | Write |
Note Operations
| Tool | Description | Mode |
|---|
attio_list_notes | List notes in reverse chronological order | Read |
attio_get_note | Get a single note by note_id | Read |
attio_create_note | Create a new note on a record | Write |
attio_delete_note | Delete a note permanently | Write |
List Operations
| Tool | Description | Mode |
|---|
attio_list_lists | Retrieve all lists in the workspace | Read |
attio_get_list | Retrieve details of a single list | Read |
attio_create_list | Create a new list | Write |
attio_update_list | Update an existing list | Write |
attio_get_list_entry | Get a single list entry by entry_id | Read |
attio_post_v2_lists_list_entries | Add a record to a list as a new entry | Write |
attio_post_v2_lists_list_entries_query | List entries in a list with filtering and sorting | Read |
attio_put_v2_lists_list_entries | Create or update a list entry by parent record | Write |
attio_patch_v2_lists_list_entries_entry_id | Update list entry attributes (PATCH) | Write |
attio_put_v2_lists_list_entries_entry_id | Overwrite list entry attributes (PUT) | Write |
attio_delete_entry | Delete a list entry permanently | Write |
Record Operations (Generic)
| Tool | Description | Mode |
|---|
attio_list_records | List records from a specific object type | Read |
attio_find_record | Find a record by ID or unique attributes | Read |
attio_query_records | Query records with server-side filtering and sorting | Read |
attio_search_records | Fuzzy search across multiple objects | Read |
attio_create_record | Create a new record for a specified object type | Write |
attio_update_record | Update an existing record (PATCH) | Write |
attio_patch_record | Partially update a record by record_id | Write |
attio_put_v2_objects_object_records | Create or update a record using matching attribute | Write |
attio_put_v2_objects_object_records_record_id | Overwrite a record by record_id (PUT) | Write |
attio_delete_record | Delete a record permanently | Write |
attio_get_record_entries | List all list entries for a record | Read |
attio_list_record_attribute_values | Get all values for a record attribute | Read |
attio_post_v2_objects_object_records_query | List records with complex filter/sort | Read |
Workspace & User Operations
| Tool | Description | Mode |
|---|
attio_get_self | Identify current access token and workspace | Read |
attio_list_workspace_members | List workspace members for assigning owners | Read |
attio_get_workspace_member | Get a single workspace member | Read |
attio_create_user_record | Create a new user record | Write |
attio_assert_user_record | Create or update a user record | Write |
attio_update_user_record | Update a user record by record_id | Write |
attio_delete_user | Delete a user record permanently | Write |
attio_list_user_records | List user records | Read |
attio_list_user_record_entries | List list entries for a user record | Read |
attio_get_workspace_record | Get a single workspace record | Read |
attio_create_workspace_record | Create a new workspace record | Write |
attio_assert_workspace | Create or update a workspace record | Write |
attio_update_workspace_record | Update a workspace record by ID | Write |
attio_delete_workspace_record | Delete a workspace record permanently | Write |
attio_list_workspace_records | List workspace records | Read |
attio_list_workspace_record_entries | List list entries for a workspace record | Read |
attio_list_workspace_record_attribute_values | Get attribute values for a workspace record | Read |
Object & Attribute Schema Operations
| Tool | Description | Mode |
|---|
attio_list_objects | List all available objects (system and custom) | Read |
attio_get_object | Get a single object's schema | Read |
attio_create_object | Create a new custom object | Write |
attio_update_object | Update an object's configuration | Write |
attio_list_attributes | List attribute schema for an object or list | Read |
attio_get_attribute | Get detailed info about a single attribute | Read |
attio_create_attribute | Create a new attribute on an object or list | Write |
attio_update_attribute | Update an existing attribute | Write |
attio_list_attribute_options | List select options for an attribute | Read |
attio_create_select_option | Add a new select option | Write |
attio_update_select_option | Update an existing select option | Write |
attio_list_attribute_statuses | List statuses for a status attribute | Read |
attio_create_status | Create a new status option | Write |
attio_update_status | Update a status option | Write |
Comment & Thread Operations
| Tool | Description | Mode |
|---|
attio_list_threads | List comment threads on a record or list entry | Read |
attio_get_comment | Get a single comment by comment_id | Read |
attio_create_comment | Create a new comment on a thread, record, or list entry | Write |
attio_delete_comment | Delete a comment permanently | Write |
Webhook Operations
| Tool | Description | Mode |
|---|
attio_list_webhooks | Get all webhooks in the workspace | Read |
attio_get_webhook | Get a single webhook by webhook_id | Read |
attio_create_webhook | Create a new webhook subscription | Write |
attio_update_webhook | Update a webhook's target URL or subscriptions | Write |
attio_delete_webhook | Delete a webhook permanently | Write |
Meeting & Call Operations
| Tool | Description | Mode |
|---|
attio_list_meetings | List all meetings in the workspace (beta) | Read |
attio_list_call_recordings | List call recordings for a meeting (beta) | Read |
Code Examples
Search for a company
{
"tool": "attio_search_records",
"args": { "query": "Acme Corp" }
}
Create a company
{
"tool": "attio_create_company",
"args": {
"name": "Acme Corp",
"domains": ["acmecorp.com"]
}
}
Update a deal
{
"tool": "attio_update_deal_record",
"args": {
"record_id": "rec-001",
"stage": "closed-won",
"value": 50000
}
}
Add a note to a company
{
"tool": "attio_create_note",
"args": {
"parent_object": "companies",
"parent_record_id": "rec-001",
"title": "Meeting notes",
"content": "Discussed expansion plans for Q2."
}
}
Discovery Workflow
- Call
clawlink_list_integrations to confirm attio is connected.
- Call
clawlink_list_tools --integration attio to see the live catalog.
- Use
attio_list_objects to discover all object types in the workspace.
- Use
attio_list_attributes for a given object to see available fields.
Execution Workflow
Read path: User asks "Find contact at Acme" -> attio_search_records
Write path: User asks "Create a new deal" -> Confirm -> attio_create_deal_record
Delete path: User asks "Remove company X" -> Confirm -> attio_delete_company
Notes
- Use
attio_list_objects first to discover valid object slugs before calling record operations.
- Attribute values are returned as arrays of time-bounded entries, not simple scalars.
- The
assert_* tools create or update records based on a unique matching attribute, preventing duplicates.
- Company and person objects do not support status attributes.
- Logo URLs (companies) and avatar URLs (people) cannot be set via the API.
Error Handling
| Status / Error | Meaning |
|---|
| Tool not found | Attio integration not connected |
| Missing connection | Authenticate via https://claw-link.dev/dashboard?add=attio |
| 404 Not Found | Record, object, or attribute does not exist |
| 400 Bad Request | Invalid attribute slug or missing required field |
Troubleshooting
Tools Not Visible
Run clawlink_list_tools --integration attio to confirm the connection is active.
Record Creation Fails
Verify the object slug exists with attio_list_objects and check required attributes with attio_list_attributes.
Resources
Powered by ClawLink -- an integration hub for OpenClaw
