Visão Geral
O Contexto Dinâmico permite que você busque dados de clientes de suas APIs externas uma vez, antes de cada conversa começar. Em vez de depender apenas de registros de contato, seus agentes podem acessar status de conta, histórico de pedidos, tickets de suporte e contexto de negócios do seu CRM, bancos de dados e sistemas backend.O Contexto Dinâmico é configurado em Configurações do Agente → Operações → Contexto Dinâmico. Os dados JSON retornados estão disponíveis diretamente como variáveis (ex:
{{ field_name }}) na saudação e instruções do seu agente.A API de contexto é chamada uma vez antes da conversa começar. Os dados estão disponíveis para renderizar a saudação e durante toda a conversa. Eles não são atualizados durante a conversa. Mantenha seu endpoint rápido (<1s tempo de resposta) e retorne apenas dados necessários para a conversa.
- Endpoint HTTPS
- Resposta JSON sob 32 KB
- Tempo de resposta sob 1 segundo (idealmente)
- Autenticação via token Bearer, chave API ou autenticação básica
Como Funciona
Fluxo de Requisição:Chamadas de entrada
direction: "inbound" com contact_number do chamador. Busque dados de cliente no seu CRM.Chamadas de saída
direction: "outbound" com contact_number que você está ligando. Busque contexto de campanha.Widget web
medium: "web" com external_id opcional. Identifique usuário em seu sistema.Configuração
Navegar para Contexto Dinâmico
- Abra suas configurações de agente
- Clique no grupo de navegação Operações (na barra lateral esquerda)
- Selecione Contexto Dinâmico das seções
Configurar Endpoint
URL do Endpoint:
https://api.company.com/contextAutenticação: Escolha Token Bearer, Básica, Chave API ou NenhumaA requisição incluirá: agent_uuid, direction, agent_number, contact_number (e external_id para widget web)Formato de Requisição e Resposta
O Que Enviamos (Requisição POST)
agent_uuid(string, sempre incluído) - O UUID do agente tratando a chamadadirection(string, sempre incluído) - “inbound” ou “outbound”agent_number(string, opcional) - O número de telefone que o agente está usandocontact_number(string, opcional) - O número de telefone do clienteexternal_id(string/int, opcional) - Apenas para chamadas de widget web, se fornecido pela sua integração
X-Agent-UUID,X-Agent-Number,X-Contact-Number,X-Direction,X-Medium(phone/web)X-Room-SID- Identificador único para esta sessão de conversaX-External-ID- Apenas para chamadas de widget web
Uso típico: Seu endpoint usa
contact_number ou external_id para buscar o cliente no seu CRM/banco de dados, então retorna dados relevantes de conta, histórico de pedidos, tickets, etc. O agent_uuid pode ser usado para personalizar respostas por agente se necessário.O Que Você Retorna (Resposta JSON)
- Formato JSON válido
- Sob 32 KB
- Retornar apenas campos necessários (mantém resposta rápida)
- Lidar com dados ausentes graciosamente (retornar
nullou omitir campos)
Como variáveis são acessadas: Todas as chaves de nível superior em sua resposta JSON se tornam variáveis de template. Se você retornar
{"account": {"tier": "VIP"}}, você acessa como {{ account.tier }}, não {{ context.account.tier }}.Usando Variáveis de Contexto
Todos os dados retornados da sua API estão disponíveis diretamente como variáveis de nível superior na saudação e instruções do seu agente. Acessando campos:Autenticação
Token Bearer (Recomendado)
Chave API (Cabeçalho)
Autenticação Básica
Nenhuma
Sem autenticação (apenas para redes internas/privadas).Exemplo de Caso de Uso
Suporte ao Cliente com Contexto Completo Cenário: Agente de suporte precisa de visão completa do cliente antes da conversa começar. Sua API retorna:Melhores Práticas
Mantenha respostas rápidas
Mantenha respostas rápidas
- Alvo sob 1 segundo de tempo de resposta
- Cache dados frequentemente acessados (TTL de 5-10 minutos)
- Retorne apenas campos que você usará nas instruções
- Use índices de banco de dados em campos de busca (contact_number, external_id, ou seus IDs internos de cliente)
Lide com dados ausentes graciosamente
Lide com dados ausentes graciosamente
- Use filtros
| default("value")nas instruções - Retorne
nullpara campos ausentes (não erro) - Teste com contatos que têm dados mínimos
Proteja dados sensíveis
Proteja dados sensíveis
- Não retorne CPF, cartões de crédito, senhas
- Use apenas HTTPS
- Implemente autenticação (token Bearer recomendado)
- Retorne apenas campos necessários (ex: últimos 4 do número de conta, não completo)
- Registre acessos para trilhas de auditoria
Teste antes da produção
Teste antes da produção
- Use modal Test Request com dados reais de cliente
- Teste casos extremos (cliente novo, VIP, conta suspensa)
- Verifique que instruções lidam com campos ausentes graciosamente
- Piloto com pequena porcentagem de tráfego antes de implementação completa
Solução de Problemas
401 Unauthorized
401 Unauthorized
Variáveis de contexto vazias
Variáveis de contexto vazias
- Usar Test Request para verificar se endpoint está respondendo
- Verificar se estrutura JSON corresponde ao que você está acessando
- Verificar se alternância de Contexto Dinâmico está LIGADA
- Usar
| default("fallback")para campos ausentes
Lento ou timeout
Lento ou timeout
- Adicionar índices de banco de dados
- Implementar cache
- Retornar apenas campos necessários
- Otimizar consultas de banco de dados
- Verificar latência de rede para sua API
Dados errados retornados
Dados errados retornados
- Verificar parâmetros no modal Test Request
- Verificar se variáveis de template resolvem corretamente:
{{ account.tier }} - Garantir que chaves de cache incluam identificador de cliente
- Testar com cliente conhecido para confirmar que dados correspondem
Próximos Passos
Saudação
Use variáveis de contexto para personalizar a saudação do seu agente
Instruções
Aprenda como usar variáveis de contexto com template Jinja
Variáveis e Conteúdo Dinâmico
Domine sintaxe de template para prompts dinâmicos
Ações de API Personalizadas
Crie ações que usam dados de contexto durante conversas