attio

Attio CRM bindings for Hot: records (query, create, assert upserts by matching attribute, update, delete) with object/attribute configuration, notes, tasks, comment threads, lists, and workspace members on Attio's v2 API.

Setup

Context variable attio.api.key (Workspace settings → Developers → access token), with scopes matching the modules you use — Records, Object Configuration, Notes, Tasks, Comments, User Management.

Usage

::records ::attio::records
::notes ::attio::notes
::tasks ::attio::tasks
::comments ::attio::comments
::workspace ::attio::workspace

person ::records/assert-record("people", "email_addresses", {
  email_addresses: [{email_address: "ada@example.com"}],
  name: [{first_name: "Ada", last_name: "Lovelace", full_name: "Ada Lovelace"}]
})

::notes/create-note("people", person.id.record_id, "Intro call", "Wants the enterprise tier.")

::tasks/create-task("Send the proposal", {
  deadline_at: "2026-08-01T12:00:00Z",
  linked_records: [{target_object: "people", target_record_id: person.id.record_id}]
})

// Comment threads need an author: a workspace member id
me first(::workspace/list-members().data)
::comments/create-comment(
  {object: "people", record_id: person.id.record_id},
  "Followed up by email.",
  me.id.workspace_member_id)

hits ::records/query-records("companies", {
  filter: {domains: {domain: {"$contains": "example.com"}}}
})

// Read an object's attribute slugs before writing records to it
attrs ::records/list-attributes("people")

License

Apache-2.0 - see LICENSE