Sensors
Sensors are how Corveil ingests activity from the tools your organization already uses. Each sensor polls (or receives webhooks from) an external system, normalizes events, and feeds them into the intelligence pipeline. Connecting your first one? The Getting Started page walks Slack or Google Meet end to end.
Dashboard label matches the API path
v0.4.3 briefly flipped the dashboard label to Sources; #2927 flipped it back to Sensors. The API is still POST /api/sensors, and each type is still registered via sensor.RegisterSpec in go/internal/sensor/*.
Every guide on this page follows the same shape:
- What it ingests
- Credential — which credential vault type to create
- Config fields — the keys the source accepts
- Provider-side setup — prerequisites on the source system
- Wire-up — the
POST /api/sensorspayload - Verify — how to confirm it's working
The config and credential fields documented here are sourced from each source's registered spec (sensor.RegisterSpec in go/internal/sensor/*), so they match what the Add sensor form renders.
Choosing between overlapping sources
Google Meet and Google Drive both ingest Gemini meeting notes, and what either captures is governed by your Workspace's note-taking policy rather than by source config. If you are setting up meeting capture, read Choosing a meeting-capture path before you pick — it compares the two, covers the per-organizer My Drive gap, and makes a recommendation.
Available sensors
These sensor types are implemented and registered — you can create them today. They're grouped by what you're trying to ingest; the coming soon line under each group lists planned integrations in the same area that don't yet have a registered backend or setup guide.
Engineering & delivery
| Sensor | Ingests | Credential type |
|---|---|---|
| GitHub | Issues, PRs, commits, reviews, comments | github_token |
| GitLab | Merge requests, issues, commits, comments | gitlab_token |
| Bitbucket | PRs, issues, commits, reviews (Cloud only) | bitbucket_access_token |
| Jenkins | CI/CD build results (webhook) | none — server-issued token |
| PagerDuty | Incidents, services, and on-call shifts | pagerduty_api_key |
Coming soon: OpsGenie.
Meetings & conversations
| Sensor | Ingests | Credential type |
|---|---|---|
| Google Meet | Meeting transcripts & participants | google_service_account_json |
| Zoom Transcripts | Cloud-recording transcripts & participants | zoom_s2s_oauth |
| Slack | Channel messages & threads | slack_bot_token |
| Microsoft Teams | Channel messages & threads (GCC-High / DoD too); meeting transcripts on commercial tenants only | microsoft_graph |
| Google Calendar | Scheduled events, attendees & recurrence | google_service_account_json |
| Outlook Calendar | Scheduled meetings across org members | microsoft_graph |
| Outlook | Mail threads across org members | microsoft_graph |
| Gong | Sales call transcripts & participants | gong_access_key |
| Gmail | Mailbox messages, threads & senders/recipients | google_service_account_json |
Documents & knowledge
| Sensor | Ingests | Credential type |
|---|---|---|
| Google Drive | Docs, Sheets, Slides, and file comments in a folder | google_service_account_json |
| Confluence | Wiki pages & comments (Cloud) | jira_api_token |
| Confluence Data Center | Wiki pages & comments (self-hosted) | atlassian_dc_pat |
| Notion | Wiki pages & comments | notion_token |
| Airtable | Records & comments in a base | airtable_pat |
| SharePoint / OneDrive | Documents in SharePoint & OneDrive libraries | microsoft_graph |
| Amazon S3 | Documents, exports & reports in a bucket prefix | aws_access_key (optional) |
| Local File Watcher | Documents, exports & reports in a mounted directory | none — operator-mounted volume |
Work tracking
| Sensor | Ingests | Credential type |
|---|---|---|
| Jira | Issues & changelog activity (Cloud) | jira_api_token |
| Jira Data Center | Issues & comments (self-hosted) | atlassian_dc_pat |
| Linear | Issues & comments (Cloud) | linear_api_key |
| Asana | Tasks & comments (Cloud) | asana_pat |
| Monday.com | Board items & updates (Cloud) | monday_api_token |
Business & CRM
| Sensor | Ingests | Credential type |
|---|---|---|
| shell-crm | Companies, deals, contacts, who-knows-who (KNOWS), plus activity (comments, email opens → Event + OPENED) | shellcrm_api_key |
| HubSpot | CRM objects + notes, emails, calls & meetings | hubspot_access_token |
| Intercom | Companies, contacts, and customer conversations | intercom_access_token |
| Salesforce | CRM objects + notes, emails, calls, meetings & tasks | salesforce_connected_app |
| Zendesk | Support tickets, comments, and customer organizations | zendesk_api_token |
HR & People
| Sensor | Ingests | Credential type |
|---|---|---|
| Greenhouse | Jobs, candidates, applications, interviews, scorecards, and offers | greenhouse_harvest_api_key |
| Lever | Postings and opportunities (candidates in pipeline) | lever_api_key |
| Workday | Workers and supervisory organizations — org chart and role context | workday_api_client |
| BambooHR | Org chart, team structure, and role context from the employee directory | bamboohr_api_key |
| Rippling | Org chart — companies, departments, teams, and workers | rippling_api_token |
| Gusto | Org chart — company, departments, employees, and contractors | gusto_api_client |
Corveil-native
AI Chat (MCP usage capture) is a push-only source. There is no poll loop and nothing to create: the ontology MCP server records a sensor_event synchronously whenever a user calls a tool. The row is seeded for the org (ai_chat) and does not appear in Add sensor.
Custom
| Sensor | Ingests | Credential type |
|---|---|---|
| Webhook | Custom JSON events (inbound webhook) | none — server-issued token |
Credential reuse across sources
Several sources share one credential, so a tenant that has connected one needs no second app registration for its siblings:
microsoft_graphbacks Microsoft Teams, SharePoint / OneDrive, Outlook Calendar, and Outlook. Adding Outlook to a tenant that already runs Teams, SharePoint, or Calendar only needsMail.Readon the existing app registration.google_service_account_jsonbacks Google Meet, Google Drive, Google Calendar, and Gmail — Gmail reuses the existing domain-wide delegation grant, addinggmail.readonly.jira_api_tokenbacks both Jira and Confluence on the same Atlassian Cloud site.atlassian_dc_patbacks both Jira Data Center and Confluence Data Center. Cloud API tokens and Data Center PATs are not interchangeable.
Coming soon
These planned integrations do not yet have a registered backend or a setup guide. Grouped by function, those are: OpsGenie.
Building your own
Any data source can feed Corveil through the Plugin SDK or the generic inbound webhook. See the plugin guide for the source lifecycle interface.