Loopfour
Integrations

Attio actions

Reference for the Attio actions: the sign-in connection, each action id, the fields each executor reads, the record output and a complete example.

The Attio block creates, reads, lists, updates and deletes records in any Attio object. For the plain-language guide, see Attio.

When to use it

Use it to keep customer companies, people and deals in Attio in step with billing, for example to create a company when a customer is set up in the ledger. There is no Attio trigger.

Connection

  • Provider id: attio. Sign-in (OAuth) connection to one Attio workspace.
  • Pin an account with config.connection. Without it, the step uses the company's default Attio connection.

Actions

Action idStudio labelWhat it does
attio.createRecordCreate RecordCreate a record in an object. matchingAttribute de-duplicates on that attribute.
attio.updateRecordUpdate RecordUpdate a record's attributes.
attio.getRecordGet RecordRead a record.
attio.listRecordsList RecordsQuery an object's records with a filter, sorts, limit and offset.
attio.deleteRecordDelete RecordDelete a record.

Settings

The Studio fields:

FieldStudio labelTypeUsed byRequired for
connectionAttio Accountstring (connection id)AllOptional. Without it the step uses the company default connection for this system
objectTypeObject Typestring: people, companies, deals, customAllAll
customObjectSlugCustom Object Slugstringcustom
recordIdRecord IDstringgetRecord, updateRecord, deleteRecord
attributesAttributes (JSON)jsoncreateRecord, updateRecord
filterFilter (JSON)jsonlistRecords

Fields each action reads

The executors read objectSlug and data, not the Studio objectType, customObjectSlug and attributes fields, so steps built only in Studio fail with objectSlug is required. Set these keys in the workflow definition:

ActionFields read
createRecordobjectSlug (such as companies, people, deals or a custom object slug), data (Attio values payload), optional matchingAttribute
updateRecordobjectSlug, recordId, data
getRecordobjectSlug, recordId
listRecordsobjectSlug, optional filter, sorts, limit, offset
deleteRecordobjectSlug, recordId

createRecord with matchingAttribute sends Attio's matching_attribute, which de-duplicates on that attribute.

Output

The step output is the Attio response, with the record or records under data. For example {{steps.find_company.data}}.

Example

Find the company record for a customer by name.

{
  "name": "Find a customer in Attio",
  "trigger": { "type": "api" },
  "steps": [
    {
      "id": "find_company",
      "type": "action",
      "name": "Find the company",
      "action": "attio.listRecords",
      "config": {
        "objectSlug": "companies",
        "filter": { "name": "{{input.companyName}}" },
        "limit": 1
      }
    }
  ]
}

Other executors

The Attio module also has executors the block does not list, such as attio.createNote, attio.createTask and attio.addListEntry. The workflow validator accepts only the operations in the table above.

Live catalog

  • GET /api/v1/blocks/attio returns the actions and fields.
  • GET /api/v1/blocks/attio/actions/<operation>/examples returns stored examples where they exist.

Errors and limits

  • An Attio API error fails the step.
  • A missing objectSlug, recordId or data fails the step before Attio is called.

On this page