Overview
The SDK includes 4 main functions that allow you to use the Headless Connect Portal:paragon.getIntegrationMetadata
: Returns display and branding information for integrations in your project, including a display name and icon.paragon.installIntegration
: Prompts the user for third-party authorization details to connect their account. This function should be used when a user expresses intent to install your integration, for example: from a “Connect” button in your integrations catalog.paragon.uninstallIntegration
: Disconnects the user’s account.paragon.getUser
: Returns the current state of the user, with their integrations and account statuses.
Demo

A demo implementation of the Headless Connect Portal, using Material UI components and the Paragon SDK
GitHub - useparagon/paragon-integrations-catalog-tutorial at headless
Usage
Before adding the Headless Connect Portal, you may want to start by following our tutorial to build an in-app Integrations Catalog. This will use some of the functions above to display a list of integrations and their account state. Once you have a list of integrations displaying in your app, you can use this UI as a starting point for adding the Headless Connect Portal.Displaying Integration Metadata
.png?fit=max&auto=format&n=VPMcg_H0p5RWAFJc&q=85&s=0ed7122c4399ed1abc63c21e56e4b497)
Displaying integration metadata in a Headless Connect Portal, with Material UI
.getIntegrationMetadata
, passing the integrationType
as the first argument. This will return an object with the matching integration’s display metadata:
- The integration icon image, as retrieved from the
.icon
property. - The integration’s name, as retrieved from the
.name
property. - A short description of what functionality your integration provides. This description should vary for each integration and provide app-specific context.
Connecting Accounts
.png?fit=max&auto=format&n=VPMcg_H0p5RWAFJc&q=85&s=b2d6d864d3915e8328d6ca4072d729e9)
Adding a 'Connect' button to a Headless Connect Portal
.installIntegration
function.
.installIntegration
accepts the same integrationType
argument, so we can pass this parameter through to this function:

Note: Integrations that require text-based credentials (i.e. not OAuth) and integrations that require some information prior to starting the OAuth flow will briefly show the Connect Portal.
Displaying Account State
.png?fit=max&auto=format&n=VPMcg_H0p5RWAFJc&q=85&s=9c474313be1b0c1237ebbe3aba3be4fc)
Displaying the Connect/Disconnect button dynamically based on account state
.getUser
and .subscribe
.
.getUser
returns an object with the user’s account state:
user.integrations[integrationType].enabled
.
useParagonAuth
hook from the tutorial, the returned user
object will automatically stay up-to-date by subscribing to onInstallIntegration
and onUninstallIntegration
events from the SDK, as shown below:

useParagonAuth
hook and are unable to, you can call paragon.subscribe
on your own to receive updates, as demonstrated below:
Workflows and User Settings
At this time, the Headless Connect Portal does not include SDK functions for displaying workflows and user settings. However, it is possible to use the API to:- Get workflows associated with an integration, including their titles and descriptions
- Get integration-specific options for User Settings (like a user’s Salesforce Record Types) directly from the integration provider’s API
- Update User Settings and workflow state