feat: Attio integration
What does this PR do?
- Fixes #19101
- Fixes #18989
- Fixes CAL-5128
- Fixes CAL-5098
Video Demo (if applicable):
Creating a new Attio app integration
https://www.loom.com/share/3ee871b8f7204745add706eb84d7522d?sid=d7727a09-f0e2-41de-8ca9-6b8b9e52983e
Using Attio
- Login and create a new event type
- Install
Attiofrom app store and link it to previously created event type - Create a new booking and check
Attiodashboard
https://www.loom.com/share/878aca4401db47d3afafcd3fb8329eb4?sid=2d5a7852-c497-4ad2-82ed-81bba1d32aad
Mandatory Tasks (DO NOT REMOVE)
- [x] I have self-reviewed the code (A decent size PR without self-review might be rejected).
- [x] I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. If N/A, write N/A here and check the checkbox.
- [x] I confirm automated tests are in place that prove my fix is effective or that my feature works.
How should this be tested?
Check videos above
@asadath1395 is attempting to deploy a commit to the cal Team on Vercel.
A member of the Team first needs to authorize it.
@asadath1395 is attempting to deploy a commit to the cal Team on Vercel.
A member of the Team first needs to authorize it.
No dependency changes detected. Learn more about Socket for GitHub.
👍 No dependency changes detected in pull request
Graphite Automations
"Add consumer team as reviewer" took an action on this PR • (02/26/25)
1 reviewer was added to this PR based on Keith Williams's automation.
"Add community label" took an action on this PR • (02/26/25)
1 label was added to this PR based on Keith Williams's automation.
Hey @joeauyeung,
I saw that you are working on https://github.com/calcom/cal.com/issues/18989 after starting work on https://github.com/calcom/cal.com/issues/19101 which seems to be a duplicate of yours. If you have not started working, could you please review this PR, else bad luck to me, we can close this PR :D
hey @asadath1395 there are some tests failing 🙏
hey @asadath1395 there are some tests failing 🙏
@retrogtx All tests should be fixed now. Please review this again. Thanks!!
@keithwillcode Can you ask someone from the team to review this? Thanks
@asadath1395 How do we handle the active installations after this merge? I mean the users who have already installed the app?
@anikdhabal I think it was a placeholder app before. Users have to re-install the app again to benefit from the app
@PeerRich Not sure what to do either😬
@PeerRich Can you suggest something here? Let's get this merged!
[!IMPORTANT]
Review skipped
Draft detected.
Please check the settings in the CodeRabbit UI or the
.coderabbit.yamlfile in this repository. To trigger a single review, invoke the@coderabbitai reviewcommand.You can disable this status message by setting the
reviews.review_statustofalsein the CodeRabbit configuration file.
Walkthrough
This change introduces a full integration for the Attio CRM platform within the app store. It adds new environment variables for Attio OAuth credentials and updates configuration files to recognize Attio as an OAuth-based CRM app. The implementation includes API route handlers for OAuth authorization and callback, a TypeScript client for Attio's API, and a service class implementing CRM operations such as managing contacts and tasks. The integration is registered in app store schemas, browser components, and the Prisma seed script. Supporting files and exports are updated to ensure Attio is available as a CRM option throughout the application.
✨ Finishing Touches
🧪 Generate unit tests
- [ ] Create PR with unit tests
- [ ] Post copyable unit tests in a comment
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
🪧 Tips
Chat
There are 3 ways to chat with CodeRabbit:
- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
-
I pushed a fix in commit <commit_id>, please review it. -
Open a follow-up GitHub issue for this discussion.
-
- Files and specific lines of code (under the "Files changed" tab): Tag
@coderabbitaiin a new review comment at the desired location with your query. - PR comments: Tag
@coderabbitaiin a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:-
@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase. -
@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
-
Support
Need help? Create a ticket on our support page for assistance with any issues or questions.
CodeRabbit Commands (Invoked using PR/Issue comments)
Type @coderabbitai help to get the list of available commands.
Other keywords and placeholders
- Add
@coderabbitai ignoreanywhere in the PR description to prevent this PR from being reviewed. - Add
@coderabbitai summaryto generate the high-level summary at a specific location in the PR description. - Add
@coderabbitaianywhere in the PR title to generate the title automatically.
CodeRabbit Configuration File (.coderabbit.yaml)
- You can programmatically configure CodeRabbit by adding a
.coderabbit.yamlfile to the root of your repository. - Please see the configuration documentation for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation:
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
Status, Documentation and Community
- Visit our Status Page to check the current availability of CodeRabbit.
- Visit our Documentation for detailed information on how to use CodeRabbit.
- Join our Discord Community to get help, request features, and share feedback.
- Follow us on X/Twitter for updates and announcements.
hey @asadath1395 Got the response from the attio team. You can take the reference from this -> They've got two core entities you can interact with using these APIs: Meetings – synced or manually created calendar events Call recordings – stores videos and transcripts of calls (sit on top of meetings) This first phase of the release gives you access to the following endpoints: List Meetings Get a Meeting List Call Recordings Get Call Recording Get Call Transcript This is their Alpha release, which means: APIs are feature flagged (we’ll need to let them know which workspace to enable it for). No planned breaking changes, but small bug fixes and improvements may happen. They’re open to feedback on bugs or usability improvements. They also mentioned they’ve enabled a webhook for completed calls: Webhook Docs
Closing this for now due to staleness. Feel free to ping me up if you want to continue working on this.
Hey @Devanshusharma2005
I think @Amit91848 is working on this as stated here https://github.com/calcom/cal.com/pull/19566#discussion_r2216285634