EvolutionAPI / evolution-api

Evolution API is an open-source WhatsApp integration API
https://evolution-api.com
Other
1.94k stars 1.08k forks source link

Dados Incompletos no Endpoint /chat/findMessages/ #975

Open admdanielspalma opened 1 month ago

admdanielspalma commented 1 month ago

Welcome!

What did you do?

Estou enfrentando um problema ao utilizar o endpoint /chat/findMessages/ da Evolution API. Quando uma mensagem é recebida via webhook com informações completas, incluindo dados de anúncios (como ctwaClid, showAdAttribution, e outros metadados importantes), esses dados não estão sendo retornados corretamente ao fazer a requisição no endpoint para recuperação de mensagens.

Detalhes: Via Webhook: Os dados relacionados à origem do anúncio (ex: ctwaClid, showAdAttribution) estão presentes e completos. Via Endpoint /chat/findMessages/: Ao buscar a mesma mensagem usando o endpoint, esses dados de anúncios não estão retornando. Somente a conversa e informações básicas são recuperadas.

Impacto: A ausência desses dados torna impossível vincular a mensagem ao anúncio que originou o contato, prejudicando o rastreamento e análise das conversões geradas pelas campanhas.

What did you expect?

Gostaria de receber os dados da mesma forma que recebo via Webhook:

{
  "event": "messages.upsert",
  "instance": "ExampleInstance",
  "data": {
    "key": {
      "remoteJid": "552199999999@s.whatsapp.net",
      "fromMe": false,
      "id": "3A614233A0EE36DA7EF6"
    },
    "pushName": "João Silva",
    "message": {
      "messageContextInfo": {
        "deviceListMetadata": {
          "senderTimestamp": "1728481958",
          "recipientKeyHash": "pIEq27Wh/BgJcg==",
          "recipientTimestamp": "1728599783"
        },
        "deviceListMetadataVersion": 2
      },
      "conversation": "Gostaria de falar sobre o anúncio.",
      "contextInfo": {
        "conversionSource": "FB_Ads",
        "conversionData": "SampleConversionData",
        "conversionDelaySeconds": 5,
        "externalAdReply": {
          "title": "Produto XYZ - Oferta Especial",
          "body": "Adquira o Produto XYZ com desconto!",
          "mediaType": "IMAGE",
          "thumbnailUrl": "https://example.com/thumbnail.jpg",
          "sourceType": "ad",
          "sourceId": "120211880191370001",
          "sourceUrl": "https://fb.me/ExampleAd",
          "containsAutoReply": false,
          "renderLargerThumbnail": true,
          "showAdAttribution": true,
          "ctwaClid": "ARAqRXKQJGFfJebjbmiVh5h6JLa19yYeKT0QMowqG40qCNppO-qMYJC3WHZBNaQfy980X_8eTT-zDQS2Hy2X5Akd0YQ_d8QUgBiiZN1wzUX4gUS77wlq1Kw5JLISWYuKEGTt_qiLsg"
        },
        "entryPointConversionSource": "ctwa_ad",
        "entryPointConversionApp": "facebook",
        "entryPointConversionDelaySeconds": 300
      }
    },
    "messageType": "conversation",
    "messageTimestamp": 1728656012,
    "instanceId": "example-instance-id",
    "source": "android"
  },
  "destination": "https://webhook.example.com",
  "date_time": "2024-10-11T11:13:33.566Z",
  "sender": "552199999999@s.whatsapp.net",
  "server_url": "https://api.example.com",
  "apikey": "example-api-key"
}

What did you observe instead of what you expected?

Exemplo de Retorno do Endpoint /chat/findMessages/ :

{
  "messages": {
    "total": 1,
    "pages": 1,
    "currentPage": 1,
    "records": [
      {
        "id": "cm24t5omo2n0dfezckgbsckvq",
        "key": {
          "id": "3A614233A0EE36DA7EF6",
          "fromMe": false,
          "remoteJid": "552199999999@s.whatsapp.net"
        },
        "pushName": "João Silva",
        "messageType": "conversation",
        "message": {
          "conversation": "Gostaria de falar sobre o anúncio.",
          "messageContextInfo": {
            "deviceListMetadata": {
              "senderTimestamp": "1728481958",
              "recipientKeyHash": "pIEq27Wh/BgJcg==",
              "recipientTimestamp": "1728599783"
            },
            "deviceListMetadataVersion": 2
          }
        },
        "messageTimestamp": 1728656012,
        "instanceId": "example-instance-id",
        "source": "android",
        "MessageUpdate": []
      }
    ]
  }
}

Como pode ser observado, os dados de conversão (ctwaClid, showAdAttribution, etc.) estão ausentes no retorno do endpoint.

Screenshots/Videos

No response

Which version of the API are you using?

2.1.2

What is your environment?

Linux

Other environment specifications

Ubuntu Server - Docker Install

If applicable, paste the log output

No response

Additional Notes

No response

admdanielspalma commented 1 month ago

Obs: sim, estou comparando a exata mesma mensagem via webhook recebido e via endpoint

O problema se apresenta quando precisamos receber mensagens que são respostas a anúncios e possuem contextInfo, que por sua vez contém externalAdReply, ctwaclid, etc... que é diferente de messageContextInfo só.

E argumentando por que eu considero um bug:

Se fosse uma mensagem com imagem, e viesse só o texto sem a menção da imagem, seria um bug? Acho que sim, pq estaria incompleto.

Da mesma forma, quando a mensagem chega com a tagzinha aquela "enviado via anúncio" e a API não pega isso, tá pegando de forma incompleta.

Se via webhook normal não chegasse essa info eu até entenderia como fazendo parte da funcionalidade esperada... mas se no webhook vem, ao meu ver, pela endpoint tinha que vir a mesma info.

Mt obrigado.

viniciustrndd commented 4 weeks ago

Que versão da Evolution API você usa para receber o webhook com o id da campanha e o ctwa_id?

admdanielspalma commented 4 weeks ago

@viniciustrndd 2.1.x ... pra ti não aparece? Pode ser devido à falta de vínculo da página ao conjunto de anúncios (pixel). Não tenho certeza mas acho que pra receber tem que estar vinculado.

admdanielspalma commented 3 weeks ago

Um complemento importante é o seguinte, @dpaes :

A informação (o ctwa_clid) está lá. A prova é que se eu encaminhar a mensagem, na mensagem encaminhada ele aparece no webhook em tempo real.

Porém, ao tentar recuperar de outra forma, pelo endpoint /chat/findMessages/ no caso, ele não retorna.

Assim, apesar da informação estar lá e fazer parte da mensagem, ela se torna inacessível a menos que a mensagem seja encaminhada.

ctn24 commented 3 weeks ago

Hi, could you help me figure out, how to get the response of a Poll sent? The info is not fetched using /chat/findMessages/

admdanielspalma commented 3 weeks ago

@ctn24 I created the feature request #1008 , check there.

admdanielspalma commented 9 hours ago

Up?