ACTION_ID: attio_create_record NAME: Attio: Create Record CATEGORY: CRM CREDITS: 0 Insert a record into any Attio object. ================================================================================ PREREQUISITE — USER ACTION REQUIRED ================================================================================ This action only works if the user has connected their Attio workspace in Floqer. The connection cannot be made via the API or by an AI agent. The user must do this themselves before this action will run: 1. Sign in to Floqer at https://app.floqer.com 2. Open the Connections page from the sidebar 3. Click Attio and complete the OAuth flow If the user has not connected Attio, this action will fail with a connection / authentication error. Before configuring or running this action, confirm with the user that the Attio connection exists. INDEX: 1. Inputs 2. Outputs 3. How to configure 4. Key notes 5. Where it fits in a workflow 6. When to use 7. When not to use ================================================================================ 1. INPUTS ================================================================================ attio_object (dynamicDropdown, required) Attio Object. Choose the Attio object to create the record in (People, Companies, Deals, or any custom object). Value is the object's api_slug. add_attributes_and_their_values (jsonArray, required) Add Attributes and their Values. Select attributes from the object and add their values. This is the WRITABLE catalogue — read-only attributes (created_at, formulas) are not offered because Attio rejects writes to them. ================================================================================ 2. OUTPUTS ================================================================================ record_id (string) — Record ID. The ID of the record created. record_url (url) — Record URL. Direct link to the record in Attio. attributes (json) — Attributes. Every attribute on the record after the write, keyed by attribute slug — including values Attio defaulted or derived, not just the ones sent. created_at (date) — Created At. When the record was first created in Attio. ================================================================================ 3. HOW TO CONFIGURE ================================================================================ Resolve the dynamic field values via Get Action Field Options before configuring: POST /api/v1/workflows/{workflow_id}/sheets/{sheet_id}/actions/{action_instance_id}/options/attio_object (body: {}) → the objects in the connected Attio workspace. POST .../options/add_attributes_and_their_values (body: { "context": { "attio_object": "people" } }) → writable attributes on the chosen object. Each option's `extras` carries the Attio `type`, whether it accepts multiple values, and a `reference` token when its values come from a list. POST .../options/add_attributes_and_their_values (body: { "context": { "reference": "" } }) → the selectable values behind that token (select options, status values, workspace members, referenced records). Configure Action body: { "inputs": { "attio_object": "people", "add_attributes_and_their_values": [ { "name": "name", "value": "{{input.full_name}}" }, { "name": "email_addresses", "value": "{{input.work_email}}" }, { "name": "job_title", "value": "{{enrich_1.title}}" } ] } } Field-by-field: - attio_object Object api_slug from the `attio_object` options call. - add_attributes_and_their_values `[{name, value}]` — `name` is the attribute api_slug (use the options call for valid values); `value` accepts `{{ref}}` tokens or literals. Reference translation runs per item. ================================================================================ 4. KEY NOTES ================================================================================ - The Attio connection must live on the API key's user account. If the connection lives under a different team member, Get Action Field Options returns a 424 — provision the API key from the user who owns the connection. - An attribute the selected object does not have comes back as a `warnings[]` entry (`unknown_field`) from Configure Action, and the row is ignored at run time — check `warnings` after configuring rather than waiting for the run. - Attio has no "create if absent" semantics here — this always inserts. Attio's own duplicate detection may still merge the new record into an existing one afterwards; if you need deterministic matching, use attio_upsert_record. - Composite attributes take a plain value: send "Ada Lovelace" for `name`, "acme.com" for `domains`, "ada@acme.com" for `email_addresses`. The nesting Attio's API expects is built for you. - A multi-value attribute accepts several entries with the same `name`, or a comma-separated value. - A record-reference or select attribute needs a value Attio already knows. Resolve it through the `reference` token (see §3) rather than typing a label. - `attributes` is the record as Attio stored it, which is the authoritative copy — read defaults and derived attributes off it instead of assuming the write went in verbatim. ================================================================================ 5. WHERE IT FITS IN A WORKFLOW ================================================================================ Pattern: enrichment -> attio_lookup_record -> workflow_if_else (run_if: {{lookup.record_ids}} is empty) -> attio_create_record. ================================================================================ 6. WHEN TO USE ================================================================================ Use attio_create_record when the record is known not to exist, or on the empty branch after a lookup. ================================================================================ 7. WHEN NOT TO USE ================================================================================ The record may already exist -> attio_upsert_record (https://floqer.com/docs/action-detail/attio_upsert_record.txt) You have the record id already -> attio_update_record (https://floqer.com/docs/action-detail/attio_update_record.txt) ================================================================================ This file is maintained manually. Last updated: 2026-08-11. Full interactive reference: https://floqer.com/docs/reference Action catalog: https://floqer.com/docs/action-catalog.txt