Self-Hosting Integration Setup
How to configure OAuth integrations for your self-hosted Hissuno instance.
Overview
Hissuno integrations that use OAuth require you to create your own app/credentials with each provider. This guide walks through creating the required OAuth apps for each integration.
API-key integrations (Gong, Zendesk, Fathom, PostHog) work without any server-side configuration - just enter your API key in the Hissuno UI.
Widget works out of the box with no external app or credentials needed.
All environment variables referenced below are documented in env.example at the root of the Hissuno repository.
Callback URL Pattern
All OAuth callbacks follow the same pattern:
{NEXT_PUBLIC_APP_URL}/api/integrations/{provider}/callback
Replace {NEXT_PUBLIC_APP_URL} with your instance URL (e.g. https://hissuno.yourcompany.com).
Slack
Creating a Slack App
- Go to https://api.slack.com/apps and click Create New App > From scratch
- Name the app (e.g. "Hissuno") and select your workspace
- Navigate to OAuth & Permissions and add the following Bot Token Scopes:
app_mentions:read,channels:history,channels:join,channels:readchat:write,groups:history,groups:read,reactions:writeusers:read,users:read.email
- Under OAuth & Permissions > Redirect URLs, add:
{NEXT_PUBLIC_APP_URL}/api/integrations/slack/callback - Navigate to Event Subscriptions > Enable Events, and set the Request URL to:
Subscribe to bot events:
{NEXT_PUBLIC_APP_URL}/api/integrations/slack/eventsapp_mention,message.channels,message.groups - Go to Basic Information and copy the Client ID, Client Secret, and Signing Secret
Environment Variables
SLACK_CLIENT_ID=your-slack-client-id
SLACK_CLIENT_SECRET=your-slack-client-secret
SLACK_SIGNING_SECRET=your-slack-signing-secret
GitHub
Hissuno supports two ways to connect GitHub. Choose the one that fits your setup.
Option A: Personal Access Token (recommended for self-hosted)
The simplest way to connect. No environment variables or GitHub App creation needed.
- Go to github.com/settings/tokens and create a new token
- Classic token: select the
reposcope - Fine-grained token: grant "Contents" read access on the repositories you want
- Classic token: select the
- In Hissuno, open the GitHub integration dialog for your project
- Select Access Token, paste your token, and click Connect
That's it - no server-side configuration required.
Option B: GitHub App (advanced)
Use this if you prefer OAuth-based auth or need organization-wide installations.
- Go to https://github.com/settings/apps and click New GitHub App
- Set Homepage URL to your Hissuno instance URL
- Set Callback URL to:
{NEXT_PUBLIC_APP_URL}/api/integrations/github/callback - Optionally set Setup URL to the same callback URL
- Set Webhook URL to your Hissuno instance URL +
/api/webhooks/github(if using webhook-based sync) - Under Permissions, grant:
- Repository contents: Read
- Metadata: Read
- Pull requests: Read
- Webhooks: Read & Write
- After creating the app, generate a private key and note the App ID
- Base64-encode the private key for the environment variable:
cat your-private-key.pem | base64
Environment Variables (GitHub App only)
These are only needed if you use Option B (GitHub App). For PAT-based connections, no environment variables are required.
GITHUB_APP_ID=your-github-app-id
GITHUB_APP_PRIVATE_KEY=base64:your-base64-encoded-private-key
GITHUB_APP_SLUG=your-github-app-slug
The GITHUB_APP_SLUG is the URL-friendly name of your GitHub App (visible in the app's URL).
Intercom
Creating an Intercom App (OAuth)
- Go to https://developers.intercom.com > Your Apps > New App
- Set the OAuth Redirect URL to:
{NEXT_PUBLIC_APP_URL}/api/integrations/intercom/callback - Note the Client ID and Client Secret from the Authentication page
Alternative: You can skip OAuth entirely and use an Intercom Access Token directly in the Hissuno configuration dialog. In that case, no environment variables are needed.
Environment Variables (OAuth only)
INTERCOM_CLIENT_ID=your-intercom-client-id
INTERCOM_CLIENT_SECRET=your-intercom-client-secret
Jira
Creating an Atlassian OAuth App
- Go to https://developer.atlassian.com/console/myapps/ and click Create > OAuth 2.0 integration
- Set the Callback URL to:
{NEXT_PUBLIC_APP_URL}/api/integrations/jira/callback - Under Permissions, add Jira API with the following scopes:
read:jira-workwrite:jira-workread:jira-useroffline_access
- Note the Client ID and Client Secret from Settings
Environment Variables
JIRA_CLIENT_ID=your-jira-client-id
JIRA_CLIENT_SECRET=your-jira-client-secret
Linear
Creating a Linear OAuth App
- Go to Linear Settings > OAuth Applications > New Application
- Set the Callback URL to:
{NEXT_PUBLIC_APP_URL}/api/integrations/linear/callback - Select the scopes:
read,write,issues:create,comments:create - Note the Client ID and Client Secret
- Optionally set up a webhook signing secret for real-time status sync
Environment Variables
LINEAR_CLIENT_ID=your-linear-client-id
LINEAR_CLIENT_SECRET=your-linear-client-secret
LINEAR_WEBHOOK_SIGNING_SECRET=your-linear-webhook-secret # optional
HubSpot
HubSpot supports both OAuth and Private App Token connections. Private App Tokens require no environment variables.
Creating a HubSpot OAuth App
- Go to your HubSpot developer account and create an app
- Set the Redirect URL to:
{NEXT_PUBLIC_APP_URL}/api/integrations/hubspot/callback - Under Scopes, add:
crm.objects.contacts.read,crm.objects.companies.read - Note the Client ID and Client Secret from the Auth tab
Environment Variables (OAuth only)
HUBSPOT_CLIENT_ID=your-hubspot-client-id
HUBSPOT_CLIENT_SECRET=your-hubspot-client-secret
Notion
Notion supports both OAuth and Internal Integration Token connections. Tokens require no environment variables.
Creating a Notion Public Integration (OAuth)
- Go to notion.so/profile/integrations and create a Public integration
- Set the Redirect URI to:
{NEXT_PUBLIC_APP_URL}/api/integrations/notion/callback - Note the OAuth client ID and OAuth client secret
Environment Variables (OAuth only)
NOTION_CLIENT_ID=your-notion-client-id
NOTION_CLIENT_SECRET=your-notion-client-secret