Skip to content

Eventos Suportados ​

A plataforma MeChat dispara webhooks para os principais eventos do sistema. Você pode configurar quais eventos deseja receber.

Estrutura Base ​

Todos os payloads seguem esta estrutura:

json
{
  "event": "NOME_DO_EVENTO",
  "data": {},
  "timestamp": "2024-12-18T13:49:33+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a2b3d4e5"
}
CampoDescrição
eventNome do evento disparado
dataDados do evento (varia por tipo)
timestampData/hora do evento (ISO8601)
attemptNúmero da tentativa (0 = primeira)
webhook_idID único para rastreamento e deduplicação

Lista de Eventos ​

EventoDescrição
MESSAGE_SENTMensagem enviada pela equipe
MESSAGE_RECEIVEDMensagem recebida do contato
CHAT_CREATEDNova conversa criada
CHAT_ENDEDConversa finalizada
CHAT_TRANSFERREDConversa transferida
CHANNEL_CONNECTEDCanal conectado
CHANNEL_DISCONNECTEDCanal desconectado

Mensagens ​

MESSAGE_SENT ​

Disparado quando uma mensagem é enviada pela equipe para um contato.

Casos de uso:

  • Registrar mensagens enviadas em CRM externo
  • Atualizar histórico de atendimento
  • Sincronizar conversas com outros sistemas
json
{
  "event": "MESSAGE_SENT",
  "data": {
    "message": {
      "id": 12345,
      "content": "Olá, como posso ajudar?",
      "type": "text",
      "file": null,
      "direction": "outgoing",
      "visibility": "client",
      "created_at": "2024-12-18T13:55:00.000000Z"
    },
    "chat": {
      "token": "abc123def456",
      "status": "attending",
      "external_reference": null,
      "channel": {
        "token": "xyz789abc123def4",
        "name": "WhatsApp Atendimento",
        "type": "wppconnect"
      },
      "is_open": true,
      "unread_count": 0
    },
    "user": {
      "id": 5,
      "name": "Maria Silva",
      "email": "[email protected]",
      "avatar": "https://exemplo.com/avatars/5.jpg"
    },
    "contact": {
      "phone": "5531983064050",
      "name": "João Santos",
      "avatar": null,
      "blocked": false,
      "tags": [
        {
          "id": 1,
          "name": "VIP",
          "color": "#FF5733"
        }
      ]
    }
  },
  "timestamp": "2024-12-18T13:55:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a2b3d4e5"
}

MESSAGE_RECEIVED ​

Disparado quando uma mensagem é recebida de um contato.

Casos de uso:

  • Criar tickets automáticos em sistema externo
  • Notificar equipe em outras plataformas
  • Integrar com chatbot externo
json
{
  "event": "MESSAGE_RECEIVED",
  "data": {
    "message": {
      "id": 12346,
      "content": "Preciso de ajuda com meu pedido",
      "type": "text",
      "file": null,
      "direction": "incoming",
      "visibility": "client",
      "created_at": "2024-12-18T13:56:00.000000Z"
    },
    "chat": {
      "token": "abc123def456",
      "status": "waiting",
      "external_reference": null,
      "channel": {
        "token": "xyz789abc123def4",
        "name": "WhatsApp Atendimento",
        "type": "wppconnect"
      },
      "is_open": true,
      "unread_count": 1
    },
    "user": null,
    "contact": {
      "phone": "5531983064050",
      "name": "João Santos",
      "avatar": null,
      "blocked": false,
      "tags": []
    }
  },
  "timestamp": "2024-12-18T13:56:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a2b4e5f6"
}

Mensagem com Arquivo ​

Exemplo de mensagem enviada com imagem:

json
{
  "event": "MESSAGE_SENT",
  "data": {
    "message": {
      "id": 12347,
      "content": "https://exemplo.com/produto.jpg",
      "type": "image",
      "file": {
        "id": 456,
        "url": "https://exemplo.com/files/produto.jpg",
        "filename": "produto.jpg",
        "mimetype": "image/jpeg",
        "size": 245680
      },
      "direction": "outgoing",
      "visibility": "client",
      "created_at": "2024-12-18T13:57:00.000000Z"
    },
    "chat": {
      "token": "abc123def456",
      "status": "attending",
      "channel": {
        "token": "xyz789abc123def4",
        "name": "WhatsApp Vendas",
        "type": "wppconnect"
      }
    },
    "user": {
      "id": 8,
      "name": "Carlos Souza",
      "email": "[email protected]"
    },
    "contact": {
      "phone": "5531987654321",
      "name": "Ana Paula"
    }
  },
  "timestamp": "2024-12-18T13:57:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a2c5f6g7"
}

Chats ​

CHAT_CREATED ​

Disparado quando uma nova conversa é criada.

Casos de uso:

  • Criar registro de atendimento em CRM
  • Notificar equipe sobre novo contato
  • Acionar workflows automáticos
json
{
  "event": "CHAT_CREATED",
  "data": {
    "chat": {
      "token": "abc123def456",
      "status": "waiting",
      "external_reference": null,
      "channel": {
        "token": "xyz789abc123def4",
        "name": "WhatsApp Atendimento",
        "type": "wppconnect"
      },
      "is_open": true,
      "unread_count": 0,
      "created_at": "2024-12-18T13:57:00.000000Z"
    },
    "contact": {
      "phone": "5531983064050",
      "name": "João Santos",
      "avatar": null,
      "blocked": false
    }
  },
  "timestamp": "2024-12-18T13:57:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a2c5f6g7"
}

CHAT_ENDED ​

Disparado quando uma conversa é finalizada.

Casos de uso:

  • Fechar ticket em sistema externo
  • Enviar pesquisa de satisfação
  • Gerar relatórios
json
{
  "event": "CHAT_ENDED",
  "data": {
    "chat": {
      "token": "abc123def456",
      "status": "finalized",
      "external_reference": null,
      "channel": {
        "token": "xyz789abc123def4",
        "name": "WhatsApp Atendimento",
        "type": "wppconnect"
      },
      "is_open": false,
      "unread_count": 0,
      "ended_at": "2024-12-18T14:30:00.000000Z"
    },
    "contact": {
      "phone": "5531983064050",
      "name": "João Santos",
      "avatar": null,
      "blocked": false
    }
  },
  "timestamp": "2024-12-18T14:30:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a2d6g7h8"
}

CHAT_TRANSFERRED ​

Disparado quando uma conversa é transferida para outro canal ou atendente.

Casos de uso:

  • Registrar histórico de transferências
  • Notificar novo responsável
  • Métricas de distribuição
json
{
  "event": "CHAT_TRANSFERRED",
  "data": {
    "chat": {
      "token": "abc123def456",
      "status": "waiting",
      "is_open": true,
      "unread_count": 0,
      "transferred_at": "2024-12-18T14:15:00.000000Z"
    },
    "contact": {
      "phone": "5531983064050",
      "name": "João Santos"
    },
    "from_channel": {
      "token": "xyz789abc123def4",
      "name": "WhatsApp Vendas",
      "type": "wppconnect"
    },
    "to_channel": {
      "token": "mno456pqr789stu0",
      "name": "WhatsApp Suporte",
      "type": "evolution"
    },
    "to_user": {
      "id": 8,
      "name": "Maria Silva",
      "email": "[email protected]"
    }
  },
  "timestamp": "2024-12-18T14:15:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a40ab1cd2"
}

Canais ​

CHANNEL_CONNECTED ​

Disparado quando um canal é conectado com sucesso.

Casos de uso:

  • Notificar administradores sobre reconexão
  • Atualizar status em dashboard externo
  • Registrar uptime de canais
json
{
  "event": "CHANNEL_CONNECTED",
  "data": {
    "channel": {
      "token": "xyz789abc123def4",
      "name": "WhatsApp Atendimento",
      "type": "wppconnect",
      "status": "connected",
      "phone": "5531987654321",
      "connected_at": "2024-12-18T14:05:00.000000Z"
    }
  },
  "timestamp": "2024-12-18T14:05:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a31ak1l2"
}

CHANNEL_DISCONNECTED ​

Disparado quando um canal perde conexão.

Casos de uso:

  • Alertar administradores sobre problema
  • Enviar notificação de urgência
  • Ativar canal backup
json
{
  "event": "CHANNEL_DISCONNECTED",
  "data": {
    "channel": {
      "token": "xyz789abc123def4",
      "name": "WhatsApp Atendimento",
      "type": "wppconnect",
      "status": "disconnected",
      "phone": "5531987654321",
      "disconnected_at": "2024-12-18T16:30:00.000000Z"
    }
  },
  "timestamp": "2024-12-18T16:30:00+00:00",
  "attempt": 0,
  "webhook_id": "whk_675c1a34dm3n5"
}

Estrutura dos Campos ​

message ​

CampoTipoDescrição
idintegerID único da mensagem
contentstringConteúdo da mensagem (texto ou URL do arquivo)
typestringTipo: text, image, video, audio, document, sticker, vcard, ptt
fileobject/nullDados do arquivo anexado
directionstringincoming (recebida) ou outgoing (enviada)
visibilitystringclient (visível para cliente) ou internal (apenas equipe)

chat ​

CampoTipoDescrição
tokenstringToken único do chat
statusstringStatus: waiting, attending, finalized
external_referencestring/nullReferência externa personalizada
channelobjectDados do canal
is_openbooleanSe o chat está aberto
unread_countintegerMensagens não lidas

user ​

CampoTipoDescrição
idintegerID do usuário
namestringNome do usuário
emailstringE-mail do usuário
avatarstring/nullURL do avatar

contact ​

CampoTipoDescrição
phonestringTelefone do contato
namestringNome do contato
avatarstring/nullURL do avatar
blockedbooleanSe está bloqueado
tagsarrayTags do contato

file ​

CampoTipoDescrição
idintegerID do arquivo
urlstringURL pública para download
filenamestringNome do arquivo
mimetypestringTipo MIME
sizeintegerTamanho em bytes

Testando Eventos ​

Use ferramentas como gohook.io para testar:

  1. Acesse o site e copie a URL única gerada
  2. Configure essa URL no MeChat
  3. Faça ações na plataforma
  4. Veja os payloads chegando em tempo real

Como testar cada evento ​

EventoComo testar
MESSAGE_SENTEnvie uma mensagem pelo painel
MESSAGE_RECEIVEDEnvie mensagem do WhatsApp para o canal
CHAT_CREATEDInicie conversa com novo número
CHAT_ENDEDFinalize uma conversa
CHAT_TRANSFERREDTransfira conversa entre canais
CHANNEL_CONNECTEDConecte um canal via QR Code
CHANNEL_DISCONNECTEDDesconecte um canal

Boas Práticas ​

  • Sempre valide o campo event antes de processar
  • Armazene o webhook_id para rastreamento e deduplicação
  • Trate campos null adequadamente
  • Para mensagens com arquivo, use file.url para download
  • Selecione apenas os eventos que realmente precisa
  • Use múltiplos webhooks para diferentes finalidades