> ## Documentation Index
> Fetch the complete documentation index at: https://docs.partneros.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect your Attio workspace

> Sync Attio companies, people and deals into PartnerOS. Read-only.

PartnerOS is a partner-relationship management platform: partner records, joint plans, co-sell opportunities, deal registrations, enablement and payouts in one place. Connecting Attio lets the companies, people and deals you already track there become the partner and opportunity records PartnerOS works from — no re-entry, and no second source of truth for who your partners are.

<Warning>
  **This connection is read-only. PartnerOS never writes to your Attio workspace.**

  It requests read scopes only, and the code path that would push a record refuses to run. That is a design decision, not a feature we haven't built yet: Attio has no external-id concept to match an existing record on, so an unmatched write would create *duplicate* records in your workspace instead of updating the right one. Write-back arrives when it can be done without that risk.
</Warning>

## Requirements

<CardGroup cols={2}>
  <Card title="In PartnerOS" icon="user-shield">
    An account with the **integrations-admin** permission. One connection drives sync for your whole organization, so a regular member cannot bind or rebind it.
  </Card>

  <Card title="In Attio" icon="circle-check">
    A workspace member who can approve the install. Nothing to install beyond approving the app.
  </Card>
</CardGroup>

## Connect

<Steps>
  <Step title="Choose Attio">
    In PartnerOS, open **Integrations** and choose **Attio**.
  </Step>

  <Step title="Approve the access request">
    Attio shows exactly what is being granted and to which workspace:

    | Scope                       | What it reads                                      |
    | --------------------------- | -------------------------------------------------- |
    | `record_permission:read`    | Records on your objects                            |
    | `object_configuration:read` | Objects and their attributes, custom ones included |
    | `list_entry:read`           | Entries in your lists                              |
    | `list_configuration:read`   | List names and configuration                       |

    There is no write scope in that list, and there will not be one while the connection is read-only.
  </Step>

  <Step title="Map your fields">
    You land on the connection's field-mapping screen. Choose which Attio attributes populate which PartnerOS fields.

    <Info>
      **A connection with no active mappings syncs nothing.** The sync only looks at objects that have at least one active mapping, so this step is not optional — a connection that says "Connected" with no mappings will never move a record.
    </Info>
  </Step>
</Steps>

## What gets read, and how often

PartnerOS reads your objects and their attributes so you can map them, then reads only the records covered by an active mapping.

Two things about Attio shape how the sync behaves, and both are worth knowing before you judge it:

<AccordionGroup>
  <Accordion title="Attio has no record types — you pick partners by an attribute value">
    In other CRMs you separate partners from customers with a record type. Attio has none, so you identify partners by an attribute value instead — a category, a status, or another select option that means "this is a partner".

    Lists are the other obvious candidate, and PartnerOS will tell you which of your lists look like partner lists, but it cannot sync *from* a list yet.
  </Accordion>

  <Accordion title="Attio publishes no “last modified” time — so there is no freshness promise here">
    An Attio record exposes `created_at`, and each attribute value carries its own `active_from`, but there is no record-level modification timestamp and no way to filter or sort on one. So PartnerOS cannot ask Attio for "everything that changed since yesterday".

    Instead it re-reads the records it already tracks on a schedule. That is why this page makes no claim about how quickly an edit in Attio shows up in PartnerOS — we would not be able to keep it. Support for Attio's record webhooks is planned, and that is what will make it prompt.
  </Accordion>
</AccordionGroup>

## Your data

* The access token is stored **encrypted**, and is never displayed in the product or written to a log.
* The connection is scoped to the single Attio workspace approved on the consent screen, and to the single PartnerOS organization that authorized it.
* Connecting and disconnecting are both recorded in your organization's audit log.

See the [privacy policy](https://partneros.ai/privacy) for how PartnerOS handles customer data generally.

## Disconnect

Remove the connection in PartnerOS, or revoke the app from your Attio workspace settings — either one stops the sync immediately.

Nothing in your Attio workspace needs cleaning up afterwards, because nothing was ever written to it.

## Troubleshooting

<AccordionGroup>
  <Accordion title="It says Connected but nothing is syncing">
    Almost always no active field mappings. Open the connection, refresh the schema to discover objects, and map at least one field. The connection page says so explicitly when this is the case.
  </Accordion>

  <Accordion title="The connection stopped working">
    Attio access tokens do not expire — they are revoked. If the app was removed from the Attio workspace, reconnect from **Integrations → Attio**; there is no token refresh to wait on.
  </Accordion>

  <Accordion title="I can't see the Connect button">
    Connecting requires the integrations-admin permission. Ask an admin in your PartnerOS organization to make the connection — once it exists, it is org-wide.
  </Accordion>
</AccordionGroup>

## Need help?

Email [support@partneros.ai](mailto:support@partneros.ai).
