# Attio

OAuth, both directions, with your own attributes as destinations for what Prospex knows.

An Attio connection runs in both directions, the same three ways a [HubSpot](https://prospex.ch/docs/hubspot/) connection does. What Attio adds is a say in where the facts land: each thing Prospex knows can be pointed at an attribute you already keep, instead of at one of ours.

## Turning it on

1. Go to [prospex.ch/app/accounts/](https://prospex.ch/app/accounts/) and connect Attio. Its scopes are fixed on the app.
2. Choose which object holds your companies, and which of its attributes carry the name and the website. Leave it blank for Attio's standard Companies object. A workspace that built its own is asked.
3. The first sweep brings your records in.
4. Switch on enrichment if you want Prospex writing onto them, and map any fact you would rather see in your own column.

One CRM per account. Connecting HubSpot while Attio is live is refused.

## Out, when you press the button

The arrow pushes one company across as three things: the record, matched on its registrable domain and created if the workspace has none; a note in real markdown, with the link back into Prospex; and a task in plaintext.

Pushing twice writes nothing twice. A bulk push sends the first few inline and queues the rest, and a five-minute drain is both the tail and the retry path.

## In, every six hours

Prospex reads your records and matches them against the register. That match drives the **In CRM** column and lets a market exclude accounts you already own.

Attio publishes no per-record modified timestamp, so every sweep is a full paged pass. A company deleted in Attio stops labelling your markets within six hours. A domain that could be two Swiss companies is left unresolved and labels nothing — about one record in fifteen.

## Out again, continuously, if you ask

With enrichment on, every matched record gets its `prospex_` attributes filled in, its blank native fields backfilled, and each new event as a record referencing it.

A native field is read seconds before it is written, so a value a person typed is never the thing that changes.

## Writing into your own columns

Somebody who has kept a *Branche* column for years does not want a `prospex_sector` next to it. So each fact can name one of your own attributes as its destination, and a mapped fact stops being written to ours: mapping means "use my column instead of yours".

Each mapping also says how much of the field it owns. **Fill** writes only where the workspace is holding the field blank, which is the promise the native backfill already makes. **Sync** rewrites it on every pass. A description somebody wrote is theirs, and a "last signal" column is only useful current.

Destinations are text, number and date attributes. A select is not offered.

## What it will not do

- Overwrite a value somebody in your workspace filled in.
- Write to a record whose domain matches more than one Swiss company.
- Receive Prospect openers. That path exists for HubSpot only today.
- Send email, to anyone, ever.

One thing to know before you connect a workspace you care about: Attio has no delete for an object or an attribute, only archive. Whatever a connection creates can be archived out of sight and cannot be removed.
