Skip to main content
StackOne offers three ways to let end-users connect their accounts to your application.
MethodBest ForUser Experience
Embedded HubProduction appsIn-app, branded
Auth LinkEmail flows, demosStandalone page
DashboardInternal testingAdmin-only

Embedded Hub

Embed the StackOne Hub directly in your app. End-users select a connector and authenticate without leaving your application.
  • Production applications with custom UX
  • Branded, in-app connection experience
  • Full control over the integration flow

Embedding Guide →

Complete guide for React and non-React implementations
Secure URLs that open the StackOne Hub in a standalone browser tab. Generate from the dashboard or via API.
  • Onboarding emails asking end-users to connect their HRIS
  • Quick demos without frontend integration work
  • Sales-led onboarding flows

Auth Links Guide →

To trigger a workflow when an account is linked via Auth Link, subscribe to account webhooks since there’s no frontend callback available.

Dashboard Linking

Connect accounts directly from the StackOne dashboard for internal testing.
  • Testing API integration during development
  • Debugging connection issues
  • Internal demos
Dashboard linking is for internal use only. End-users should use the Embedded Hub or Auth Links.

Connection Events

Get notified when accounts are connected, updated, or disconnected.

Frontend Callbacks (Embedded Hub)

When using the Embedded Hub, handle connection events directly in your frontend:
import { StackOneHub } from "@stackone/hub";

function App() {
  return (
    <StackOneHub
      onSuccess={(account) => {
        console.log('Account linked:', account.id);
        // Trigger your onboarding flow
      }}
      onCancel={() => console.log('User cancelled')}
      onClose={() => console.log('Hub closed')}
    />
  );
}

Webhooks

For backend notifications (required for Auth Links, recommended for all methods), subscribe to account webhooks:
EventTriggered When
account.createdNew account linked
account.updatedAccount credentials refreshed or modified
account.deletedAccount disconnected
Example webhook payload
{
  "event": "account.created",
  "data": {
    "id": "acme-corp-bamboohr",
    "provider": "bamboohr",
    "origin_owner_id": "cust_12345",
    "status": "active"
  }
}

Next Steps