Attio
Attio is the AI-native CRM that builds, scales and grows your company to the next level.
Categories: CRM
Type: attio/v1
Connections
Version: 1
Access Token
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| token | Access Token | STRING | Can be found in Workspace Settings -> Developers -> Access tokens. | true |
Connection Setup
Find Access Token
- Navigate to your dashboard.
- Click on Workspace settings.
- Click on Developers.
- Click on Create access token.
- Enable Records.
- Enable Tasks.
- Enable Webhooks.
- Click on Save changes.
- Click here to copy the access token.
Actions
Create Record
Name: createRecord
Creates a new record.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| record_type | Record Type | STRING | Type of record that will be created. | true |
| people | Person | OBJECT Properties{STRING(first_name), STRING(last_name), STRING(email_address), STRING(description), STRING(company), STRING(job_title), STRING(facebook), STRING(instagram), STRING(linkedin), [STRING(deal)]\(associated_deals), [STRING\(user)](associated_users)} | true | |
| companies | Company | OBJECT Properties{STRING(domains), STRING(name), STRING(description), STRING(facebook), STRING(instagram), STRING(linkedin), STRING(estimated_arr_usd), DATE(foundation_date), STRING(employee_range), [STRING(category)]\(categories), [STRING\(deal)](associated_deals), [STRING($workspace)](associated_workspaces)} | true | |
| users | OBJECT Properties{STRING(person), STRING(email_address), STRING(user_id), [STRING($workspace)](workspace)} | true | ||
| deals | OBJECT Properties{STRING(name), STRING(stage), STRING(owner), NUMBER(value), [STRING($people)](associated_people), STRING(associated_company)} | true | ||
| workspaces | OBJECT Properties{STRING(workspace_id), STRING(name), [STRING($user)](users), STRING(company), STRING(avatar_url)} | true |
Example JSON Structure
{
"label" : "Create Record",
"name" : "createRecord",
"parameters" : {
"record_type" : "",
"people" : {
"first_name" : "",
"last_name" : "",
"email_address" : "",
"description" : "",
"company" : "",
"job_title" : "",
"facebook" : "",
"instagram" : "",
"linkedin" : "",
"associated_deals" : [ "" ],
"associated_users" : [ "" ]
},
"companies" : {
"domains" : "",
"name" : "",
"description" : "",
"facebook" : "",
"instagram" : "",
"linkedin" : "",
"estimated_arr_usd" : "",
"foundation_date" : "2021-01-01",
"employee_range" : "",
"categories" : [ "" ],
"associated_deals" : [ "" ],
"associated_workspaces" : [ "" ]
},
"users" : {
"person" : "",
"email_address" : "",
"user_id" : "",
"workspace" : [ "" ]
},
"deals" : {
"name" : "",
"stage" : "",
"owner" : "",
"value" : 0.0,
"associated_people" : [ "" ],
"associated_company" : ""
},
"workspaces" : {
"workspace_id" : "",
"name" : "",
"users" : [ "" ],
"company" : "",
"avatar_url" : ""
}
},
"type" : "attio/v1/createRecord"
}Output
The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.
Create Task
Name: createTask
Creates a new task.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| content | Content | STRING | Content of the task. | true |
| deadline_at | Deadline | DATE_TIME | Deadline of the task. | true |
| is_completed | Is Completed | BOOLEAN Optionstrue, false | Weather the task completed. | true |
| linked_records | Linked Records | ARRAY Items[{STRING(target_object), STRING(target_record_id)}] | Records linked to the task. | true |
| assignees | Assignees | ARRAY Items[STRING] | Assignees of the task. | false |
Example JSON Structure
{
"label" : "Create Task",
"name" : "createTask",
"parameters" : {
"content" : "",
"deadline_at" : "2021-01-01T00:00:00",
"is_completed" : false,
"linked_records" : [ {
"target_object" : "",
"target_record_id" : ""
} ],
"assignees" : [ "" ]
},
"type" : "attio/v1/createTask"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| data | OBJECT Properties{{STRING(workspace_id), STRING(task_id)}(id), STRING(content_plaintext), BOOLEAN(is_completed), STRING(deadline_at), [{STRING(target_object_id), STRING(target_record_id)}](linked_records), [{STRING(referenced_actor_type), STRING(referenced_actor_id)}](assignees), {STRING(type), STRING(id)}(created_by_actor), STRING(created_at)} |
Output Example
{
"data" : {
"id" : {
"workspace_id" : "",
"task_id" : ""
},
"content_plaintext" : "",
"is_completed" : false,
"deadline_at" : "",
"linked_records" : [ {
"target_object_id" : "",
"target_record_id" : ""
} ],
"assignees" : [ {
"referenced_actor_type" : "",
"referenced_actor_id" : ""
} ],
"created_by_actor" : {
"type" : "",
"id" : ""
},
"created_at" : ""
}
}Update Record
Name: updateRecord
Updates a record.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| record_type | Record Type | STRING | Type of record that will be created. | true |
| record_id | Record ID | STRING Depends Onrecord_type | ID of the record that will be updated. | true |
| people | Person | OBJECT Properties{STRING(first_name), STRING(last_name), STRING(email_address), STRING(description), STRING(company), STRING(job_title), STRING(facebook), STRING(instagram), STRING(linkedin), [STRING(deal)]\(associated_deals), [STRING\(user)](associated_users)} | true | |
| companies | Company | OBJECT Properties{STRING(domains), STRING(name), STRING(description), STRING(facebook), STRING(instagram), STRING(linkedin), STRING(estimated_arr_usd), DATE(foundation_date), STRING(employee_range), [STRING(category)]\(categories), [STRING\(deal)](associated_deals), [STRING($workspace)](associated_workspaces)} | true | |
| users | OBJECT Properties{STRING(person), STRING(email_address), STRING(user_id), [STRING($workspace)](workspace)} | true | ||
| deals | OBJECT Properties{STRING(name), STRING(stage), STRING(owner), NUMBER(value), [STRING($people)](associated_people), STRING(associated_company)} | true | ||
| workspaces | OBJECT Properties{STRING(workspace_id), STRING(name), [STRING($user)](users), STRING(company), STRING(avatar_url)} | true |
Example JSON Structure
{
"label" : "Update Record",
"name" : "updateRecord",
"parameters" : {
"record_type" : "",
"record_id" : "",
"people" : {
"first_name" : "",
"last_name" : "",
"email_address" : "",
"description" : "",
"company" : "",
"job_title" : "",
"facebook" : "",
"instagram" : "",
"linkedin" : "",
"associated_deals" : [ "" ],
"associated_users" : [ "" ]
},
"companies" : {
"domains" : "",
"name" : "",
"description" : "",
"facebook" : "",
"instagram" : "",
"linkedin" : "",
"estimated_arr_usd" : "",
"foundation_date" : "2021-01-01",
"employee_range" : "",
"categories" : [ "" ],
"associated_deals" : [ "" ],
"associated_workspaces" : [ "" ]
},
"users" : {
"person" : "",
"email_address" : "",
"user_id" : "",
"workspace" : [ "" ]
},
"deals" : {
"name" : "",
"stage" : "",
"owner" : "",
"value" : 0.0,
"associated_people" : [ "" ],
"associated_company" : ""
},
"workspaces" : {
"workspace_id" : "",
"name" : "",
"users" : [ "" ],
"company" : "",
"avatar_url" : ""
}
},
"type" : "attio/v1/updateRecord"
}Output
The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.
Find Record ID
To find the Record ID, click here.
Triggers
Record Created
Name: recordCreated
Triggers when new record is created.
Type: DYNAMIC_WEBHOOK
Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| event_type | STRING | Type of an event that triggers the trigger. |
| id | OBJECT Properties{STRING(workspace_id), STRING(task_id)} | |
| actor | OBJECT Properties{STRING(type), STRING(id)} |
JSON Example
{
"label" : "Record Created",
"name" : "recordCreated",
"type" : "attio/v1/recordCreated"
}Task Created
Name: taskCreated
Triggers when new task is created.
Type: DYNAMIC_WEBHOOK
Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| event_type | STRING | Type of an event that triggers the trigger. |
| id | OBJECT Properties{STRING(workspace_id), STRING(task_id)} | |
| actor | OBJECT Properties{STRING(type), STRING(id)} |
JSON Example
{
"label" : "Task Created",
"name" : "taskCreated",
"type" : "attio/v1/taskCreated"
}What to do if your action is not listed here?
If this component doesn't have the action you need, you can use Custom Action to create your own. Custom Actions empower you to define HTTP requests tailored to your specific requirements, allowing for greater flexibility in integrating with external services or APIs.
To create a Custom Action, simply specify the desired HTTP method, path, and any necessary parameters. This way, you can extend the functionality of your component beyond the predefined actions, ensuring that you can meet all your integration needs effectively.
Additional Instructions
How to find your Record ID
Many Attio API endpoints require a record_id, but in most integrations you only have another unique identifier (such as an email, company domain, or external ID).
The recommended approach is:
- Query records using a filter.
- Read the
data[].id.record_idfield from the response. - Use that
record_idin subsequent API requests.
Query Records
Endpoint
POST /v2/objects/{object}/records/queryReplace {object} with your object slug, for example:
peoplecompaniesdeals- your custom object slug
Example
curl --request POST \
--url https://api.attio.com/v2/objects/people/records/query \
--header "Authorization: Bearer YOUR_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"filter": {
"email_addresses": "john@example.com"
},
"limit": 1
}'Response
{
"data": [
{
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"object_id": "97052eb9-e65e-443f-a297-f2d9a4a7f795",
"record_id": "bf071e1f-6035-429d-b874-d83ea64ea13b"
},
"created_at": "2022-11-21T13:22:49.061281000Z",
"values": {}
}
]
}The value you need is:
data[0].id.record_idExample:
bf071e1f-6035-429d-b874-d83ea64ea13bCommon Lookup Examples
Find a person by email
{
"filter": {
"email_addresses": "john@example.com"
},
"limit": 1
}Find a company by domain
{
"filter": {
"domains": "acme.com"
},
"limit": 1
}References
How is this guide?
Last updated on