Transcripts, emails, notes and tickets
New text only, full transcript, canonical customer
Signals per customer, with quotes
Pre-meeting brief, risk queue and AI agent
What it solves
- The team walks into the meeting knowing what the customer already said.
- Risk, objections and product requests come out of conversations with the quote that proves them.
- AI reads each conversation once, with no repeated history and no runaway cost.
Business questions it answers
Ask your agent these questions once the case is live.
What you need
- Meeting recorder, CRM and support tool connected to Nekt
- The single-customer map, to tie each conversation to a customer
- A closed list of the signals AI should extract
What you get
- A base of interactions per customer with clean text
- Transcripts in quotable windows, with timecode and link
- AI-extracted signals, each with the literal quote
- An AI agent that prepares the pre-meeting brief
Where to activate
The agent via MCP reads the customer's latest conversations and returns open items, objections and risks with citations.
Exit signals enter the CS queue with the quote, the date and the customer's MRR.
Requests and bugs grouped by theme, ranked by affected customers and their revenue.
Cleaning emails, tying every interaction to a customer and keeping AI cost under control takes work. Start with calls, which already arrive with a transcript and participants, and add emails and tickets later. The detailed view has the business rules, the pitfalls and the acceptance test. Or send everything straight to your agent with the Nekt MCP.
What the customer said about canceling, pricing or a bug is scattered across transcripts, CRM emails and chats, and nobody reads it all before the meeting. When the base is built for AI, each email reply carries the whole quoted thread and inflates signals, the transcript sits in a different field than expected, the same call is linked to three companies and the agent answers from another tool's summary instead of what was actually said.
How it is usually done, and the rule
Each row is a mistake that already happened in practice.
Consolidate every text interaction into a single format: canonical customer, date and time, channel (call, email, note, ticket, WhatsApp), direction (customer or team), author and full text. Include former customers, including those who canceled: they provide the examples of exit signals used for calibration.
In email, each reply carries the quoted history. Cut at the markers ('From: ... Sent:', 'On ... wrote:', lines starting with '>') before sending to AI. In a real base, 85.5% of email text was repeated history, and the AI kept finding the same statements in every reply: churn signals came out about 2.7 times inflated.
The summary generated by the meeting recorder is a lossy third-party interpretation. Do not use it to answer, to choose which calls to read or to fill gaps. A call with no transcript is reported as having no transcript.
Utterances are too short to give context (median of about 50 characters in a real base). Join consecutive utterances into 60-second windows, keyed by call and window number, keeping each utterance's timecode. Reading the windows in order rebuilds the whole call. A citation carries the call title, date, timecode and recording link.
Calendar placeholders and calls without a minimum duration or a transcript are left out of contact counts. One call links to several companies (the CRM's company hierarchy ties the same call to the parent and to subsidiaries), so count distinct call_id when joining to companies.
In HubSpot, the transcript pasted by the team was in hs_meeting_body, and hs_internal_meeting_notes was always empty. Check with real data which field holds the text before building the base. The HubSpot search API stops at 10,000 results and cuts notes: use the connector's full stream.
AI returns fixed fields: summary, sentiment, churn risk signals, expansion signals, pain points, product feedback, competitors mentioned and next steps. Every signal carries the literal quote and the interaction id. In a cancellation or downgrade request, separate leaving from rightsizing; when in doubt, the safe default for retention is leaving.
Process forward, item by item: an interaction enters the run if it was never read or changed since the last read, with a watermark per item, not a global one. Use a fixed window (for example, the last 15 days), batch processing and a cap per run. Old history is classified once, outside the routine, and new data always wins.
The last meaningful contact is the last valid call or the last message exchanged with the customer on their preferred channel. A created task, an automated email and a field change in the CRM do not count.
Mask email, phone, CPF (individual tax ID) and CNPJ (company tax ID) before sending text to an external model or a voice-of-the-customer tool. Keep the text base in a layer with its own MCP permission, separate from contract values.
What AI extracts from each conversation
Fixed fields, each item with the literal quote and the interaction id.
Definitions
Pitfalls that already happened
With quoted email history, AI kept finding the same statements in every reply and churn signals came out about 2.7 times inflated.
Cut quoted history before AI.
The base read the meeting's internal notes field, which was always empty; the transcript was in the meeting body.
Check the field with real data before publishing the base.
The agent answered from the recording tool's automatic summary and missed objections that only appeared in the transcript.
Forbid the summary in the context document and use only the transcript.
Through the CRM's company hierarchy, each call was linked to about three companies and contact volume tripled.
Count distinct call_id.
The meeting owner in the CRM was not the person who led the conversation, and the per-rep analysis was wrong.
When the owner is unreliable, identify the team participant from the transcript.
Reprocessing every call on each run used up the API credit in a few days.
Fixed window, batches and a per-item watermark.
Acceptance test
The case is done when every item passes.
- In a sample of 50 emails, no interaction carries quoted text from an earlier message.
- The call count per customer uses distinct call_id and matches the meeting recorder.
- Every extracted signal has a literal quote that exists in the interaction text.
- Running the routine with no new interaction calls the model zero times.
- For 10 calls, reading the windows in order rebuilds the full transcript.
Agent package
Paste into Claude, ChatGPT or any client with the Nekt MCP connected.
Customer conversations - The source for call content is the full transcript in 60-second windows. Never use the recorder's automatic summary: not to answer, not to choose calls, not to fill gaps. Call without a transcript: say there is no transcript. - Every statement about what the customer said comes with a citation: call title or email subject, date, timecode when available and link. - Emails contain only the new text of each message; quoted history was removed. - Count calls by distinct call_id; one call may be linked to several companies of the same group. - Short calls or calls without a transcript do not count as contact. - Risk, expansion, pain point, feedback, competitor and next-step signals come from the signals table, each with a literal quote. Do not invent a signal without a quote. - Cancellation or downgrade request: leaving = exit, rightsizing = size adjustment. When in doubt, treat it as leaving. - Last real contact = last valid call or message exchanged, not the last CRM activity. Client exceptions: - <client>: the transcript pasted by the team is in field <field>. - <client>: the preferred channel is WhatsApp; the customer's group is linked by the normalized group name.
Build the "Conversations as a foundation for AI" case in my Nekt workspace following the rules at https://academy.nekt.com/en/industrias/saas/conversas-base-para-ia.md. 1) Find the source tables and confirm the columns the rules use. 2) Create a transformation at the stated grain applying every rule. 3) Run the acceptance test and show me the result of each item. 4) Create the case's context document in the workspace, leaving my clients' exceptions open for me to fill in.
Variations
Extracting qualification criteria (such as MEDDPICC) from sales notes logged in the CRM.
Groups per customer linked by the normalized group name or by the last 8 digits of the phone.
Anonymized text (email, phone and tax ID masked) sent to an external analysis tool.