Skip to contentSkip to navigationSkip to topbar
On this page
Looking for more inspiration?Visit the
(information)
You're in the right place! Segment documentation is now part of Twilio Docs. The content you are used to is still here—just in a new home with a refreshed look.

Attio (Actions) Destination


Destination Info
  • Accepts Page, Alias, Group, Identify and Track calls.
  • Refer to it as Attio (Actions) in the Integrations object
  • This integration is partner owned. Please reach out to the partner's support for any issues.
  • This destination is in Beta

Powerful, flexible and data-driven, Attio(link takes you to an external page) makes it easy to build the exact CRM that your business needs.

This destination allows you to use your existing Segment events to create or update records in Attio, for example creating Attio User records from Segment Identify events.


Getting started

getting-started page anchor
  1. From the Segment web app, click Catalog, then click Destinations.
  2. Search for Attio (Actions) and select it.
  3. Click Add destination, then follow the setup instructions.
  4. Click Connect to (destination name) to select the Attio Workspace you'd like to connect to.

Create or update a Person using the provided email address, then create or update a related User using the same address. By default, this mapping runs for identify events.

This mapping is a special form of Assert Record, because it asserts both a Person and User and links them together. If you only need to assert either a Person or User, you should configure Assert Record instead.

In Attio, a Person represents a human. People have names, email addresses, Twitter profiles, email and calendar interactions, etc.

Meanwhile, a User is a user of your product. Users might have feature flags, permission levels, etc. A Person can have multiple Users, for example if they exist in different workspaces or have different sets of permissions, but are ultimately the same Person.

(information)

Info

To use the User standard object, you'll need to make sure it's activated first. Visit your Workspace Settings > Objects(link takes you to an external page) page and click the "Activate" button next to the Users object.

This mapping makes the assumption that your Segment event includes two properties:

  1. An email_address property, to create or update a Person
  2. A id property, to create or update an associated User

You can specify additional attributes to be mapped on the Edit Mapping page.

For example, you could set some additional properties on the Person using these Mapping Fields under "Additional Person attributes". The column on the left should contain properties from your event, or custom text, and the column on the right should reference attributes on that object type in Attio, represented by their slug.

(information)

Info

Every Attio attribute has both an ID and a slug, and you can use either to reference those attributes in this action. To find this value, on the object settings page, select the "Attributes" tab, locate your attribute, then click on the button and select "Copy slug".

Here's an example configuration that sets the description, name and company attributes on the Person object:

Select event variableEnter key nameNotes
traits.descriptiondescription
traits.last_name, traits.first_namenamePerson names must be formatted as Last name(s), First name(s)
traits.domaincompanyA Company relationship can be populated using the Company's domain

You can also use the same approach to specify additional properties on the User object. Please note that by default, the User object doesn't specify many attributes; the expectation is that you'll add your own that make the most sense for your product. All custom attributes can be specified here, please see attribute types below for more information.


Create or update a Company using the provided domain, then create or update a Workspace using the provided name. By default, this mapping runs for group events.

This mapping is a special form of Assert Record, because it asserts both a Company and Workspace and links them together. If you only need to assert either a Company or Workspace, you should configure Assert Record instead.

In Attio, a Company can have names and domains, as well as enriched properties like ARR or category.

Meanwhile, 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 many Workspaces.

(information)

Info

To use the Workspace standard object, you'll need to make sure it's activated first. Visit your Workspace Settings > Objects(link takes you to an external page) page and click the "Activate" button next to the Workspaces object.

This mapping makes the assumption that your Segment event includes two properties:

  1. A domain property, to create or update a Company
  2. A id property, to create or update an associated Workspace

You can specify additional attributes to be mapped on the Edit Mapping page.

For example, you could set some additional properties on the Company using these Mapping Fields under "Additional Company attributes". The column on the left should contain properties from your event, or custom text, and the column on the right should reference attributes on that object type in Attio, represented by their slug. For example:

Select event variableEnter key name
traits.twitter_handletwitter

Similarly, you can also set some additional properties on the Workspace. All custom attributes can be specified here, please see attribute types below for more information.


Create or update a single type of Object, given a matching attribute name and value. For example, you could assert that a Company exists using a given domain property.

This mapping makes the assumption that your data includes the matching property. For the following example, assume you have domain and twitter properties, like so:

1
{
2
"type": "identify",
3
"traits": {
4
"domain": "app.attio.com",
5
"twitter_handle": "@attio"
6
}
7
}

First, you'll need to set the "Attio Object" property - it should pre-populate with all of the activated objects in your Attio instance. 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 "Attributes" mapping in the next form. In this example, you'll select "Company" as the Attio Object, and "domains" as the Matching Attribute.

You would then need to ensure the Attributes mapping is populated like so:

Select event variableEnter key name
traits.domaindomains
traits.twitter_handletwitter

When this mapping runs, Attio will try to find an existing Company where one of the domains matches the one you've provided here. If it finds it, it will update the twitter attribute with the value "@attio". If it doesn't find it, a new Company will be created with both the domain and twitter handles above.


This action supports batching. You can toggle batching using the Edit Mapping > Enable Batching property.

Batching sends groups of events to Attio in a single request, rather than individually, which can improve stability & correctness if you are sending a lot of events.

However, there are a couple of caveats to be aware of:

  1. Attio will process these events asynchronously, which means it might take a few seconds between Attio acknowledging the request and the record updates appearing in your Attio workspace.
  2. Invalid events will be silently dropped. This can happen if your mapping configuration points to a non-existent Attio attribute, or you're trying to write the wrong attribute type (for example: writing a number to a domain attribute). We recommend you continue to use the Send test event feature on the mapping page to check configurations before saving them.

The Attio Action can write all types of attribute to Attio. Below is an example of the format that each attribute must be; please note that you'll get validation failures if any of these are incorrect. To unset an attribute, you can also pass null as the value.

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(link takes you to an external page), starting with +..."+15558675309"
pipelineA UUID or title representing the status"open", "closed"
ratingInteger from 0 to 50, 5
record-referenceTo a person, an email. To a company, a domain. UUID of other entity always supported."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"2023-09-28 04:39:17.000"