Authorize an Attio workspace and sync CRM records, activity, workspace members, and selected attribute history.
Attio OAuth is in progress and available to approved beta workspaces. It is not advertised through Ember yet.
Attio may show an unapproved-app warning during the private canary. Embrasure will submit the integration through Attio's publication lifecycle before general availability.
Choose Connect Attio, authorize the intended workspace in Attio, and return directly to table selection. Embrasure verifies the workspace and granted scopes before activating the source. The OAuth access token is encrypted at rest.
You need permission to approve apps in the Attio workspace and Embrasure workspace administrator access.
In Embrasure, open Warehouse → Ingestion, add a warehouse source, choose Attio, and select Connect Attio. In Attio, choose the intended workspace and approve these scopes:
object_configuration:readrecord_permission:readlist_configuration:readlist_entry:readwebhook:read-writeThe webhook scope lets Embrasure create the provider webhook that prompts faster warehouse refreshes. OAuth also requests note:read, task:read, and user_management:read so every supported activity table is available.
Embrasure introspects the token before activation. If Attio identifies another workspace or omits a required scope, setup stops without replacing the existing connection.
Existing workspace-token connections keep working. Their connection screen offers Reconnect with OAuth; there is no forced migration deadline. New Attio connections use OAuth only.
After reconnecting, verify the workspace name before selecting tables. Embrasure preserves the connector ID and refuses to replace it with authorization for a different Attio workspace.
Revoke Embrasure from Attio's connected-app settings, then remove the source in Embrasure. Revocation stops API and webhook access; source removal deletes the encrypted token and Embrasure webhook metadata. If Attio reports expiration or revocation first, Embrasure marks the source for reconnection instead of treating an empty response as a successful sync.
Attio resources use separate warehouse schemas so objects, lists, activity, and history can safely coexist.
| Schema | Table | Contents |
|---|---|---|
attio_objects | One table per object API slug | One row per record, including stable record and object IDs, creation time, web URL, the complete values payload, and one JSON column per readable attribute. |
attio_lists | One table per list API slug | One row per list entry, including stable entry and list IDs, parent record and object IDs, the complete entry_values payload, and one JSON column per readable list attribute. |
attio_activity | notes | Note title, plaintext and Markdown content, parent record, author, tags, and meeting reference. Images are not returned by Attio. |
attio_activity | tasks | Both complete and incomplete tasks, content, deadline, completion time, assignees, and linked records. |
attio_activity | workspace_members | Member names, email, access level, and stable member IDs for resolving owner and assignee references. Includes suspended members. |
attio_object_history, attio_list_history | One selectable table per eligible attribute | Historical status, select, currency, and actor-reference values, including active_from, active_until, actor, and record or entry ID. |
Attributes stay as JSON arrays because Attio values are typed and can be multi-valued. The complete provider response is also retained in the data column.
Embrasure refreshes records and list entries as provider-paged snapshots. Create and update webhooks prompt an immediate refresh. Delete and merge webhooks request a full snapshot replacement so rows that disappeared from Attio are removed from the managed warehouse.
Activity tables refresh on the configured polling schedule. Note/task/member webhook subscriptions are not installed. Use Full resync to reconcile deleted notes or tasks; polling alone merges current rows. Workspace members are retained by Attio with a suspended access level instead of being deleted.
Explicitly select the history tables you need in the table picker, such as a deal stage, owner, or value. History tables are excluded from automatic table recommendations and automatic discovery of new ingestion tables. They can be selected independently of their current-record table. Names include the object/list slug, attribute slug, and a stable suffix; existing selections survive renames through provider IDs.
Only writable status, select, currency, and actor-reference attributes are offered. Communication-intelligence, enriched, formula, and archived attributes are excluded. Each row retains the complete historical value in data; active_until = null identifies a currently active value. Stable row keys allow an open interval to be updated when it closes or a status label changes.
History requires a separate provider request per record or entry and selected attribute, with additional requests for long histories. Reads resume from stored parent/value offsets and combine up to 25 value pages per warehouse batch. Choose only the attributes needed for analysis and a polling interval appropriate for the workspace size. Attio offset pagination is not an atomic snapshot: changes while a scan runs can move rows between pages. A later refresh reconciles updates; Full resync reconciles deletions. Historical values belonging to deleted records/entries cannot be recovered from Attio.
Meetings, emails, comments, and call recordings are not included.
See Attio's attribute history endpoint, list-entry history endpoint, notes endpoint, tasks endpoint, members endpoint, authentication guide, and webhook guide for provider setup details.