Contact

Connect apps

Activate in Workspace settings opens a popup so the workspace owner authorizes their own account.

How Activate works

Workspace settings → Connect lists the apps Companion can use. Linear, Stripe, and GitHub are live. Activate opens a popup on Humaner. The owner signs in to that provider there. Humaner never stores the provider secret — Companion asks Vercel Connect for a short-lived token when it needs one.

Owner only

https://app.humaner.io/dashboard/inbox/settings?tab=connect Only the workspace owner can activate or disconnect an app.

Using Vercel Connect

Create four connectors on the Humaner Vercel team, name each Humaner, and attach them to the dashboard project. Linear and GitHub use the managed app connector (`linear/app-humaner`, `github/app-humaner`) — tokens are `subject: { type: "app" }`. Stripe and Notion use a user-subject grant per organization (`org:<id>`). Deployed environments authenticate with Vercel OIDC automatically. Connector ids live in project env: `VERCEL_CONNECT_*_UID`.

Public provider apps

Use Vercel’s managed Linear / GitHub / Stripe / Notion connectors — not a Linear OAuth app you created in your own Linear workspace. Linear OAuth apps default to private, so other Linear workspaces cannot see the client ID ("Could not find OAuth client… logged into the correct workspace"). If you must use a custom Linear OAuth app, set Distribution to public in Linear → Settings → API → Applications. Emails between Humaner and Linear do not need to match.

Create connectors

vercel connect create linear --name humaner
vercel connect create stripe --name humaner
vercel connect create github --name humaner
vercel connect create notion --name humaner

vercel connect attach linear/humaner --triggers --trigger-path /api/dashboard/connect/linear
vercel connect attach stripe/humaner
vercel connect attach github/humaner --triggers --trigger-path /api/dashboard/connect/github
vercel connect attach notion/humaner

Connector ids and webhook URLs live in env only: `VERCEL_CONNECT_LINEAR_UID`, `VERCEL_CONNECT_LINEAR_WEBHOOK`, `VERCEL_CONNECT_GITHUB_UID`, `VERCEL_CONNECT_GITHUB_WEBHOOK`, `VERCEL_CONNECT_STRIPE_UID`, `VERCEL_CONNECT_NOTION_UID`. Do not put `scl_…` values in the catalog.

Linear

FieldValue
Create`vercel connect create linear --name humaner`
UID`VERCEL_CONNECT_LINEAR_UID`
Webhook`VERCEL_CONNECT_LINEAR_WEBHOOK`
App nameHumaner
InstallVercel’s public Linear app, per customer workspace
TriggersIssue, Comment
Trigger path`/api/dashboard/connect/linear`
Token subjectApp (Linear workspace install)
ScopesConnector defaults — do not pass user OAuth `read`/`write`

Companion can turn a mailbox thread into a Linear issue in that workspace after the owner activates.

Stripe

FieldValue
Create`vercel connect create stripe --name humaner`
UID`stripe/humaner`
App nameHumaner
Server URL`https://mcp.stripe.com` if the CLI asks
TriggersNone — Stripe has no Connect trigger forwarding
Token subjectUser (workspace)
AccessCustomers, invoices, subscriptions for the authorized account

Activate asks the owner to authorize Stripe. Companion then reads billing next to the thread.

GitHub

FieldValue
Create`vercel connect create github --name humaner`
UID`VERCEL_CONNECT_GITHUB_UID`
Webhook`VERCEL_CONNECT_GITHUB_WEBHOOK`
App nameHumaner
NamespaceThe GitHub org or user that installs the app
Triggers (2)`issues`, `pull_request`
Event types`issues`, `issue_comment`, `pull_request`, `pull_request_review`, `deployment_status`
Trigger path`/api/dashboard/connect/github`
Token subjectApp (GitHub App install)

Set these 11 GitHub App permissions on the connector (Advanced):

PermissionAccess
MetadataRead (required)
ContentsRead
IssuesRead & write
Pull requestsRead & write
DeploymentsRead
ActionsRead
ChecksRead
Commit statusesRead
MembersRead
Organization administrationRead
Dependabot alertsRead

Notion

FieldValue
Create`vercel connect create notion --name humaner`
UID`VERCEL_CONNECT_NOTION_UID`
App nameHumaner
TriggersNone
Token subjectUser (workspace)
AccessSearch pages in the authorized workspace

Activate asks the owner to authorize Notion. Companion and MCP can then search pages in that workspace.