How to sync usage data into Attio
This is a draft, I'll come back to it
A lot of companies switch from Hubspot to Attio when they realize that Hubspot isn't that good at PLG, since it lacks custom objects and
it's not really intuitive to track workspace usage information on Contacts or Companies.
The main things that you should know about if you want to sync usage data into Attio are:
- You should use a reverse ETL tool for this, don't write your own data pipelines. These data integrations are a solved problem and not worth duplicating effort on.
- The best reverse ETL tool for Attio specifically is Polytomic - it's better at handling the nuances of Attio's API and relationship attributes than any alternative, and the team are small and highly responsive
- You might want to combine using reverse ETL with a product analytics tool like Posthog or Segment specifically for syncing in new accounts and workspaces, since this is something that it's useful to handle in real-time
- You should aggregate together usage information on the User (individual) and Workspace (team) objects. Avoid creating separate custom objects (too complex) or just using People and Companies (too oversimplified, why Hubspot doesn't work)
- Usually you want to have a set of CS views of Workspaces and you may also want a dedicated List for handling CS-managed Enterprise accounts
The way that I approach setting up a new usage data sync is as follows:
- Understand the systems involved. Is the client using a data warehouse, or are they syncing directly from Stripe / Postgres etc?
- Get buy-in from the client to go with Polytomic. I've learned this needs to be done up front, otherwise you waste time.
- Get access credentials to the data warehouse and/or databases, and their BI tool.
- Create and test the connections in Polytomic.
- Use the BI tool to iterate on SQL queries.
- Input those SQL queries into Polytomic as SQL models.
- Enable the User and Workspace objects in Attio and add relevant attributes for the fields you're aggregating.
- Run the syncs manually and check that the data coming through looks good.
- Make any changes.
- Set the syncs to run on a schedule (currently I'm going with daily)
In terms of the actual attributes that you're setting up, this is different for every client, but a few attributes are always useful:
- Separate created_at attribute (Attio will set created_at to the time of sync)
- You always need the workspace to have a single domain that you can use to link to the Company
- You should roll up Users as an array of IDs on the Workspace, and also have a single integer count of users separately
- For Users, you should have two separate email attributes, one for the primary_email_address and one for the relationship attribute
- For usage data, you usually want it for the past 30 days (optionally also with a total)
- You should have a way to track churned customers - I'm still figuring this one out and will update this when I do