Skip to main content
Use OAuth 2.0 when you’re building a partner application — a Salesforce app, a HubSpot extension, a third-party tool — that acts on behalf of individual Yotel users rather than your own tenant. For your own server-to-server automation inside your tenant, API keys are simpler. OAuth is for when users from other Yotel tenants install your app.

Flows

Yotel supports three grant types:

Discovery

Our provider implements OpenID Connect Discovery. Fetch /.well-known/openid-configuration to auto-configure any OIDC client library:
Key endpoints:

Registering a client

Tenant admins register partner apps in the Yotel dashboard (Connected Apps settings). Each client gets:
  • client_id — public identifier, safe to ship in app metadata
  • client_secret — confidential; show once at creation time
  • An allowlist of redirect_uris
  • An allowlist of scopes this client may request
  • (Optional) A registered public key PEM for JWT Bearer

Authorization Code + PKCE

The interactive flow for SPAs and traditional web apps. PKCE (RFC 7636) is required for all clients — no plain method accepted.
Same shape in TypeScript:

Required parameters

JWT Bearer (RFC 7523)

Salesforce’s async Apex jobs, batch integrations, any server-to-server context where a user browser isn’t available.
The assertion is an RS256 JWT with claims:
  • iss — your registered issuer
  • sub — the user to impersonate
  • aud — your client_id
  • tenant_id — the Yotel tenant
  • iat / exp — 5-minute TTL enforced server-side

Refresh

Tokens default to 1-hour TTL. Refresh before expiry using the refresh_token returned with the access token:
Rotation policy: every refresh invalidates the old refresh_token and issues a new one. Reusing an old refresh token triggers a cascade-revoke of the entire token family — so you can detect when a refresh_token has leaked.

Token format

Access tokens are RS256-signed JWTs. Claims include:
You can verify tokens offline using our JWKS endpoint — no introspection round-trip needed.

Scopes

See Scope reference for the full catalog. Common ones:
  • openid profile email — OIDC identity claims
  • offline_access — required to receive a refresh_token
  • campaigns:read, campaigns:write
  • leads:read, leads:write
  • calls:read, calls:write
  • agents:read

Security review

Partners embedding our OAuth in their AppExchange / marketplace listings: our provider satisfies the baseline requirements —
  • OAuth 2.1 + PKCE (no plain method)
  • HTTPS-only endpoints
  • Refresh-token rotation with reuse detection
  • Per-client allowlisted scopes and redirect URIs
  • Token introspection + revocation per RFCs 7662 / 7009
  • Pen-test artifact available under NDA