Getting Started
This page is the happy path for someone who already has a Corveil org and wants one source connected, end to end, until something useful shows up. It is not an evaluation brief — if you do not have an account yet, start at Evaluating Corveil.
You need to be an org admin. Adding a source, storing a credential, and confirming bindings are all admin actions.
Pick one source. Two at once is how a first result gets lost in setup.
1. You have an org
Sign in to the dashboard. You are in the right place when the sidebar shows Corvus, Workforce, and Connections. Inviting teammates is product work, not a docs step — skip it until after the first result.
If corveil is not on your PATH yet, install and authenticate it from the CLI reference. You will use it in step 3.
corveil whoami # → { "org_name": "...", "org_id": "...", ... }2. Connect one source
Store the credential first, then create the source, then confirm bindings. That last click is the one that trips people: a new source sits in bindings required and does not poll until you confirm.
Credential, then source
- Connections → Credentials. Create the vault entry the source needs. The Credential Vault page lists every type; you only need the one for the source you picked.
- Corvus → Sources → Add sensor. Choose the type, name it, point it at that credential, save. The API path is still
POST /api/sensors— the dashboard label is Sources, the plumbing noun is unchanged. - The bindings drawer opens. Defaults are already filled in. Click Confirm bindings & start processing. The row should flip from bindings required to active.
- Poll now on that row (or wait for the scheduled poll). Then wait one extraction cycle — roughly 30 minutes — before entities appear in the Graph. Events on the source row show up first; the graph is not instant.
Slack
Use this if your team's day lives in channels. Full setup — app manifest, scopes, invite-the-bot, optional @corveil chat — is on the Slack source guide.
For a first result you only need ingest:
- A
slack_bot_tokencredential (xoxb-…) withchannels:history,channels:read,users:read, andusers:read.email. - The bot invited to each channel you list (
/invite @yourbot). - Config
channelsas comma-separated names without#, e.g.general, engineering.
Signing secret and Event Subscriptions are for @corveil chat. Skip them until the graph has messages.
What lands: Channel and Message entities, plus Person records for authors. After extraction, corveil search on a channel name or a phrase from a recent post should hit.
Google Meet
Use this if you want meetings, attendees, and transcript-derived decisions. Full setup — service account, domain-wide delegation, optional allowlist — is on the Google Meet source guide.
Two things that page assumes you already know, because they are the whole capture gate:
- Gemini note-taking has to have been on for the meeting. A call without notes produces nothing — no transcript, no title, no attendees. That decision lives in Google Workspace, not in Corveil config. See Choosing a meeting-capture path before you pick Meet over Drive.
- For a first result, prefer Meet (not Drive). Meet fans out across organizers and creates Meeting entities with structured attendees. Drive watches one folder and creates document entities; a single My Drive folder silently misses every other organizer.
Credential: google_service_account_json with domain-wide delegation. Config can be empty for org-wide fan-out, or set member_allowlist to two or three people for a pilot.
What lands: Meeting entities from transcribed calls, Person attendees, then Topic / Decision / ActionItem once extraction has run. Search for a meeting title, not a calendar invite that was never transcribed.
3. Confirm data landed
Check three surfaces. Any one of them is enough; using all three tells you whether the gap is poll, extraction, or the client.
Dashboard — Corvus → Sources. The row is active, Last polled is recent, and Events is non-zero. If it is still bindings required, go back to step 2. If Test connection fails, the source guide's Verify section names the usual credential and scope problems.
Dashboard — Corvus → Graph. Open the Entities tab. Slack should show Channel / Message / Person. Meet should show Meeting / Person, then decisions and topics after the LLM pass.
CLI or MCP. Same graph, from a terminal or an agent:
corveil stats # entity counts + source status
corveil search "standup" # Slack channel name, or a Meet title
corveil entities --type Channel # Slack
corveil entities --type Meeting # Meet
corveil context Meeting "Q3 Planning" # once a name resolvesOr ask an MCP client pointed at /mcp (see the MCP reference):
What did we talk about in #engineering this week?Who was in yesterday's planning meeting, and what was decided?
Those questions hit ontology_search / ontology_lookup. Empty results with a healthy source row almost always mean extraction has not finished yet — wait the cycle, then search again. corveil sensors poll is a stub; use Poll now in the dashboard.
Nothing yet?
- Slack: is the bot in the channel (
not_in_channelmeans it is not)? - Meet: did that meeting actually have Gemini notes? An untranscribed call is invisible on purpose.
- Both: bindings confirmed, then one poll, then ~30 minutes.
4. What you should see next
Once the graph has entities, the rest of the product starts to have something to say.
- Corvus → Graph is the working set: people, channels or meetings, and the edges between them. Drill into an entity for its synthesized page, evidence, and neighborhood.
- Daily Insights show up on the dashboard lede (What Corveil noticed) and under Monitoring → Summaries. They are generated from gateway AI traffic. They are not instant, and they are not a dump of Slack messages — they are a digest of what the org has been doing with AI, once there is traffic to summarize.
- The always-on AI Gateway source — listed on All Sources under Corveil-native — ingests those Insights summaries back into the same graph. No credential, no Add sensor. That is why gateway usage and connected tools land in one place.
A scheduled morning brief in Slack is Workforce → Automations — a prompt with a schedule and a delivery channel, once you want the graph to do something every day. The control plane is the same shape as everything else: dashboard, corveil, or MCP control_* tools. This page stops at the first entity and the first digest.
Then what
Add a second source after the first one is producing entities. The overlapping Google sources share one google_service_account_json credential; Slack chat is the signing-secret path you skipped. Point a coding agent at /mcp so the graph is in the same context as the work. Tune what gets extracted on Ontology Concepts only after you have seen a real entity you want more — or less — of.