Integrations in the Client Portal
The Integrations section lets clients view which integrations are connected and, with the right permissions, connect or disconnect integrations on their own.
Required Permissions
| Permission | Capability |
|---|---|
view_integrations | See which integrations are connected and their status |
manage_integrations | Connect, disconnect, and configure integrations |
Without view_integrations, the Integrations section does not appear in the portal sidebar.
Available Integrations
The integrations visible to clients depend on your agency tier and which integrations you have enabled:
| Integration | Description | Agency Tier |
|---|---|---|
| GoHighLevel (GHL) | CRM sync, contact management, trigger calls from GHL | Starter+ |
| HubSpot | CRM sync, contact management, deal updates | Growth+ |
| Google Calendar | Book appointments during calls | Starter+ |
| Calendly | Schedule meetings via Calendly links | Starter+ |
| Slack | Receive call notifications in Slack channels | Starter+ |
View-Only Mode
With view_integrations only, clients see each integration card showing:
- Integration name and logo
- Connection status — Connected or not connected
- Connected account — The account or workspace name, if connected
- Last sync time — When data was last synchronized
Clients cannot make changes in this mode. If they need an integration connected, they should contact your agency.
Managing Integrations
With manage_integrations permission, clients can:
Connect an Integration
- Find the desired integration card
- Click Connect
- Complete the OAuth authorization flow (redirects to the provider)
- Return to the portal with the integration active
Disconnect an Integration
- Click the connected integration card
- Click Disconnect
- Confirm the disconnection
Disconnecting an integration stops all data sync and disables any workflows that depend on it. Workflows using the disconnected integration will fail silently until it is reconnected.
Configure Integration Settings
Some integrations have additional configuration options. For example:
- GHL — Select which pipeline and stage to sync with
- HubSpot — Choose which contact properties to map
- Google Calendar — Select which calendar to use for bookings
- Slack — Pick the channel for notifications
Scoping and Isolation
Each client’s integrations are independent:
- Client A connecting their HubSpot account does not affect Client B
- Integration credentials are stored per client, not shared across the agency
- Disconnecting an integration for one client has no impact on other clients
Agency-level integrations (configured in the agency dashboard) are separate from client-level integrations. If your agency connects GHL at the agency level, clients can still connect their own GHL accounts.
Integration Status Indicators
| Status | Meaning |
|---|---|
| Connected | Integration is active and syncing |
| Not Connected | Integration has not been set up |
| Error | Connection is broken — re-authentication may be needed |
| Syncing | Data sync is currently in progress |
If an integration shows an Error status, the client should disconnect and reconnect it. If the error persists, they should contact your agency for help.
Proactively check integration health in your agency dashboard. If a client’s OAuth token expires (common with GHL and HubSpot), reach out before they notice issues.
Best Practices
- Start with view-only — Let clients see what is connected before giving them control.
- Document integration setup — Provide clients with simple instructions for connecting their accounts.
- Monitor connection health — OAuth tokens can expire. Check integration status regularly in your agency dashboard.
- Limit integrations by need — Only enable integrations a client actually needs to reduce complexity.