Attio destination integration

Updated

About this integration

Powerful, flexible and data-driven, Attio makes it easy to build the exact CRM that your business needs.

Our Attio destination creates or updates records for people, users, companies, and workspaces in Attio. This integration helps you keep your Attio workspace up-to-date with the latest information about your customers.

Getting started: cloud mode

  1. Go to the Data Pipelines tab and click Connections.

  2. Click Add New under Destinations.

  3. Select the Attio destination.

  4. (Optional) Select the sources that you want to connect to this destination. You can always connect sources to your destination later. We’ll only show you eligible sources.

  5. Configure your destination.

  6. Click Enable Destination.

Identify User

Attio has two different kinds of records for people: Person and User. The Identify User action asserts both records and links them together.

  • A Person represents an actual human. People have names, email addresses, Twitter profiles, email and calendar interactions, etc. (In some other CRMs, you might think of this as a lead or contact).

  • A User represents a user login or profile in your product. Users might have feature flags, permission levels, etc. In Attio, a person can have multiple user records—like a person that has multiple logins across workspaces.

When you identify someone, the Attio Identify User action creates both records—a person and a user—and links them together. Attio relies on both email and ID values to create, update, and associate people so your `identify call must capture both properties:

  1. An email property, to create or update a Person. By default, we map to traits.email in your identify call.
  2. An ID property, to create or update an associated User. By default we map to the userId in your identify call.
{
    "type": "identify",
    "userId": "coolUser123",
    "traits": {
        "email": "coolUser123@example.com"
    }
}   

If you need to assert people and users independently, you can configure an Assert Record action instead.

 Make sure you’ve activated the user object

You cannot use the standard user object before you activate it. Go to your Workspace Settings > Objects in Attio and click Activate next to the users object.

Set people and user attributes

 Make sure that your attributes exist in Attio

You can send attributes or traits to Customer.io and we’ll create them if they don’t already exist. That’s not the case in Attio. If you map an attribute that doesn’t exist in Attio, your action will fail and we’ll show errors for your identify requests. See attribute types below for more information.

You can assign attributes to people or users in Attio as a part of your Identify User action. To do this, you’ll need the IDs or slugs of the attributes you want to set. In general, the human-readable slugs are easier to deal with.

To set attributes in your Identify User action, click Add Key/Value for Additional User attributes or Additional Person attributes. The value on the left is the attribute ID or slug from Attio, and the value on the right is the trait from your incoming identify call that you want to set on the person or user.

The customer.io Identify User action screen showing the Attio twitter attribute
The customer.io Identify User action screen showing the Attio twitter attribute

Note that users don’t typically have many default attributes in Attio. Make sure that your attributes are declared in Attio before you add them to your Identify User action. See attribute types below for more information.

Group Workspace

The Group Workspace action creates or updates a company (by domain, like company.com) and an associated workspace (by name).

  • A Company can have names and domains, as well as enriched properties like ARR or category.
  • A Workspace represents a group of users in your product. Workspaces might have feature flags, billing configurations, customer support representatives, etc. A company can have more than one workspace.

To support both companies and workspaces, your group calls need to include both the group ID and a website trait. The website is the company we’re going to create or update, and the group ID is the workspace we’re going to create or update.

{
    "type": "group",
    "groupId": "workspaceId",
    "traits": {
        "website": "company.com",
    }
}

This mapping asserts both a company and workspace and links them together. If you need to assert your companies and workspaces independently, you should set up your own Assert Record action(s).

 Make sure you’ve activated the workspace object

You cannot use the standard workspace object before you activate it. Got to your Workspace Settings > Objects in Attio and click Activate next to the workspace object.

Set company and workspace attributes

 Make sure that your attributes exist in Attio

You can send attributes or traits to Customer.io, and we’ll create them if they don’t already exist. That’s not the case in Attio. If you map an attribute that doesn’t exist in Attio, your action will fail and we’ll show errors for your group requests. See attribute types below for more information.

To assign attributes to a company or workspace in Attio, you’ll need the ID or slug of the attribute you want to set. In general, the human-readable slug is easier to deal with.

To set attributes in your Group Workspace action, you’ll click Add Key/Value for Additional Company attributes or Additional Workspace attributes. The value on the left is the attribute ID or slug from Attio, and the value on the right is the trait from your incoming group call that you want to set on the person or user.

For example, if you wanted to set a twitter attribute in Attio, but you send traits.twitter_handle in your group call, you would set up your mapping like this:

The customer.io Group Workspace scree showing the Attio twitter attribute
The customer.io Group Workspace scree showing the Attio twitter attribute

Workspaces don’t typically have many default attributes in Attio. Make sure that your attributes are declared in Attio before you add them to your Group Workspace action. See attribute types below for more information.

Assert Record: create your own action

The Assert Record action lets you create or update an Attio object (like a person or a company) with a matching attribute and value. For example, you could assert an individual person by ID by email address without updating associated user records.

When you set up an Asset Record, you’ll need to set the Attio Object property. This is the kind of record you want to assert (create or update) in Attio.

Then, you’ll need to set the Matching Attribute property. This is the slug for the attribute in Attio, and must also be present in your incoming call. Using our example above, we’d select Person as our Attio Object and email as our Matching Attribute.

So, imagine we send an identify request that looks like this:

{
    "type": "identify",
    "userId": "person@example.com",
    "traits": {
        "twitter_handle": "@example-person"
    }
}

This action then attempts to find an existing person where the email matches your incoming userId. If it finds the email, we’ll update the associated twitter attribute. If it doesn’t find the email, we’ll create a new person with the email and twitter handle you’ve provided.

An assert record action for Attio set to identify people by email address
An assert record action for Attio set to identify people by email address

Attribute types

Before you add attributes to any of your Attio destination actionsA block in a campaign workflow—like a message, delay, or attribute change., you should make sure that they exist in Attio and that you have the right ID or slug.

  1. Go to your Objects page in Attio.
  2. Select the object you want to set attributes on and go to the Attributes tab.
  3. Find your attribute, click and select Copy slug.
    the attio people attributes screen
    the attio people attributes screen

Our Attio destinationA destination is a place that you want to send data from one or more sources to. You can use your own workspace as a destination; send data to another service; or send data to your data warehouse. integration supports all of Attio’s attribute data types. Below are examples of the formats that Attio expects for each type of attribute. A request will fail if you attempt to send a value that doesn’t match the attribute type in Attio.

You can pass null to unset any attribute value in Attio.

typeFormatExample values
actor-referenceAn email address of a workspace member"alice@attio.com"
checkboxBooleantrue, false
currencyNumber with up to 4 decimal places99, 29.9999
dateYYYY-MM-DD"2023-09-28"
domain{domain}.{tld}"app.attio.com", "www.example.com"
emailA valid email address"person@example.com"
locationString with all valid address parts (street address, city, state, country, and postal code) combined“1 Infinite Loop, Cupertino, CA, US”
numberNumber, stored as a 64-bit float42.192, 17
personal-nameLast name(s), First name(s) (note the comma in the middle)"Bloggs, Joe"
phone-numberE.164 format, starting with +..."+15558675309"
pipelineA UUID or title representing the status"open", "closed"
ratingInteger from 0 to 50, 5
record-referenceSpecifies a reference to another record. See Attio’s Record reference for more information. All standard records have at least one “record reference” attribute. For example, you typically reference a person in Attio by email address or a user by ID.
"person@example.com", "app.attio.com", "0677efa..."
selectA UUID or title representing the option"open"
textString"A piece of text"
timestampISO8601, e.g. YYYY-MM-DDTHH:MM:SS. See Attio’s Timestamp documentation for more about supported timestamp formats."2023-09-28T04:39:17"
Copied to clipboard!
  Contents
Is this page helpful?