Attio to Clarify

Every object in the workspace, read the way Attio actually stores it.

What doesn't cross
Free until you approve the runAn access token, read-only by construction — the client can list, query and read, and has no write path in it at all.

What crosses

Everything Attio will give us

Each of these is written against the real API rather than a generic model, which is where the depth comes from.

Every object, standard and custom

Read from your workspace's own schema. People, companies and deals map onto Clarify's; anything you built yourself is created as a Clarify custom object.

The current value of every attribute

Attio does not return a value, it returns that value's history — a stack of versioned entries where the live one is the entry that never ended. Each type keeps it under a different key. All of them are unpacked, so a select lands as its title and a currency as its amount.

Notes and tasks

Neither is a record in Attio; both live on their own endpoints and are read from there. Notes become Clarify comments, tasks become Clarify tasks with their deadline and completion.

On every migration

Relationships, resolved in a second pass

Records are created first and linked second, so a deal finds its company no matter which order they arrived in. A link whose other end never made it is reported as a skipped row naming what it was waiting for.

Dedup against what is already in Clarify

People match on email, companies on domain, custom objects on the unique key you designate. A matched record is updated in place, so running the same migration twice never leaves you two of anything.

A sample run before the real one

Cap the import at the first 50 records, read the result, then promote it to a full run with one click.

Cancel that leaves zero trace

Every record, list entry, attribute and select option this migration created is deleted or archived in reverse order. Whatever was in your workspace before is never touched.

Limits

8 things that do not cross

Each of these is a ceiling in an API rather than a feature we have not written yet. You would find them on day two, so you may as well read them now.

A task's second and third linked record

Not migrated

An Attio task can be linked to several records; a Clarify task hangs off one. It lands on the first and the summary counts how many had more, so you know exactly what to look at.

Lists and their entries

Not migrated

Clarify has no list object. The records in your lists all cross; the lists themselves do not.

Comments and threads on records

Not migrated

Attio threads a discussion under a record. Clarify's comments are flat, so a thread would arrive as loose lines with no reply structure — worse than an honest gap.

Emails

Not migrated

Clarify asks migration tools not to import them — its own inbox sync covers email far better than a one-time copy would, and it keeps working after the migration.

File attachments

Not migrated

Clarify publishes no endpoint for writing files onto a record, so there is nowhere to put them.

Meetings

Not migrated

Every field that makes a meeting a meeting - title, time, participants, location - is read-only in Clarify's schema. Clarify builds meetings from the calendar you connect, so a copied one would be a shell it would immediately contradict.

Lists and saved views

Not migrated

Clarify has no list object and no list-membership endpoint. A HubSpot list, an Affinity list or a Pipedrive saved filter has nowhere to land, so the members cross as records and the grouping does not.

Field history

Not migrated

Clarify stores a field's current value, not its timeline. A stage that changed in March imports as the value it holds today; there is no route that would let us date it.

Connect Attio and read the receipt when it lands.

Nothing is written to Clarify until you have approved the structure and the field mapping.

How your data is handled