fix(n8n): para de prometer suporte a foto no prompt (imagem nao chega, hoje)

Investigacao exaustiva no ChatFlow do Z-PRO (seletor de variaveis, passo
n8n, passo Midia, tipo de variavel na captura) confirma que nao ha, hoje,
nenhum mecanismo pra repassar imagem recebida pro webhook. O agente agora
pede pro cliente digitar os exames em vez de pedir foto -- workflow funciona
100% via texto; imagem fica documentada como limitacao em aberto na spec.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Eric
2026-08-21 10:07:27 -03:00
co-authored by Claude Sonnet 5
parent 95687b19ae
commit c1aa7b7978
2 changed files with 37 additions and 8 deletions
@@ -253,14 +253,43 @@ memória de sessão agora usa o node nativo **Simple Memory**
(`orcamento-<protocolo ou telefone>`) para isolar as conversas de orçamento
das de agendamento.
### Descoberta 4: ChatFlow do Z-PRO não tem nenhum caminho pra imagem (confirmado)
Investigação exaustiva, todas as vias fechadas:
- **Seletor de variáveis** do passo "Webhook Avançado": só campos de
contato/sessão (Nome, Saudação, Protocolo, Email, Telefone, Kanban,
Atendente, Email do atendente, Primeiro/Sobrenome, Empresa) — nenhuma
variável de mídia.
- **Consulta à API do Z-PRO** (`showticketchatbot`, buscando o ticket pelo
número) — tentativa abandonada: no teste real, retornou um ticket
**fechado, de mais de um mês atrás**, sobre um assunto não relacionado.
Essa API não busca de forma confiável "a conversa/mensagem atual".
- **Passo "n8n"** (interação alternativa ao "Webhook"): mesma lista de
variáveis de contato/sessão, sem corpo customizável — não ajuda.
- **Passo "Mídia"**: é o oposto do que se imaginava — serve pra o *bot*
enviar um arquivo *pro* cliente (seleciona arquivo + legenda), não pra
capturar o que o cliente manda.
- **"Tipo da variável"** na captura de resposta (seção "Variável (opcional)"
dos passos "Mensagem"/"n8n"): só permite capturar texto livre — sem opção
de mídia/arquivo.
**Conclusão:** o construtor de ChatFlow do Z-PRO, na versão em uso, não tem
nenhum mecanismo para repassar uma imagem recebida do cliente para um
webhook externo. Não é uma configuração faltando — é uma limitação da
ferramenta nesse ponto. Corrigido o prompt do `AI Agent` pra não prometer
mais "mande uma foto" ao cliente (antes disso ele pedia foto mesmo sem
nunca conseguir processar nenhuma).
### Ainda em aberto
Não há, até agora, nenhuma variável de mídia/imagem confirmada no seletor de
variáveis do ChatFlow do Z-PRO (o Body de `Menu Agendamento` só tem campos de
texto). Falta o usuário verificar, ao editar o Body do passo "Webhook
Avançado", se existe alguma variável de imagem/anexo no seletor (ícone "×")
— se existir, incluir no Body (ex.: `"mediaUrl": "{{variavel}}"`) e informar
o nome exato pra ajustar o node "Extrair campos do webhook".
Falta o usuário confirmar se existe, fora do construtor de ChatFlow (em
Configurações/Integrações do canal ou da empresa), um webhook de propósito
geral que dispare para toda mensagem recebida no canal — mecanismo
diferente do "Webhook Avançado" dentro de um ChatFlow. Se não existir,
verificar com o suporte do Z-PRO se há algum outro caminho suportado pela
plataforma. Até lá, o workflow funciona **somente com texto** — o cliente
digita os nomes dos exames, e a IA monta o orçamento normalmente.
## Fora de escopo (por enquanto)
+2 -2
View File
@@ -158,9 +158,9 @@
{
"parameters": {
"promptType": "define",
"text": "={{ $('Extrair campos do webhook').item.json.entrada || 'O cliente enviou uma imagem (sem texto). Veja a imagem anexada, que é o pedido médico dele.' }}",
"text": "={{ $('Extrair campos do webhook').item.json.entrada || 'O cliente mandou algo que não chegou como texto (provavelmente uma foto ou áudio, que ainda não conseguimos processar). Peça pra ele digitar os nomes dos exames.' }}",
"options": {
"systemMessage": "Você é o assistente de orçamentos de exames de uma clínica, atendendo automaticamente pelo WhatsApp, numa conversa com várias mensagens (não só uma).\n\nTABELA DE EXAMES E VALORES (lista de exemplo — será substituída pela lista real depois):\n- Hemograma completo — R$ 35,00\n- Glicemia de jejum — R$ 20,00\n- Colesterol total e frações — R$ 45,00\n- Triglicérideos — R$ 25,00\n- TSH (hormônio tireoidiano) — R$ 40,00\n- Exame de urina (EAS) — R$ 30,00\n- Ultrassonografia abdominal — R$ 150,00\n- Raio-X de tórax — R$ 90,00\n- Eletrocardiograma (ECG) — R$ 80,00\n- Papanicolau — R$ 60,00\n\nCOMO CONVERSAR:\n1. O cliente pode mandar uma foto do pedido médico (com ou sem legenda), digitar os nomes dos exames, ou fazer as duas coisas em mensagens separadas, em qualquer ordem — use também o histórico da conversa (mensagens anteriores) pra juntar as informações, não só a mensagem atual. Uma imagem anexada a esta mensagem (quando houver) é o pedido médico do cliente.\n2. Se o cliente ainda não mandou, nem agora nem antes nesta conversa, nenhuma foto de pedido nem nomes de exames, NÃO invente orçamento — cumprimente rapidamente e peça pra ele mandar a foto do pedido médico ou digitar os nomes dos exames.\n3. Assim que tiver pelo menos um exame identificável (considerando a imagem atual, o texto atual E o histórico da conversa), identifique cada exame pedido.\n4. Para cada exame identificado que corresponde (mesmo com sinônimo, abreviação comum ou pequena diferença de grafia) a um item da tabela acima, inclua na resposta o nome do exame e o valor.\n5. Para exames identificados que NÃO correspondem a nenhum item da tabela, ou que você não conseguiu ler/entender com confiança, liste-os separadamente avisando que um atendente vai confirmar o valor.\n6. Nunca deixe de orçar por causa de um item não reconhecido — sempre orçe o que for possível reconhecer.\n7. Calcule e mostre o valor total somando apenas os itens com preço confirmado na tabela.\n8. Responda sempre em português, tom cordial e objetivo, formatado para WhatsApp: texto simples, sem markdown (nada de ** ou #), pode usar emojis com moderação e quebras de linha para organizar.\n9. Sua resposta deve conter SOMENTE o texto a ser enviado ao cliente nesta mensagem — nada de comentários extras, explicações do seu raciocínio, ou texto fora da conversa com o cliente.",
"systemMessage": "Você é o assistente de orçamentos de exames de uma clínica, atendendo automaticamente pelo WhatsApp, numa conversa com várias mensagens (não só uma).\n\nIMPORTANTE (limitação técnica atual): você NUNCA recebe fotos/imagens nesta conversa, mesmo que o cliente mande uma — só texto chega até você. Por isso, NUNCA peça pro cliente mandar foto ou imagem do pedido. Se o cliente mandar uma foto (você vai perceber isso porque a mensagem dele chega vazia, sem texto), peça educadamente pra ele DIGITAR os nomes dos exames que estão no pedido médico, sem mencionar foto.\n\nTABELA DE EXAMES E VALORES (lista de exemplo — será substituída pela lista real depois):\n- Hemograma completo — R$ 35,00\n- Glicemia de jejum — R$ 20,00\n- Colesterol total e frações — R$ 45,00\n- Triglicérideos — R$ 25,00\n- TSH (hormônio tireoidiano) — R$ 40,00\n- Exame de urina (EAS) — R$ 30,00\n- Ultrassonografia abdominal — R$ 150,00\n- Raio-X de tórax — R$ 90,00\n- Eletrocardiograma (ECG) — R$ 80,00\n- Papanicolau — R$ 60,00\n\nCOMO CONVERSAR:\n1. O cliente pode digitar os nomes dos exames de uma vez ou aos poucos, em mensagens separadas — use também o histórico da conversa (mensagens anteriores) pra juntar as informações, não só a mensagem atual.\n2. Se o cliente ainda não digitou, nem agora nem antes nesta conversa, nenhum nome de exame reconhecível, NÃO invente orçamento — cumprimente rapidamente e peça pra ele digitar os nomes dos exames conforme o pedido médico.\n3. Assim que tiver pelo menos um exame identificável (considerando o texto atual E o histórico da conversa), identifique cada exame pedido.\n4. Para cada exame identificado que corresponde (mesmo com sinônimo, abreviação comum ou pequena diferença de grafia) a um item da tabela acima, inclua na resposta o nome do exame e o valor.\n5. Para exames identificados que NÃO correspondem a nenhum item da tabela, ou que você não conseguiu entender com confiança, liste-os separadamente avisando que um atendente vai confirmar o valor.\n6. Nunca deixe de orçar por causa de um item não reconhecido — sempre orçe o que for possível reconhecer.\n7. Calcule e mostre o valor total somando apenas os itens com preço confirmado na tabela.\n8. Responda sempre em português, tom cordial e objetivo, formatado para WhatsApp: texto simples, sem markdown (nada de ** ou #), pode usar emojis com moderação e quebras de linha para organizar.\n9. Sua resposta deve conter SOMENTE o texto a ser enviado ao cliente nesta mensagem — nada de comentários extras, explicações do seu raciocínio, ou texto fora da conversa com o cliente.",
"passthroughBinaryImages": true
}
},