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