Multiple Account Authorizations
Use the SDK to connect multiple accounts for the same integration.
Multiple Account Authorizations is a set of SDK options that enables you to connect multiple accounts for the same integration type for a user.
For example, one Connected User can connect a Google Calendar integration for both their Google Workspace account and personal Gmail account.
Usage
A subset of SDK functions can be passed an additional parameter for Multiple Account Authorizations, as outlined below.
In general, to use Multiple Account Authorizations, you will need to:
Use
user.integrations.[integration].allCredentials
(a field returned ingetUser
) to display multiple connected accounts in your Integrations UI.Update references to
connect
(orinstallIntegration
anduninstallIntegration
) to use the SDK with Multiple Account Authorizations enabled.Update references to
paragon.request
andparagon.workflow
(and API equivalents) to make sure that a specific account is targeted for a given integration type.
App Events and Workflows do not need to be updated to support Multiple Account Authorizations.
Reference
.getUser() -> ParagonUser
Call .getUser
to retrieve the currently authenticated user and their connected integration state.
With Multiple Account Authorizations, the getUser()
method additionally returns allCredentials
, an array of connected accounts for a given integration.
.installIntegration(integrationType: string, options?: IntegrationInstallOptions) -> Promise
Additional options: If
allowMultipleCredentials
is specified astrue
in theoptions
object, this function will not throw an error if the user already has this integration installed.
You can use the resulting Promise to get the newly created credential.
Replacing an account
You can replace one of your user's existing connected accounts with the selectedCredentialId
property. This option replaces the underlying connected account, keeping their enabled workflows and settings intact.
.uninstallIntegration(integrationType: string, options?: IntegrationUninstallOptions) -> Promise
Call .uninstallIntegration()
to disconnect an integration for the authenticated user.
Additional options:
selectedCredentialId
(SDK) orX-Paragon-Credential
(API) can be used to select a specific account to uninstall.
.connect(integrationType: string, options: IntegrationInstallOptions) -> Promise
With Multiple Account Authorizations, use .connect
to present the Connect Portal for an existing account for the intended integration. .installIntegration
is used to connect new accounts.
The Connect Portal can show the settings and workflows enabled for one account at a time, set by the
selectedCredentialId
property. IfselectedCredentialId
is not defined, the Connect Portal will use the first account available.When the Connect Portal appears, a user can enable or disable workflows, update User Settings, and disconnect the account that is selected.
.request(integrationType: string, path: string, requestOptions: RequestOptions) → Promise
Call .request
to send an API request to a third-party integration on behalf of one of your users.
Additional options:
selectedCredentialId
(SDK) orX-Paragon-Credential
(API) can be used to select a specific account to use with the Proxy API.
.workflow(workflowId: string, options: FetchOptions)
Call .workflow()
to trigger a Paragon workflow that sends a custom response back to your app. Note: The workflow must be enabled and use a Request-type trigger.
Additional options:
selectedCredentialId
(SDK) orX-Paragon-Credential
(API) can be used to select a specific account to trigger a workflow for. The Credential ID that is used will be recorded for viewing in Task History.
Last updated