Connectors and credentials
Connectors and sources
A connector is a kind of system Vocion can read (HubSpot, Gmail, Slack, GitHub…). A source is one configured connection in a workspace: sources/<slug>.yaml, with a kind, config and a sync schedule. Synced documents are chunked, embedded and searchable with hybrid vector + keyword retrieval on pgvector.
Built-in kinds: web, local-files, file-import, hubspot, strapi, jira, google-ads, ga4, gmail, google-calendar, granola, slack, drive, zoom, s3, apollo, notion, posthog, github, rest, sentry, slate, elevenlabs.
- HubSpot
- Apollo
- Gmail
- Google Calendar
- Slack
- Zoom
- Granola
- Slate
- Google Drive
- Notion
- Strapi
- GitHub
- Jira
- Sentry
- PostHog
- Google Analytics 4
- Google Ads
- Amazon S3
- ElevenLabs
- Web pages and feeds
- File import
- REST API in YAML
Manage them at Connectors (/dashboard/connectors). Sync on demand with POST /api/v1/sources/{slug}/sync or npm run sync:source.
Connecting: log in with the vendor
Google, Slack, Atlassian, HubSpot, Notion, Zoom, Apollo, GitHub and PostHog connect with one click: Connect with <vendor> on the Connectors page or in chat. The login runs on a vendor OAuth app, resolved in this order:
- The workspace's own login app (client ID and secret saved under Developers → API credentials; the form shows the redirect URL to register)
- The server's environment (
GOOGLE_OAUTH_CLIENT_ID,SLACK_CLIENT_ID, …)
Each login remembers the app it ran on, so refreshes keep working; replacing the app asks for a new login. Connecting a new source always waits for a person's approval.
Keys the workspace supplies
A workspace can store its own model and tool keys (OpenAI, Anthropic, Vertex, Azure OpenAI, AWS, Tavily, Brave, Firecrawl…) under Developers → API credentials. Every outbound call uses the workspace's key first, the server's environment second, so the workspace's own vendor account is billed. One live key per platform per workspace; saving a new one revokes the old.
Tokens Vocion issues
vcn_live_… bearer tokens are what outside tools present to Vocion. Vocion stores a hash, plus an encrypted copy an admin can reveal. Issue them under Developers, or with npm run tokens:issue. See REST API → Authentication.
Encryption at rest
Stored credentials are encrypted with AES-256-GCM under a per-workspace data key. VOCION_CREDENTIAL_VAULT decides how that key is wrapped: local (with VOCION_CREDENTIAL_VAULT_KEY; development only) or kms (with VOCION_KMS_KEY_ARN; production). See Security.