ChargebeeAttio

Add new Chargebee customers to Attio as person records

A Chargebee + Attio agent flow

A subscription starts in Chargebee, billing has the customer, and for a while that's the only system that knows they exist. Sales and success run in Attio, so a fresh paying account is a stranger to the team meant to keep it. This recipe carries new Chargebee customers across. The agent lists customers with the List customers tool, reads the ones added since it last ran, and upserts a person record into Attio with upsert-record: name, email, and the Chargebee customer id stored on the record. Chargebee replies when asked rather than pushing, so the agent runs on a cadence, every fifteen minutes or each hour, and only customers it hasn't seen become records.

The flow

ChargebeeList customers

List customers on the account with filtering and pagination.

Attioupsert-record

Creates or updates a record by matching attributes such as email or domain.

Step by step

  1. List recent customers

    The agent calls List customers sorted newest-first and reads down until it reaches a customer id it has already handled. Each row carries the customer id, email, name, and company.

  2. Map to Attio attributes

    Email becomes the matching key, name and company fill their attributes, and the Chargebee customer id goes into a dedicated attribute so the record traces back to billing.

  3. Upsert the record

    upsert-record matches on email and creates the person if absent or updates them if present, so a returning customer doesn't spawn a duplicate. The Chargebee id is written either way.

Tell your agent

Every hour, list Chargebee customers created since the last run, and for each one upsert a Person in Attio matched on email, setting name, company, and a Chargebee customer id attribute. Skip customers I've already synced.

Setup

This flow needs both servers connected to your agent. Follow each install guide:

Worth knowing

  • List customers paginates and returns customer summaries. The fields you get are the customer's own, so if you need the subscription plan or MRR on the record, the agent makes a second call such as List subscriptions or Find subscriptions by customer ID.
  • upsert-record writes to Attio attribute slugs, not display labels. Pull them once with list-attribute-definitions and pass the exact slugs, including your custom Chargebee-id field, or those values silently don't land.
  • Some Chargebee customers carry an email, some don't until later. Decide whether email is required to create a record; without it upsert can't dedupe and you risk thin or duplicate person records.
  • Cap the first run. A backfill across the whole account would upsert every historical customer at once, so bound the initial window and let the cadence handle new ones from there.

Questions

Should new customers be people or companies in Attio?
List customers gives you a billing contact, which maps naturally to a Person upsert keyed on email. If you'd rather track the company, upsert a Company keyed on email domain and attach the person to it, which is a second write.
Does it capture plan or revenue?
Not from List customers alone, which returns the customer, not their subscription. Add a List subscriptions or per-customer subscription lookup and write the plan and amount as attributes if the team wants them on the record.