---
id: saas/conversas-base-para-ia
industria: SaaS e tecnologia
uso: comum
esforco: alto
grao: Interação (uma linha por mensagem, nota ou call) e call x janela de 60 segundos
---

# Conversas como base para IA

Calls, e-mails, notas, tickets e WhatsApp de cada cliente numa base única e legível por IA, que extrai risco, objeções e próximos passos sempre com a fala que prova.

## Resumo executivo

**Para quem:** Empresas de SaaS B2B com vendas e CS consultivos, que conversam muito com cada cliente.

**O que resolve**

- O time chega à reunião sabendo o que o cliente já disse.
- Risco, objeção e pedido de produto saem das conversas com a fala que prova.
- A IA lê cada conversa uma vez, sem histórico repetido e sem estourar custo.

**Por que importa:** É na conversa que o cliente avisa que vai sair, antes de qualquer número de uso cair. Mas texto sujo gera sinal falso: histórico citado, resumo de terceiros e calls contadas em dobro fazem a IA enxergar risco onde não há e esconder onde há.

**Perguntas de negócio que responde**

- O que o cliente X disse nas últimas três calls?
- Quais objeções apareceram nas reuniões deste mês?
- Quais clientes falaram em cancelar ou reduzir nos últimos 30 dias?
- Quais concorrentes os clientes mais citam?
- Quais pedidos de funcionalidade e bugs vieram das conversas no trimestre?
- Me prepare para a reunião com o cliente X.

**O que você precisa**

- Gravador de reuniões, CRM e ferramenta de atendimento conectados na Nekt
- O mapa de cliente único, para ligar cada conversa a um cliente
- Uma lista fechada dos sinais que a IA deve extrair

**O que você recebe**

- Uma base de interações por cliente com texto limpo
- Transcrições em janelas citáveis, com timecode e link
- Sinais extraídos por IA, cada um com o trecho literal
- Um agente de IA que prepara o resumo antes da reunião

## Detalhado

### O problema

O que o cliente disse sobre cancelar, preço ou bug fica espalhado em transcrições, e-mails do CRM e chats, e ninguém lê tudo antes da reunião. Quando a base é montada para a IA, cada resposta de e-mail traz a conversa inteira citada e infla os sinais, a transcrição está num campo diferente do esperado, a mesma call aparece ligada a três empresas e o agente responde a partir do resumo de outra ferramenta, não do que foi dito.

### Regras de negócio

1. **Um grão legível, com cliente e canal.** Consolide todas as interações textuais num formato único: cliente canônico, data e hora, canal (call, e-mail, nota, ticket, WhatsApp), direção (cliente ou time), autor e texto completo. Inclua quem já foi cliente, inclusive quem cancelou: é deles que vêm os exemplos de sinal de saída para calibrar. (Evite: Uma tabela por ferramenta, cada uma com sua chave de cliente.)
2. **Só o texto novo de cada mensagem.** Em e-mail, cada resposta carrega o histórico citado. Corte nos marcadores ('De: ... Enviada em:', 'Em ... escreveu:', linhas iniciadas por '>') antes de mandar para a IA. Numa base real, 85,5% do texto de e-mail era histórico repetido, e a IA reencontrava as mesmas falas a cada resposta: os sinais de churn saíam cerca de 2,7 vezes inflados. (Evite: Mandar o corpo inteiro do e-mail para a IA.)
3. **A fonte é a transcrição completa, nunca o resumo.** O resumo gerado pelo gravador de reuniões é uma interpretação de terceiros, com perdas. Não use para responder, para escolher quais calls ler nem para preencher lacunas. Call sem transcrição é declarada como sem transcrição. (Evite: Responder a partir do resumo automático da ferramenta de gravação.)
4. **Transcrição em janelas de 60 segundos.** As falas vêm curtas demais para dar contexto (mediana de cerca de 50 caracteres numa base real). Junte falas consecutivas em janelas de 60 segundos, com a chave call e número da janela, mantendo o timecode de cada fala. Ler as janelas em ordem reconstrói a call inteira. A citação traz título da call, data, timecode e link da gravação. (Evite: Indexar fala por fala, ou a call inteira num bloco só.)
5. **Call de verdade, contada uma vez.** Placeholders de agenda e calls sem duração mínima ou sem transcrição saem das contagens de contato. Uma call se liga a várias empresas (a hierarquia de empresas do CRM liga a mesma call à matriz e às filiais), então conte call_id distinto ao cruzar com empresa. (Evite: Contar linhas da ligação call x empresa como calls.)
6. **Leia o campo onde o time escreve.** No HubSpot, a transcrição colada pelo time costumava estar em hs_meeting_body, e hs_internal_meeting_notes vinha sempre vazio. Confira com dado real qual campo tem o texto antes de montar a base. A API de busca do HubSpot para em 10 mil resultados e corta notas: use o stream completo do conector. (Evite: Supor que as notas da reunião estão no campo de notas internas.)
7. **Saída estruturada, com lista fechada e citação.** A IA devolve campos fixos: resumo, sentimento, sinais de risco de churn, sinais de expansão, dores, feedback de produto, concorrentes citados e próximos passos. Cada sinal traz o trecho literal e o id da interação. Num pedido de cancelamento ou redução, separe saída de ajuste de tamanho; na dúvida, o padrão seguro para retenção é tratar como saída. (Evite: Pedir à IA um parágrafo livre sobre a conversa.)
8. **Custo controlado: só o que é novo.** Processe para frente, item a item: uma interação entra na rodada se nunca foi lida ou se mudou desde a última leitura, com marca d'água por item, não global. Use janela fixa (por exemplo, últimos 15 dias), processamento em lote e teto por rodada. Histórico antigo é classificado uma vez, fora da rotina, e o dado novo sempre vence. (Evite: Reclassificar todas as conversas a cada execução.)
9. **Contato real é conversa, não atividade.** Último contato significativo é a última call válida ou a última mensagem trocada com o cliente no canal preferido dele. Tarefa criada, e-mail automático e mudança de campo no CRM não contam. (Evite: Usar a data da última atividade do CRM como último contato.)
10. **Dado sensível sai antes do modelo.** Mascare e-mail, telefone, CPF e CNPJ antes de mandar texto a um modelo externo ou a uma ferramenta de voz do cliente. Mantenha a base de texto numa camada com permissão própria para o MCP, separada de valores de contrato. (Evite: Enviar o texto bruto com dados pessoais.)

### O que a IA extrai de cada conversa

Campos fixos, cada item com o trecho literal e o id da interação.

- **Fala sobre sair, reduzir, trocar de ferramenta** → Risco de churn (`churn_risk_signals`)
- **Novo time, nova unidade, módulo pedido** → Sinal de expansão (`expansion_signals`)
- **Problema de negócio do cliente** → Dores (`pain_points`)
- **Bug, pedido de funcionalidade** → Feedback de produto (`product_feedback`)
- **Ferramenta concorrente citada** → Concorrentes (`competitors`)
- **Compromissos e pendências** → Próximos passos (`action_items`)
- **Pedido de cancelamento ou redução** → Saída ou ajuste de tamanho (`leaving | rightsizing`)
- **Tom geral do cliente** → Sentimento (`positivo | neutro | negativo`)

### Definições

| Métrica | Definição |
|---|---|
| Interação | uma mensagem, nota, e-mail (só o texto novo), ticket ou call com transcrição, ligada a um cliente canônico |
| Call válida | call com transcrição e duração mínima declarada, contada por call_id distinto |
| Janela de transcrição | falas consecutivas de uma call dentro de 60 segundos, com o timecode de cada fala |
| Sinal | item de uma lista fechada extraído por IA, com trecho literal e id da interação |
| Clientes com sinal de risco | clientes ativos distintos com ao menos um sinal de risco nos últimos N dias / clientes ativos |
| Último contato real | data da última call válida ou mensagem trocada com o cliente |
| Cobertura de transcrição | calls válidas com transcrição / calls válidas no período |

### Armadilhas

- **Sinais quase triplicados.** Com o histórico citado dos e-mails, a IA reencontrava as mesmas falas a cada resposta e os sinais de churn saíram cerca de 2,7 vezes inflados. Como evitar: Corte o histórico citado antes da IA.
- **Notas sempre vazias.** A base lia o campo de notas internas da reunião, que vinha sempre vazio; a transcrição estava no corpo da reunião. Como evitar: Confira o campo com dado real antes de publicar a base.
- **Agente lendo o resumo de terceiros.** O agente respondia pelo resumo automático da ferramenta de gravação e perdia objeções que só apareciam na transcrição. Como evitar: Proíba o resumo no context document e use só a transcrição.
- **Uma call, três empresas.** Pela hierarquia de empresas do CRM, cada call aparecia ligada a cerca de três empresas e o volume de contato triplicava. Como evitar: Conte call_id distinto.
- **Vendedor errado na call.** O dono da reunião no CRM não era quem tinha conduzido a conversa, e a análise por vendedor ficava errada. Como evitar: Quando o dono não é confiável, identifique o participante do time pela transcrição.
- **Saldo de API consumido.** Reprocessar todas as calls a cada execução consumia o saldo de API em poucos dias. Como evitar: Janela fixa, lote e marca d'água por item.

Validado em dados reais: Nas reuniões gravadas da própria Nekt, a fala mediana tem 85 caracteres, cerca de 6 segundos, e 1 em cada 3 falas tem menos de 40 caracteres. Sozinhas, elas não sustentam uma citação; em janelas de 60 segundos, sim.

### Teste de aceitação

- [ ] Numa amostra de 50 e-mails, nenhuma interação traz texto citado de mensagem anterior.
- [ ] A contagem de calls por cliente usa call_id distinto e bate com o gravador de reuniões.
- [ ] Todo sinal extraído tem um trecho literal que existe no texto da interação.
- [ ] Rodar a rotina sem interação nova não chama o modelo nenhuma vez.
- [ ] Para 10 calls, ler as janelas em ordem reconstrói a transcrição completa.

### Context document

```text
Conversas com clientes
- A fonte de conteúdo de calls é a transcrição completa em janelas de 60 segundos. Nunca use o resumo automático do gravador: nem para responder, nem para escolher calls, nem para preencher lacuna. Call sem transcrição: diga que não há transcrição.
- Toda afirmação sobre o que o cliente disse vem com citação: título da call ou assunto do e-mail, data, timecode quando houver e link.
- E-mails estão só com o texto novo de cada mensagem; o histórico citado foi removido.
- Conte calls por call_id distinto; uma call pode estar ligada a várias empresas do mesmo grupo.
- Calls curtas ou sem transcrição não contam como contato.
- Sinais de risco, expansão, dores, feedback, concorrentes e próximos passos vêm da tabela de sinais, cada um com trecho literal. Não invente sinal sem trecho.
- Pedido de cancelamento ou redução: leaving = saída, rightsizing = ajuste de tamanho. Na dúvida, trate como saída.
- Último contato real = última call válida ou mensagem trocada, não a última atividade do CRM.
Exceções por cliente:
- <cliente>: a transcrição colada pelo time está no campo <campo>.
- <cliente>: o canal preferido é WhatsApp; o grupo do cliente é ligado pelo nome normalizado do grupo.
```

### Variações

- **Qualificação a partir de notas:** Extração de critérios de qualificação (como MEDDPICC) das notas de vendas registradas no CRM.
- **Atendimento por WhatsApp:** Grupos por cliente ligados pelo nome normalizado do grupo ou pelos últimos 8 dígitos do telefone.
- **Exportação para ferramenta de voz do cliente:** Texto anonimizado (e-mail, telefone e documento mascarados) enviado a uma ferramenta externa de análise.
