End-Users, Integrations, and Connections

Updated:


April 18, 2024

This guide explains how connections work at Unified.to and shows you different ways to create connections for your application. You'll learn about the relationship between your end-users, connections, and integrations, as well as how to get started quickly with test connections.

Overview

At Unified.to, there are three key concepts to understand:

  1. Integrations - These are the bridges between your application and third-party platforms (a.k.a SaaS apps). These are pre-built for you!
  2. Connections - These are the authorized links between your end-users and specific integrations
  3. End-users - These are your application's users whose data you will access from their accounts i.e. HubSpots, Salesforce, Shopify, and so on.

Users_connections_and_integrations_%2810%29.png

Understanding integrations

Your application communicates with a SaaS application through an integration.

Activating an integration in the sandbox environment

  1. Navigate to Integrations at app.unified.to/integrations
  2. Search for the integration you want to use
  3. Click on the integration card to view its details
    1. For sandbox environment integrations, you don't need to enter any real credentials here.
  4. Click Activate

All data is synthetic in the sandbox environment, meaning you don't need to sign up for any third-party accounts while you're testing the Unified.to platform.

Learn more about the sandbox environment →

Activating an integration in production environments

To activate an integration in production environments, you'll need developer credentials from the platform you're integrating with.

Developer credentials

When activating an integration, you'll be asked to provide credentials like API keys or OAuth 2.0 client IDs and secrets. These credentials should come from your developer account with the platform, not your end-users' accounts. Here's how it works:

  1. You register your application with the platform (e.g., create a HubSpot developer account and register your app)
  2. You receive developer credentials that identify your application
  3. You enter these credentials when activating the integration on Unified.to
  4. Your end-users will later authorize your application to access their accounts, with or without using their own credentials (depends on the type of auth flow)

For example, if you're building an interview scheduling platform that needs to access your clients' Zoho CRM data:

  • You use your Zoho developer account credentials to activate the integration
  • Your end-users will authorize access to their Zoho CRM accounts when creating connections by consenting to give you access to their data

Understanding connections

Your end-users are connected to integrations through connections_._

A connection is an authorized link between one of your end-users and a specific integration. For example, if your application needs to access a user's HubSpot account, you'll need:

  1. The HubSpot integration to be activated in your workspace
  2. A connection between that specific user and HubSpot
  3. The correct scope configuration for what data you need to access

Each user needs their own connection to each integration you want to use. This ensures proper authorization and data isolation between users.

About scopes

Scopes determine what data your application can access in your end-users' accounts. You need to:

  1. Configure the correct scopes in your developer account with the platform
  2. Select the corresponding Unified.to scopes when setting up your integration

For example, if you need to read CRM contacts, you would request the crm_contact_read scope. Unified.to has its own set of scopes (called Unified scopes) which have been mapped to the corresponding scopes for every single integration that needs them. When requesting scopes, you only need to pass in Unified scopes in addition to enabling those scopes in your developer account.

Learn more about configuring scopes →

How to create connections

There are three main ways to create connections in Unified.to, each suited for different scenarios:

1. Development and testing: Create test connections in the sandbox environment

This is the fastest way to get started and test integrations:

  1. Switch to the Sandbox environment in the Unified.to app
  2. Go to the Connections page
  3. Click Create test connection
  4. Select any activated integration you want to test

Test connections are created instantly with mock credentials, perfect for development and testing.

2. Production ready: Use the Authorization embedded component

This is the recommended approach for production-ready applications:

  1. Navigate to the Embedded Authorization page
  2. Configure your callback settings, permission scopes, and display options
  3. Copy the provided code snippet for your preferred tool (React, Angular, Vue, vanilla JavaScript, or an API call)
  4. Add the code to your application
  5. The Authorization component will be rendered on your app. When users click an integration's logo, they'll be guided through the authorization process

Example code for React:

import UnifiedDirectory from '@unified-api/react-directory';

function App() {
  return (
    <UnifiedDirectory
      workspace_id="{WORKSPACE_ID}"
      environment="{ENVIRONMENT}"
      success_redirect="{SUCCESS_URL}"
    />
  );
}

3. Custom implementation: Build your own authorization flow

For greater control over the user experience:

  1. Fetch available integrations using the Unified API
  2. Create authorization URLs for selected integrations
  3. Handle authorization callbacks
  4. Manage connection IDs

This approach requires slightly more implementation work but offers more flexibility. You can find a complete tutorial for this approach in our documentation.

Best practices

  • Always test in Sandbox first: Use test connections to validate your integration logic
  • Store connection IDs securely: Never store connection IDs in client-side storage in production
  • Handle authorization failures gracefully: Provide clear feedback when connection attempts fail. Users will be redirected to the failure URL you specified during configuration. Learn more about handling failure callbacks here.
  • Monitor connection health: Set up webhook notifications for connection status changes
  • Re-authorize instead of recreating: When a connection becomes unhealthy, ask the end-user to re-authorize the existing connection. It keeps the same connection ID, so you don't end up with duplicate connections or need to update stored IDs and webhooks
  • Configure scopes correctly: Request only the permissions your application needs
  • Use separate environments: Keep your development and production environments separate

Troubleshooting

Common issues and solutions:

Connection creation fails

  • Verify your developer credentials are correct
  • Check that required scopes are configured both in your platform developer account and Unified.to
  • Ensure redirect URLs are properly set up in your platform developer settings

Authorization flow issues

  • Confirm your integration is activated
  • Verify environment settings (Sandbox vs Production)
  • Check that scopes match between your platform developer account and Unified.to

A working connection becomes unhealthy

  • Check the API Call Logs for the connection to find the error (usually 401 or 403)
  • Fix the cause (for example, restore your app's access or correct the scopes)
  • Re-authorize the existing connection rather than creating a new one. It keeps the connection's current permissions unless you pass scopes, so include scopes if you corrected them

For more guidance, see: How to troubleshoot unhealthy connections

Next steps

Share
All guidesUnified Connection modelAdvertising Report Metrics by IntegrationATS to Vector DB: How to Power Talent Intelligence with Real-Time DataBuilding AI applications with Unified and LangbaseConcur & Concur (Company) — Connection GuideConfigure Greenhouse Native Candidate WebhooksConnect Amazon Seller Central to Unified.toConnecting BambooHR via OAuth 2Connecting Google Workspace Integrations with a Service AccountCorrect WelcomeKit Scopes for Jungle IntegrationCreating Ads using the Unified Ads APICreating Walmart Items via UnifiedEnriching Unified Objects with Custom MetadataEnterprise-managed authorization (EMA) with a static keyEnterprise-managed authorization (EMA) with a workspace secretEnterprise-managed authorization (EMA) with Microsoft Entra IDExtended observability — pushing API logs to ClickHouseExtended observability — pushing API logs to Grafana / LokiExtended Observability - Pushing API Logs to your Datadog InstanceFacebook Messenger Webhook SetupFireflies Integration GuideGetting started with WorkableHandling Delegated vs. Application Scopes in Microsoft IntegrationsHiBob & Unified: connection and time off guideHow long are logs retainedHow to access employees and usersHow to add API support for the Create Activity in CrelateHow to Associate a Connection ID with Your End-UserHow to build a Candidate Assessment product withHow to build a candidate sourcing or job board app with Unified.toHow to build a Discord support bot with Unified.to and LangbaseHow to Build a Fintech Application with Unified's Payments APIHow to Build an E-Commerce Product Integration with UnifiedHow to build an invoicing system with Unified.toHow to build Enterprise Search using RAGHow to configure Bullhorn Redirect URI for creating a connectionHow to configure webhooks in HubSpotHow to configure webhooks in Thrive LearningHow to configure webhooks in Toast for UnifiedHow to Connect Anthropic to Real-Time SaaS Data with Unified.to MCP ServerHow to Connect Cohere to Real-Time SaaS Data with Unified.to MCP ServerHow to Connect Google Gemini to Real-Time SaaS Data with Unified.to MCP ServerHow to Connect LLMs to Real-Time SaaS Data with Unified.to MCP ServerHow to Connect OpenAI to Real-Time SaaS Data with Unified.to MCP ServerHow to Connect Zoom and Zoom PhoneHow to create a Connection In Microsoft TeamsHow to create a token-based connection in HighlevelHow to Create a Unified.to Connection to HighLevelHow to Create a Xero Connection in Unified.toHow to create and configure webhooksHow to create Connection with HubspotHow to customize portal URLs for Stripe and GoCardlessHow to filter webhook eventsHow-to Get a Private Support Channel for Your Unified IntegrationHow to get your 8x8 Connect API Key and Account ID: Step-by-step guideHow to get your ADP Workforce Now Oauth2 client ID, Oauth2 client secret, Oauth2 PEM certificate and Oauth2 private key: Step-by-step guideHow to get your Amazon S3 AWS Region, AWS S3 Key and AWS S3 Secret: Step-by-step guideHow to get your Ashby API Key: Step-by-step guideHow to get your Brex API token: Step-by-step guideHow to get your Bullhorn OAuth2 Client ID, OAuth2 Client Secret, API Username and API Password: Step-by-step guideHow to get your Ceridian Dayforce Username, Password and Client Namespace: Step-by-step guideHow to get your Crelate API key: Step-by-step guideHow to get your Dashlane API Key: Step-by-step guideHow to get your Deel Access Token: Step-by-step guideHow to get your Dialpad API Key: Step-by-step guideHow to get your Discord OAuth 2 credentials and bot tokenHow to get your ELMO client ID and client secret: Step-by-step guideHow to get your Gainsight Client ID, Client Secret and Gainsight API Domain: Step-by-step guideHow to get your Greenhouse API Key and Job board token: Step-by-step guideHow to get your Helpscout API Key: Step-by-step guideHow to get your HiBob Service User ID and Service User Token: Step-by-step guideHow to get your HighLevel API Key and Location ID: Step-by-step guideHow to get your HubSpot developer key and OAuth 2 credentials (Legacy Apps)How to get your Humaans API Key: Step-by-step guideHow to get your iCIMS API Username, API Password and Customer ID: Step-by-step guideHow to get your JobDiva Client ID, Username/email and Password: Step-by-step guideHow to get your Jobvite API Key, API Key Secret and Email: Step-by-step guideHow to get your Lever API Key: Step-by-step guideHow to get your Loxo Agency slug, API Key and Agency ID: Step-by-step guideHow to get your Microsoft Active Directory / Entra ID Client ID, Client Secret and Tenant ID: Step-by-step guideHow to get your Microsoft Azure AD OAuth 2 credentialsHow to get your OAuth 2 credentials for GmailHow to get your OAuth 2 credentials for Microsoft Dynamics 365How to get your OAuth 2 credentials in PipeDriveHow to get your OpenAI API Key: Step-by-step guideHow to get your Paycom SID/Username and Token/Password: Step-by-step guideHow to get your PCRecruiter Username, Password, Database ID, App Key and App ID: Step-by-step guideHow to get your SAP SuccessFactors (OpenID Connect) Username, Password, Client ID, Client Secret, Dependency Name, IAS Host and API URL: Step-by-step guideHow to get your SAP SuccessFactors Username, Company ID, Password and API URL: Step-by-step guideHow to get your Shopify Admin API access token and Store ID: Step-by-step guideHow to get your Wayfair Client ID, Client Secret and Vendor Encrypted Key: Step-by-step guideHow to get your Workable API Token and Subdomain: Step-by-step guideHow to get your yotpo APP Key / Store ID and Secret Key: Step-by-step guideHow to Handle Attachments in Invoice, Bill and Credit MemoHow to migrate or import your integrations into Unified.toHow to obtain your GitHub OAuth2 credentialsHow to Power Claude with Live Customer Data Using Unified MCPHow to receive assessment orders from an ATS with Unified.toHow to register a Google developer app and get OAuth 2 credentialsHow to register a Salesforce developer app and get OAuth 2 credentialsHow to register a Slack developer account and get OAuth 2 credentialsHow to Register a Workday Developer App and Get OAUTH2 CredentialsHow to Register a Workday Developer App and Get OAUTH2/ SOAP CredentialsHow to Register a ZendeskSell Developer App and Get OAUTH2 CredentialsHow to Register a Zoho Developer App and Get OAUTH2 CredentialsHow to Register an ADP Developer App and Get OAUTH2 CredentialsHow to Register an Atlassian Developer App and Get OAUTH2 CredentialsHow to Register your Facebook OAuth2 ApplicationHow to Register your Google Ads OAuth2 ApplicationHow to Register your MetaAds OAuth2 applicationHow To Request & Write Raw Integration DataHow to Retrieve Microsoft Dynamics 365 Business Central CredentialsHow to set up a custom API URL with a CNAMEHow to set up a HiBob marketplace installHow to Set Up a Microsoft Teams Bot with UnifiedHow to set up and configure NotionHow to set up Google Business Profile API access and get OAuth 2 credentialsHow to Set Up LinkedIn Webhooks with UnifiedHow to set up native webhooks for QuickBooks Online with UnifiedHow to set up Slack webhooks using event subscriptionsHow to set up Telegram (bot) with Unified.toHow to set up your scopes in HubSpotHow to setup a Freshbooks developer appHow to setup a TikTok Shop applicationHow to Setup AWS Assume Role for AWS Secret ManagerHow to setup Oracle JD EdwardsHow to Setup Quickbooks DesktopHow to setup Sage 100 with Unified.toHow to troubleshoot unhealthy connectionsHow to troubleshoot unhealthy webhooksHow to use SCIM with the Unified APIHow to use the Passthrough APIHow to Use Unified.to's Generative AI API with OpenAI and ClaudeHow to use User Provisioning and Verification with UnifiedHow virtual webhook retry and recovery worksIntegration set-up guide for LeverManaging custom validation rules in SalesforceNetSuite Authentication Setup for UnifiedNotice of Deprecation of Fields and Objects (Nov 2025)Oracle HCM / Taleo OAuth Credentials GuideRetrieval-Augmented Generation (RAG)SalesForce (External Client Apps) on Multiple OrganizationsSAML Single-Sign-OnScaling MCP Tools with Anthropic's (& OpenAI's) Defer LoadingSet Environments for your Unified.to WorkspaceSetting up a Slack Bot Connection with Unified.toSetting up OAuth 2 Credentials for Greenhouse's APIsTrello Connection Guide in UnifiedUnderstanding OAuth2 Authorization flowsUnderstanding Response Time Headers in the Unified APIUnified Assessment API: Embed Assessments Inside ATS PlatformsUnified's MCP ServerUnified MCP Server with LangChain and LangGraphUnlock real-time data with virtual webhooksUse Unified to sign in your users into your applicationWorkable: Creating candidates and attaching them to jobsWorkday vs Workday Legacy — Why Unified.to Supports BothWorking with hierarchical tree data in Storage, Messaging, and KMS APIs
Are we missing anything? Let us know
Was this page helpful?