Affinity to Clarify

Persons, organizations, opportunities — and the global fields a naive export loses.

What doesn't cross
Free until you approve the runAn API key, pasted once and validated against your tenant before anything runs.

What crosses

Everything Affinity will give us

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

Persons, organizations and opportunities

Straight onto people, companies and deals.

Global fields

Affinity keeps a workspace's own entity-level fields off the record payload and off the list endpoint, so a naive export loses them entirely. They are read separately and arrive as columns on the record.

Notes

As Clarify comments, on the record they belong to.

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.

Lists and their per-member field values

Not migrated

This is the one that hurts, because a list is where an Affinity workspace keeps its work. Clarify has no list object and no per-member attributes, so there is nothing to write them to. The records themselves all cross.

Person, organization and location field types

Not migrated

Affinity lets a field point at another record; the equivalent Clarify field holds a scalar. Those are dropped rather than flattened into a name that would look like data.

Custom objects

Not migrated

Affinity has no such concept — its analogue is lists plus fields.

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 Affinity 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