New260+ blocks and 240+ tools are now fully documented
DocumentationReferenceTool IntegrationsCRM & Sales
Tool

Attio

List, create, update, delete records and manage notes in Attio CRM

Read and write records across any Attio object type (people, companies, deals, or custom objects), and manage notes attached to those records. Use this integration to keep your CRM in sync with the rest of your workflow.

Overview

PropertyValue
Typeattio
CategoryTool — CRM
AuthOAuth 2.0 (Bearer token injected automatically after connecting your Attio account)

Operations

OperationTool IDDescription
List Recordsattio_list_recordsQuery and page through records for a given object type, with optional filter and sort
Get Recordattio_get_recordFetch a single record by its ID
Create Recordattio_create_recordCreate a new record with the supplied attribute values
Update Recordattio_update_recordPatch an existing record; multiselect attributes are appended, not replaced
Delete Recordattio_delete_recordPermanently delete a record
Create Noteattio_create_noteAttach a new note to any record
List Notesattio_list_notesList notes, optionally filtered by parent object type and record

Configuration

SettingParam nameTypeRequiredDescription
Attio AccountaccessTokenstring (hidden)YesOAuth access token injected automatically when you connect your Attio account. Never set this manually.
Object TypeobjectTypestringYes (record ops)Slug of the Attio object type, e.g. people, companies, deals.
Record IDrecordIdstringYes (get / update / delete)ID of the target record.
Attributes (JSON)valuesstringYes (create / update)JSON object of attribute values to write, e.g. {"name": "Jane Doe", "email_addresses": [{"email_address": "jane@acme.com"}]}.
Filter (JSON)filterstringNo (list records)Attio filter object as a JSON string, e.g. {"email_addresses": {"email_address": "jane@acme.com"}}.
Sorts (JSON)sortsstringNo (list records)JSON array of sort objects, e.g. [{"direction": "asc", "attribute": "name"}].
LimitlimitnumberNoMaximum records/notes to return. Default 500 for records, 10 (max 50) for notes.
OffsetoffsetnumberNoNumber of records/notes to skip; use with limit for pagination.
Parent ObjectparentObjectstringYes (create note) / No (list notes)Slug of the parent object type the note belongs to, e.g. people.
Parent Record IDparentRecordIdstringYes (create note) / No (list notes)ID of the record the note is attached to.
Note TitletitlestringYes (create note)Title of the note.
Note ContentcontentstringYes (create note)Body text of the note.
FormatformatstringNo (create note)Content format: plaintext (default) or markdown.
Created AtcreatedAtstringNo (create note)ISO 8601 timestamp to backdate the note creation time.
Meeting IDmeetingIdstringNo (create note)Attio meeting ID to associate with the note.

Outputs

Record operations (attio_list_records, attio_get_record, attio_create_record, attio_update_record)

FieldTypeDescription
recordobjectFull Attio record object (get / create / update only)
record.id.workspace_idstringWorkspace the record belongs to
record.id.object_idstringObject type identifier
record.id.record_idstringUnique record identifier
record.created_atstringISO 8601 creation timestamp
record.web_urlstringDirect link to the record in the Attio app
record.valuesjsonAll attribute values on the record
recordIdstringShortcut to the record ID (get / create / update only)
webUrlstringShortcut to the record web URL (get / create / update only)
recordsarrayArray of record objects (list only)
countnumberNumber of records returned (list only)

Delete operation (attio_delete_record)

FieldTypeDescription
deletedbooleantrue when the record was successfully deleted

Note operations (attio_create_note, attio_list_notes)

FieldTypeDescription
noteIdstringUnique ID of the note
parentObjectstringSlug of the parent object type
parentRecordIdstringID of the record the note is attached to
titlestringNote title
contentPlaintextstringNote body as plain text
contentMarkdownstringNote body as Markdown
meetingIdstringLinked meeting ID (if any)
tagsarrayTags on the note; each item has type and workspaceMemberId
createdByActor.typestringActor type: workspace-member, api-token, or system
createdByActor.idstringID of the actor who created the note
createdAtstringISO 8601 timestamp when the note was created
notesarrayArray of note objects (list only)
countnumberNumber of notes returned (list only)

Example

[Starter] → [Attio: List Records] → [Agent: summarise the pipeline]

Connect a Starter block that fires on a schedule, then use the Attio block with objectType set to deals and a filter such as {"stage": {"stage_name": "Negotiation"}} to pull every deal in negotiation. Pass {{attio.records}} to an Agent block with the instruction "Summarise the pipeline status and highlight any deal stalled for more than 14 days." You can also chain a second Attio block set to Create Note (using {{attio.records[0].id.record_id}} as parentRecordId) to log the summary back onto the deal record automatically.

Tips

  • Object type slugs are the API slugs shown in your Attio workspace settings — people, companies, or a custom slug like opportunities. They are always lowercase with hyphens, not display names.
  • values must be valid JSON — wrap the param with {{...}} from an upstream block or write the JSON inline. If the string cannot be parsed, the tool sends an empty object and the create/update will succeed but record no attributes.
  • Update appends multiselect values — the attio_update_record tool uses PATCH semantics, so sending a new option to a multiselect attribute adds it alongside existing values rather than replacing them. Use attio_delete_record + attio_create_record if you need a full overwrite.
  • Paginationattio_list_records defaults to up to 500 records per call; use limit and offset together to page through large datasets across multiple workflow steps.