Pro plan. Attio works through a connection, HTTP steps and listeners (Wait for webhook, Call & wait), which are part of Pro and Agency (and the free trial). Anything you already have keeps working on every plan. See Plans and billing.
How it connects: Attio’s REST API with an access token, and Attio webhooks. See Attio’s people records docs (including the assert behavior). Requests and answers follow Attio’s docs.
Before you start
- An access token: in Attio, open Workspace settings > Developers, create an integration and give it read and write access to records (and lists, if you add people to one). Copy its access token.
1. Connect Attio
In Kerux, open Integrations > Connections, click Connect on Custom API (under Developers):- How it signs in: Bearer token, paste the token.
- Base URL:
https://api.attio.com
2. Assert the person
Add a Webhook / HTTP step after Invitation accepted, pick the Attio connection, name itattio and paste:
PUT and matching_attribute, Attio updates the person whose email matches and creates one when none does (its assert behavior). The answer has the record id at data.id.record_id and a link at data.web_url: {{steps.attio.response.body.data.id.record_id}}.
The assert call needs an email. For contacts without one, use POST /v2/objects/people/records (create) with the same body, which fails if the email already exists.
3. Let Attio steer the campaign
1
Add a Wait for webhook step
Choose One shared URL + a match rule and match the record id in Attio’s payload to
{{steps.attio.response.body.data.id.record_id}}. Click Listen for test event.2
Create the webhook in Attio
In Attio’s developer settings, add a webhook for record updates with the Kerux URL. Change a test record so Kerux gets a sample, then pick the fields to match and branch on.
Test with one contact
In the campaign’s Builder, click Test to open Test on one contact. The journey shows Attio’s answer; open the record fromdata.web_url.
Common errors
403 or a scope error
403 or a scope error
The integration lacks write access to records. Change its scopes in Workspace settings > Developers.
Conflict on email_addresses
Conflict on email_addresses
You used the create endpoint for an email that already exists. Use the assert call above.
400 about an attribute
400 about an attribute
The attribute slug doesn’t exist in your workspace (for example a custom LinkedIn attribute with another slug). Check the slugs in Attio’s object settings.