Earn 2,700 ($27.00)
Implement SSO with GoHighLevel and link Vapi credentials to each account
Bounty Description
Problem Description
Our application is a multi-tenant AI voice assistant management platform that connects GoHighLevel subaccounts with Vapi AI organizations. We need to establish a robust Single Sign-On (SSO) system that integrates with GoHighLevel's marketplace App SSO which we've built but need fixed. After authentication, the system should associate the user's session details with a stored GHL profile which should be linked to the appropriate Vapi API credentials, allowing our program to query things like assistants and call logs for the associated vapi account to display account data as well as allowing our program to hide/display certain features based on the account subscription set in our database.
Currently, we have a basic implementation of GoHighLevel integration, but it's experiencing reliability issues where SSO data isn't consistently delivered from our marketplace app custom menu page, to the program. Once authenticated, we need to ensure the user profile is linked to the correct Vapi API organization, which is essential for managing AI voice assistants.
Acceptance Criteria
-
GoHighLevel SSO Integration:
Reliably capture SSO data from GoHighLevel marketplace embedding
Support authentication through GoHighLevel's custom menu page integration
Persist GoHighLevel user information and locationId across sessions
Implement a robust error handling system when SSO fails -
Vapi API Credential Management:
Associate Vapi API credentials with user profiles after authentication
Support multiple Vapi organizations per user account -
Tenant Isolation:
Ensure proper data isolation between tenants
Link GoHighLevel locationId with appropriate Vapi organization
Fix admin accounts that can manage multiple organizations/locations thrrough admin dashboard, should be (but currently isn't) exclusive to admin role type accounts.
Technical Details
Current System Architecture
Backend: Node.js/Express with PostgreSQL database using Drizzle ORM
Frontend: React with TypeScript, using shadcn/ui components
Authentication: Session-based authentication with express-session
API Integrations: GoHighLevel API and Vapi AI API
Database Schema: Already supports accounts, ghlConnections, and vapiConnections tables
We are open to and seeking ongoing development support as an internal developer moving forward as well. If that is of interest, please raise this with us during correspondence of this initial project.