Integration Guide
Connect Attio to Caddie AI
Sync your CRM with your Slack-native AI assistant
Caddie AI integrates with Attio to bring your CRM data directly into your Slack workflow. Once connected, you can use natural language to look up contacts, update deals, log meeting notes, create tasks, and manage your pipeline — all without leaving Slack.
On this page
1. Integration Overview
| Integration type | OAuth 2.0 (Authorization Code Grant) |
| Authentication | Per-user OAuth — each user connects their own Attio workspace |
| Data flow | Bidirectional (read and write) — Caddie can read CRM data and create/update records on your behalf |
| Where it runs | Caddie AI operates within Slack. All Attio interactions are triggered by your explicit requests in Slack conversations with Caddie. |
| Attio API version | REST API v2 (api.attio.com/v2) |
2. What You Can Do
Once Attio is connected, you can ask Caddie to perform actions like:
Records & Contacts
- Look up a person or company by name, email, or domain
- Create new person or company records
- Update record attributes (e.g., stage, owner, custom fields)
- Search across your CRM with natural language queries
Deals & Pipeline
- Check deal status and pipeline stage
- Move deals between stages
- Add or update deal values and close dates
- Get a summary of your active pipeline
Notes & Tasks
- Log meeting notes to a specific record
- Create tasks linked to people, companies, or deals
- List open tasks assigned to you
Lists & Views
- Query list entries with filters
- Add or remove records from lists
All actions are initiated by you within Slack. Caddie never performs background syncs, bulk operations, or automated writes to Attio without your explicit instruction.
3. Setup & Authentication
Connecting Attio takes about 30 seconds:
Open Caddie AI in Slack
Navigate to the Caddie AI App Home in your Slack workspace, or send Caddie a direct message.
Connect Attio
In the App Home under Connected Tools, click Connect next to Attio. Alternatively, ask Caddie something like "connect my Attio" or "look up a contact in Attio" — Caddie will prompt you to connect if you haven't already.
Authorize access
You'll be redirected to Attio's OAuth consent screen. Review the permissions being requested, select the Attio workspace you want to connect, and click Authorize.
Start using it
Once authorized, you'll be redirected back to Slack with a confirmation. You can immediately start asking Caddie to interact with your Attio data.
One connection per user. Each person in your Slack workspace connects their own Attio account. Caddie accesses Attio using each individual user’s permissions, so users only see data they have access to within Attio.
4. Permissions & Scopes
Caddie AI requests the following Attio OAuth scopes. These are the minimum permissions required to support the features described above:
| Scope | Access | Purpose |
|---|---|---|
| record_permission | Read & Write | Look up, create, and update person, company, and deal records |
| object_configuration | Read | Understand your workspace's custom objects, attributes, and data model so Caddie can work with your specific setup |
| list_configuration | Read | Read list structures to query and filter list entries |
| list_entry | Read & Write | Query list entries and add/remove records from lists |
| note | Read & Write | Read existing notes on records and log new meeting notes |
| task | Read & Write | View, create, and update tasks linked to records |
| user_management | Read | Resolve workspace member names for task assignments and record ownership |
| comment | Read & Write | Read and post comments on records |
We follow the principle of least privilege: Caddie only requests the scopes necessary for its current feature set. As new features are added, we will clearly communicate any additional scopes before requesting them.
5. Data Handling & Privacy
How Caddie processes Attio data
- On-demand only. Caddie fetches data from Attio in real time when you make a request. We do not run background syncs, scheduled imports, or bulk data transfers.
- AI processing. When you ask Caddie a question involving Attio data, the relevant data is sent to our AI model provider to generate a response. The AI provider processes data in real time and does not retain it beyond the immediate request.
- No permanent storage of CRM data. Attio record data retrieved to answer your queries is not permanently stored in Caddie’s database. We store your OAuth connection credentials (encrypted) and interaction history to provide continuity.
- No data selling or advertising. Your Attio data is never sold, shared with advertisers, or used for any purpose other than providing Caddie’s features to you.
- No model training. Your Attio data is never used to train generalized AI or machine learning models.
For full details, see our Privacy Policy.
6. How Caddie Uses the Attio API
This section provides technical details for developers and Attio reviewers on how Caddie interacts with the Attio REST API.
Authentication
Caddie authenticates using OAuth 2.0 Authorization Code Grant flow:
- User initiates connection from Slack (App Home or conversational prompt)
- User is redirected to
https://app.attio.com/authorizewith the requested scopes and a CSRF-prevention state parameter - After authorization, user is redirected to our callback URL with an authorization code
- Caddie exchanges the code for an access token via
POST https://app.attio.com/oauth/token - The access token is encrypted and stored per-user
All subsequent API calls include the user’s token in the Authorization: Bearer header. Tokens are scoped to the individual user’s permissions within their Attio workspace.
API endpoints used
Caddie makes calls to the following Attio REST API v2 endpoints based on user requests:
| Endpoint | Method | Usage |
|---|---|---|
| /v2/objects/{object}/records/query | POST | Search and filter records (people, companies, deals) |
| /v2/objects/{object}/records | POST | Create new records |
| /v2/objects/{object}/records/{record_id} | PATCH / GET | Read and update specific records |
| /v2/notes | POST / GET | Create and read notes on records |
| /v2/tasks | POST / GET | Create and list tasks |
| /v2/lists/{list_id}/entries/query | POST | Query list entries with filters |
| /v2/objects | GET | Read workspace object configuration |
| /v2/workspace_members | GET | Resolve member names for assignments |
| /v2/comments | POST / GET | Read and post comments on records |
Rate limiting
Caddie respects Attio’s API rate limits. All requests are made on behalf of individual users (not batched or pooled), so each user’s usage is independent. If a rate limit is encountered, Caddie will inform the user and retry after the appropriate backoff period.
Error handling
If an API call to Attio fails (e.g., due to permissions, rate limits, or network issues), Caddie will surface a clear error message in Slack explaining what went wrong and suggesting next steps (such as reconnecting the account or checking Attio permissions).
7. Disconnecting
You can disconnect Attio from Caddie AI at any time:
- From Slack: Open the Caddie AI App Home and click Disconnect next to Attio under Connected Tools.
- From Attio: Go to your Attio workspace settings → Integrations, find Caddie AI, and revoke access.
When you disconnect, Caddie immediately deletes your stored OAuth credentials. Any cached Attio data associated with your account is purged. Caddie will no longer be able to access your Attio workspace until you reconnect.
8. Troubleshooting
“Caddie can’t access Attio” or “Authorization expired”
Your OAuth token may have been revoked or expired. Disconnect Attio from the Caddie App Home and reconnect by following the setup steps above.
“I don’t see my custom objects”
Caddie reads your workspace’s object configuration when you connect. If you’ve added new custom objects or attributes since connecting, try disconnecting and reconnecting to refresh the configuration.
“Permission denied” on a specific action
Caddie operates under your Attio user permissions. If you can’t perform an action, verify that your Attio role has the appropriate permissions for that object or list.
“Record not found”
Double-check the name, email, or identifier you’re searching for. Attio’s search is sensitive to exact values for some attribute types. Try broadening your search query.
9. Support
Having trouble with the Attio integration? We’re here to help.
Caddie AI Support
Email: support@caddieagent.ai
Website: https://caddieagent.ai
For issues specific to your Attio workspace (permissions, billing, data), contact Attio Support directly.