> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twinbay.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Attio

> Objects, attributes and records, with lists, notes and tasks on top

A CRM's records, lists, notes and tasks over Attio's REST API. Attio publishes no client library, so the conformance suite pins the OpenAPI document Attio serves and validates every response the twin gives against it.

**Slug:** `attio`

## What it models

| Area                   | Modelled                                                                                                                                                                                                                                                                                  |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Workspace              | One workspace with two members, the `people` and `companies` standard objects with a subset of their system attributes, and one list, `sales_pipeline`, over companies with a stage, an owner and a deal value. `deals` ships switched off, as Attio ships it                             |
| Objects and attributes | List, create, retrieve, update and delete objects, with system objects refusing deletion and a custom one taking its attributes and records with it; attributes on either an object or a list; the statuses of a status attribute and the options of a select attribute                   |
| Records                | Create, retrieve, delete, `PATCH` that prepends multiselect values and `PUT` that overwrites them, upsert on a matching attribute, and uniqueness on the attributes that declare it                                                                                                       |
| Values                 | Text, number, checkbox, currency, date, timestamp, rating, status, select, record reference, actor reference, domain, email address, phone number and personal name, taken as a bare scalar, an object or a list of either, cleared by `null`, and reported with the actor who wrote them |
| Querying               | Attio's shorthand and verbose filters with `$eq`, `$in`, `$not_empty`, `$contains`, `$starts_with`, `$ends_with`, `$lt`, `$lte`, `$gt`, `$gte`, `$and`, `$or` and `$not`; sorts by attribute; limit and offset pagination                                                                 |
| Lists and entries      | List CRUD with Attio's permission rules, adding a record to a list, updating an entry by either verb, deleting one, upsert by parent record, and entry queries                                                                                                                            |
| Notes and tasks        | Notes in plaintext or the subset of markdown Attio accepts, returned both ways; tasks with linked records named by object and id or by email address or domain, assignees, deadlines, completion, and Attio's own filters and sorts                                                       |
| Authentication         | A 64-character key in `Authorization: Bearer`, `GET /v2/self` introspection, scope enforcement on writes, and account-wide rate limiting answered `429` with `Retry-After`                                                                                                                |

Advancing runs Attio's enrichment: a company created with a domain gains a name, a description, a category and an employee range, and a person created with an email address gains a name, a job title and an avatar. Enrichment fills empty attributes only, and credits the values to Attio's `system` actor.

## Scenarios

`stocked-workspace`, `read-only-token`, `rate-limited-token`, `suspended-member`, `deals-enabled`.

## Not modelled

Threads and comments, webhooks, meetings and call recordings, files, emails, sequences, activities, saved views, SQL, record search and record merging; the attribute value-history endpoints; and writing select options or statuses, which you can read but not change. Note tags are always empty, and `location` and `interaction` attribute values have no seeded attribute to reach them through. A record reference is stored as given: the twin does not check that the record it points at exists, because what Attio answers for one that does not could not be observed.
