fix(n8n): usa canal/API dedicados deste projeto para o envio (nao mais compartilhado)
O envio estava saindo pelo canal do bot de agendamento (sub-workflow
enviar_texto, projeto diferente) -- por isso recebia num numero e
respondia por outro. Cria credencial httpHeaderAuth propria ('ZPRO API
Token - Orcamento de Exames') e troca o envio para uma chamada HTTP direta
dentro deste workflow, isolada do projeto de agendamento.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -330,14 +330,42 @@ em vez de `image`. O workflow foi reconstruído em cima desse webhook:
|
|||||||
- O prompt do `AI Agent` voltou a aceitar/pedir foto normalmente, já que a
|
- O prompt do `AI Agent` voltou a aceitar/pedir foto normalmente, já que a
|
||||||
imagem agora chega de verdade.
|
imagem agora chega de verdade.
|
||||||
|
|
||||||
|
### Teste ponta-a-ponta validado
|
||||||
|
|
||||||
|
Com uma imagem real de teste, o fluxo completo funcionou: download
|
||||||
|
autenticado da mídia (44.9 kB, jpg) → IA de visão leu a imagem e
|
||||||
|
identificou 2 exames da tabela + 1 fora da tabela (avisando que precisa de
|
||||||
|
confirmação) → resposta enviada com sucesso pelo Z-PRO. Texto puro também
|
||||||
|
validado (cliente manda "oi" → IA pede pra digitar/mandar os exames).
|
||||||
|
|
||||||
|
### Descoberta 6: canal/API errados no envio (corrigido)
|
||||||
|
|
||||||
|
O envio estava reaproveitando o sub-workflow `enviar_texto`
|
||||||
|
(`Y4ndG7GuIUrmVRxV`), que pertence a **outro projeto** (bot de agendamento)
|
||||||
|
e usa um ApiID/canal diferente — por isso as respostas saíam por um número
|
||||||
|
errado (recebendo num número, respondendo por outro). O usuário criou um
|
||||||
|
ApiID e token dedicados a este projeto. Correção aplicada:
|
||||||
|
|
||||||
|
- Nova credencial `httpHeaderAuth` **"ZPRO API Token - Orçamento de
|
||||||
|
Exames"** (nome deliberadamente diferente de "ZPRO API Token - Canal QR -
|
||||||
|
MC AGENDAMENTO", pra não confundir entre projetos), header `Authorization:
|
||||||
|
Bearer <token>`.
|
||||||
|
- O envio deixou de chamar o sub-workflow compartilhado — agora é uma
|
||||||
|
chamada HTTP direta (`POST`) dentro deste próprio workflow, isolada,
|
||||||
|
usando a URL `https://apigchat.gtigrupo.com.br/v2/api/external/<ApiID
|
||||||
|
deste projeto>/` e a credencial acima.
|
||||||
|
- Isso mantém este projeto completamente independente do de agendamento —
|
||||||
|
nenhum node ou credencial é compartilhado entre os dois.
|
||||||
|
|
||||||
### Ainda em aberto
|
### Ainda em aberto
|
||||||
|
|
||||||
- Confirmar, depois de remover os passos antigos do ChatFlow, que não há
|
- Remover as interações antigas "Webhook Avançado"/"Mensagem" dos passos
|
||||||
mais resposta duplicada.
|
`Menu Orçamento`/`Menu Orçamento 2` no ChatFlow (apontavam pro endpoint
|
||||||
- Validar ponta a ponta com uma foto real de pedido de exames (a extração
|
antigo, que não existe mais no n8n — não causam mais duplicidade, mas
|
||||||
do `imagemUrl`/`mediaToken` foi validada com uma imagem de teste, mas o
|
ficam como chamada morta até serem removidas).
|
||||||
fluxo completo — download autenticado + IA de visão — ainda não foi
|
- Confirmar que o número de envio agora bate com o número que recebe.
|
||||||
testado de ponta a ponta após esta reconstrução).
|
- Trocar a tabela de exames de exemplo pela lista real, direto no `system
|
||||||
|
message` do node `AI Agent - Orçamento`.
|
||||||
|
|
||||||
## Fora de escopo (por enquanto)
|
## Fora de escopo (por enquanto)
|
||||||
|
|
||||||
|
|||||||
@@ -246,72 +246,34 @@
|
|||||||
"name": "Simple Memory"
|
"name": "Simple Memory"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "enviar-orcamento-zpro",
|
"id": "enviar-orcamento-zpro-http",
|
||||||
"name": "Enviar orçamento (Z-PRO)",
|
"name": "Enviar orçamento (Z-PRO)",
|
||||||
"type": "n8n-nodes-base.executeWorkflow",
|
"type": "n8n-nodes-base.httpRequest",
|
||||||
"typeVersion": 1.3,
|
"typeVersion": 4.4,
|
||||||
"position": [
|
"position": [
|
||||||
900,
|
900,
|
||||||
-128
|
-128
|
||||||
],
|
],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"workflowId": {
|
"method": "POST",
|
||||||
"__rl": true,
|
"url": "https://apigchat.gtigrupo.com.br/v2/api/external/fc30a773-0089-43b9-8b05-a5d92c48eb9b/",
|
||||||
"mode": "id",
|
"authentication": "genericCredentialType",
|
||||||
"value": "Y4ndG7GuIUrmVRxV",
|
"genericAuthType": "httpHeaderAuth",
|
||||||
"cachedResultName": "MCP Server - Mensageria ZPRO - enviar_texto"
|
"sendBody": true,
|
||||||
},
|
"contentType": "json",
|
||||||
"workflowInputs": {
|
"specifyBody": "json",
|
||||||
"mappingMode": "defineBelow",
|
"jsonBody": "={{ JSON.stringify({ body: $json.body, number: $json.number, externalKey: $json.externalKey, isClosed: $json.isClosed }) }}",
|
||||||
"value": {
|
"options": {
|
||||||
"number": "={{ $json.number }}",
|
"timeout": 15000
|
||||||
"body": "={{ $json.body }}",
|
|
||||||
"externalKey": "={{ $json.externalKey }}",
|
|
||||||
"isClosed": "={{ $json.isClosed }}"
|
|
||||||
},
|
|
||||||
"matchingColumns": [],
|
|
||||||
"schema": [
|
|
||||||
{
|
|
||||||
"id": "number",
|
|
||||||
"displayName": "number",
|
|
||||||
"required": false,
|
|
||||||
"defaultMatch": false,
|
|
||||||
"display": true,
|
|
||||||
"canBeUsedToMatch": true,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "body",
|
|
||||||
"displayName": "body",
|
|
||||||
"required": false,
|
|
||||||
"defaultMatch": false,
|
|
||||||
"display": true,
|
|
||||||
"canBeUsedToMatch": true,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "externalKey",
|
|
||||||
"displayName": "externalKey",
|
|
||||||
"required": false,
|
|
||||||
"defaultMatch": false,
|
|
||||||
"display": true,
|
|
||||||
"canBeUsedToMatch": true,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "isClosed",
|
|
||||||
"displayName": "isClosed",
|
|
||||||
"required": false,
|
|
||||||
"defaultMatch": false,
|
|
||||||
"display": true,
|
|
||||||
"canBeUsedToMatch": true,
|
|
||||||
"type": "boolean"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"attemptToConvertTypes": false,
|
|
||||||
"convertFieldsToString": false
|
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"credentials": {
|
||||||
|
"httpHeaderAuth": {
|
||||||
|
"id": "6IxSBH9y4fXsIoyA",
|
||||||
|
"name": "ZPRO API Token - Orçamento de Exames"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onError": "continueErrorOutput"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"connections": {
|
"connections": {
|
||||||
|
|||||||
Reference in New Issue
Block a user