Skip to content

All guides

Capture setup: channels, sources and what to connect first

How to choose capture channels, set the rights for each one, add material by hand and use the universal import path when your tools are not connected.

Who it is for
Product managers and team admins who set up capture for a company and need to decide which sources to connect and with which rights.
What you get
A capture setup with a defined channel list, explicit rights per channel, a working import path, a consent log you can show your team and a verification step that proves the setup reads what you think it reads.

Step by step

  1. 1. Start from what capture actually produces

    Capture reads a channel and turns its material into candidates. A candidate is not a fact: it carries one of four kinds — task, decision, insight or fact — a confidence value, a status and a link to the source fragment. The status is what makes the layer safe: a fresh extraction is unverified, it becomes confirmed only when a person confirms it, and a rejected extraction never enters the context. The fragment link is what makes it auditable: a timecode in a recording, a page in a document, a paragraph in a note, a URL and the quoted text the extraction rests on. Six channel types exist — meeting, document, customer feedback, calendar, chat and email. The first wave covers calendar, documents and meetings; the rest arrive later. Set up your expectations from this shape: capture produces proposals with sources, and you are the filter.

  2. 2. Decide the order: calendar, documents, meetings

    The order is not arbitrary. The calendar gives you invitations, participants and time slots — the least sensitive of the three, and quick to check against your own memory. Documents come second: requirements, specs and notes, where facts and assumptions arrive with a link to the fragment, so you can check the claim against the paragraph it came from. Meetings come last because they carry obligations of a different order: uploaded recordings and transcripts, processing of personal data, and an explicit consent that has to be obtained and can be revoked. Chat, email and customer feedback are not in the first wave — connect them when the base three work without your attention. A setup that is small and trusted beats a setup that is complete and unverified.

  3. 3. Set the rights for each channel, and write them down

    Rights are per channel, not global, and they are explicit. Read means the assistant may take material from this channel and extract candidates. Send to the model means the extracted text leaves your infrastructure and is processed by the model provider. Process locally means indexing and redaction happen on your side and the raw material is not uploaded. Each channel also lists the scopes it requests and the scopes you denied. Deny what you do not need: a denial is recorded just like a grant, and it is what keeps a channel from quietly widening later. Access decisions are made in code before the model is called — the model proposes, the code decides. Write the resulting table down where the team can see it. When somebody asks why the assistant reads a given folder, the answer should be a line in that table, not a recollection.

  4. 4. Add material by hand while automatic polling is being finished

    Connections and material are two different things: connecting a channel grants rights, it does not upload anything by itself. While automatic polling of connected sources is in progress, channels are filled manually or with demo data. Manual filling goes through the capture item operation: you pass the connection, the kind, a title, the content and, optionally, an external identifier, a sensitive flag and the locator with the fragment position. Demo channels take the same path with synthetic meetings, documents and calendar entries, which is a quick way to check the wiring before real material flows in. Expect this state to be temporary and treat the manual path as the setup tool it is: use it to seed the first week of material, then let the automatic path take over as it lands.

  5. 5. Use the universal path when your stack is not connected

    The universal path imports and exports in Markdown, JSON and CSV, and it exists for a concrete reason: a company with an unusual stack is not left waiting for a connector. The original format is not rewritten — your files keep their shape, and the data is copied in with authorship and dates preserved wherever the source format carries them. Import is idempotent: a record whose identifier is already known is skipped, so you can run the same import twice without duplicating anything. Export goes the other way: the context and the full dump come out in Markdown, JSON or CSV, which means your context is never locked inside the product. If a connector for your tools is missing, the correct answer is not to wait — it is to pick a format your stack already speaks and use it as the interface.

  6. 6. Import the context the company already has

    A new assistant with an empty context asks you to repeat what the company already decided. Importing the existing context avoids that: prior decisions, requirements, research notes and customer feedback go in as records with their authorship and dates, and the assistant starts from what the team agreed rather than from a blank page. Keep the import close to the source material. Do not reformat the team files, do not merge two systems into one cleaned-up export, and do not import everything you can find — start with the material that the team would want a new colleague to read first: the current strategy, the open hypotheses, the decisions that are still in force. The import is the same idempotent operation as any other, so you can extend it later without redoing it.

  7. 7. Treat every captured item as untrusted input

    Everything capture reads — transcripts, documents, feedback, letters — arrives from the outside, and it arrives as data, never as instructions. A document can contain a sentence that looks like an order to the assistant. The pipeline is built so that such a sentence is wrapped in explicit untrusted-content markers, the markers inside the content are escaped so it cannot pretend to be another block, and the model extracts facts from the content instead of obeying it. Access decisions are made in code, before the model is called, and the model never decides what it may see. Two operational consequences follow. First, redaction and indexing can stay on your side: process the channel locally and the raw material is not uploaded. Second, recording needs a consent that is revocable and written to the consent log. When you set up a channel for a customer or a colleague, say which of these two modes it uses.

  8. 8. Verify the setup instead of assuming it

    Three checks tell you whether the setup does what you think. First, the connected channels list: each entry shows the provider, the status and the rights you granted — read that against the table you wrote down. Second, the consent log: every grant and every revocation with its date, which is the document to show anybody whose data enters the system. Third, the confirmation queue: put one real document through a channel and work the resulting candidates. This is the only end-to-end test of the setup, because it exercises the rights, the extraction, the source links and your own filter in one pass. An empty queue after a real document is a setup problem worth solving on day one rather than a quiet failure in week three. The export path serves as the escape hatch: whatever the product holds, you can take out in Markdown, JSON or CSV.

If it does not work

The tool I use is not in the list of supported systems.
Use the universal path. Markdown, JSON and CSV are supported for both import and export, so a stack that speaks one of them is already connected to the product without a dedicated connector. Your original format is not rewritten and authorship and dates are preserved where the source format carries them. A missing connector is a reason to use the universal path, not a reason to wait.
The import created duplicates.
Import is idempotent by design: a record whose identifier is already known is skipped, so the same import can be run repeatedly without growing the data set. Duplicates appear when the source files do not carry stable identifiers, and the importer has nothing to match on. Give the records identifiers that stay the same between runs — the external identifier field is the natural place for it — and clear the duplicates that already arrived.
The connected channel shows no material.
Channels are filled manually or with demo data for now; automatic polling of connected sources is in progress. Check the status of the connection and the scopes you granted — a denied scope blocks exactly that part of the source. To see the wiring work before the automatic path lands, add the first material through the capture item operation or enable the demo channels and watch the candidates appear in the confirmation queue.
The channel reads more than I expected.
Tighten the rights instead of disconnecting everything. Narrow the requested scopes and deny the rest explicitly, because a denial is recorded just like a grant. Turn sending to the model off for that channel, or switch it to local processing so that indexing and redaction stay on your side and the raw material is not uploaded. If the channel captures recordings, revoke the consent in the consent log — the revocation applies from that moment, and the log keeps both the grant and the revocation with their dates.
A document contained something that read like an instruction and the assistant reacted to it.
Captured material is untrusted input: it is wrapped in explicit untrusted-content markers, the markers inside it are escaped, and the model extracts facts from the content instead of following it. Access decisions are made in code before the model is called, and the model does not decide what it may see. If you still see the content acted upon, treat it as a defect: reject the extraction, turn sending to the model off for that channel so the raw material stays on your side, and report the case with the channel and the fragment. The rule is fixed in a dedicated decision record, so a report can be acted on rather than argued about.