Skip to main content
Harly separates provider setup into two layers:
  1. Installation credentials live in the server environment and enable an OAuth or API client.
  2. Workspace connections are created by an owner or administrator in Settings → Integrations and are stored encrypted in PostgreSQL.
This means one Harly installation can serve multiple workspaces without sharing a user’s refresh token between them.

Integration map

Connection lifecycle

1

Create provider credentials

Create the provider application with the redirect URI and scopes shown in the provider guide. Keep the client secret server-side, never in source control or client-facing code.
2

Add installation variables

Add the values to the web process’s secret manager and restart Harly. Confirm the integration card in Settings → Integrations no longer reports missing credentials.
3

Connect the workspace

Open Settings → Integrations, connect the account, select a calendar or channel where requested, and run the provider test.
4

Exercise failure recovery

Disconnect and reconnect a test account, verify a sample event or message, and record the owner for future token rotation.
A provider connection is not the source of truth for a Harly record. Harly saves the interview, application, or message first and reports sync warnings when the provider is unavailable. Never create a duplicate record to work around a sync warning. Use the retry action on the existing record instead.

Integration-specific guides

Email

Resend, SMTP, inbound replies, and mailboxes.

Google Calendar and Meet

OAuth setup, callback registration, and common errors.

Microsoft Outlook and Teams

Entra app registration and calendar sync.

Video providers

Zoom, Teams, Meet, and Jitsi.

Notifications

Slack, Discord, and Telegram.

Signatures

DocuSeal and Harly Signing.

Storage

Local volume and S3-compatible providers.

JOIN.com candidate import

Import candidate applications from JOIN with a one-time API token.

Greenhouse import

Import candidate profiles with a scoped Harvest API key.

Workable import

Import profiles with a Workable token and the r_candidates scope.

Ashby import

Import candidate profiles with Ashby endpoint permissions.

Lever import

Import Lever opportunities with read-only API access.

Troubleshooting pattern

  1. Open Settings → Integrations and check the provider status indicator.
  2. Verify the public origin and exact redirect URI match what is registered in the provider.
  3. Confirm the web process received the current secret variables after the last restart.
  4. Reconnect the workspace account if the provider returned invalid_grant.
  5. Inspect the application or interview warning and retry the sync from its record rather than creating a duplicate external event.
For detailed symptoms and fixes, see troubleshooting.