Architecture Overview
Core Concepts
Client ID / Client Secret
Client ID / Client Secret
Your Rollout credentials, obtained from our team. The Client ID identifies your application; the Client Secret is used to sign JWTs on your server. Never expose the Client Secret in frontend code.
authToken (JWT)
authToken (JWT)
A short-lived JSON Web Token (15-minute expiry recommended) that you generate server-side using HS512. It authenticates requests to Rollout and identifies the end user/tenant making the request. Pass it to Rollout Link and include it as a Bearer token in API calls.
Credential
Credential
A connected account created when a user authenticates through Rollout Link. For example, when a user connects their Follow Up Boss account, Rollout creates a credential that stores the OAuth tokens or API keys needed to access that account.
credentialId
credentialId
The unique identifier for a credential. You store this in your database (associated with the user/tenant) and pass it in the
X-Rollout-Credential-Id header when making API calls. This tells Rollout which connected account to use.appKey
appKey
The identifier for a specific connector (e.g.,
followupboss, lofty, skyslope). You can use this to filter which integrations appear in Rollout Link or to identify which system a credential is connected to.Universal API
Universal API
Rollout’s normalized REST APIs. Instead of learning the quirks of each CRM/TMS/LOS API, you use a single, consistent interface. The same endpoint structure and data model works across all supported systems.
Rollout Link
Rollout Link
The embedded authentication UI component that handles OAuth flows, API key collection, and credential management. It’s a drop-in React component (or vanilla JS script) that you add to your integrations page.
Data Flow in Detail
Generate an Auth Token
Your backend creates a JWT using your Client Secret. The JWT includes claims like
sub (user/tenant ID) and exp (expiration time).User Connects via Rollout Link
Your frontend renders Rollout Link with the auth token. The user sees a list of available integrations, selects one, and completes the auth flow (OAuth, API key, etc.).
Store the Credential ID
When the user successfully connects, Rollout returns a
credentialId. Store this in your database, associated with the user or tenant.Make API Calls
Use the credential ID to read/write data through the Universal API. Include your auth token as a Bearer token and the credential ID in the header.
Multi-System Behavior
Common questions:If I update a contact, will it sync to other CRMs?
If I update a contact, will it sync to other CRMs?
No. Each API call targets the specific system tied to the credential ID you pass. If a user has connected multiple CRMs and you want to sync a contact to all of them, your app must make separate API calls for each credential.
Can a user connect multiple CRMs?
Can a user connect multiple CRMs?
Yes. Each connection creates a separate credential. Your app can store multiple credential IDs per user and decide which one(s) to use for each operation.
How do I sync data between multiple systems?
How do I sync data between multiple systems?
Use Sync to DB to get data from all connected systems into your Rollout-hosted Sync to DB Postgres instance, then implement your own orchestration logic to determine what to write back and where.
What’s Next?
Get your API key
Obtain Client ID and Client Secret
Embed Rollout Link
Add the auth UI to your app
Make API requests
Read and write data
Set up webhooks
Receive real-time updates