Webhook Submission Format February 18, 2025 13:15 Updated We currently support the submission of the following item types: Messages Events Contacts (Coming soon) Tickets Currently, there is no specific field that directly identifies the type of data sent. However, we suggest the following heuristic to determine the type of each item: The type field is unique and mandatory for messages. The category field is unique and mandatory for events. The lastMessageDate field is unique and mandatory for contacts. Alternatively, you can configure a specific URL for each type of submission, isolating the flows and simplifying data processing. Messages Messages include everything exchanged between conversation parties, such as plain text, media, interactive options (e.g., menus), and specific structures of the channel in use, like proactive messages on WhatsApp. Historically, messages also include certain ticket updates, such as opening, closing, and transferring. The date and time of the message can be retrieved from the #envelope.storageDate subfield within the metadata field. Structure Field Type Mandatory Meaning Example type string Yes The MIME type of the message, which indicates what structure will be used in the content field. text/plain content string | object Yes The content of the message. It can be plain text or an object, if it's a special message, such as interactive messages, media content, or others. Hello! id string Yes Unique identifier of the message. wamid.HBgNNTQ5Mjk0N DY0ODgzMBUCABIYIDMz QTZGQjM2NUQ2QkFDQU FFRTdERkUyNDQ5NUQ2MjlDAA== from string Yes The sender of the message. It can be the client or the bot, depending on the direction of the message. 551199999999@wa.gw.msging.net to string Yes The recipient of the message. It can be the client or the bot, Depending on the direction of the message. whatsappexample@msging.net metadata object Yes Metadata about the message. The fields vary depending on the channel and the direction of the message. The subfield #envelope.storageDate contains the creation date of the message in UTC-0 format. { "#wa.timestamp": "1736354097", "traceparent": "00-f2b0535c0c9d15b3dd29a7b1356365f1-448294cb77a064ee-01", "#uniqueId": "74eb1496-a986-4f10-b1f6-d353e04ee39e", "#date_processed": "1736354114687", "date_created": "1736354114668", "#envelope.storageDate": "2025-01-08T16:35:14Z" } "Some of the possible values for 'type' are: text/plain application/json application/vnd.iris.ticket+json application/vnd.lime.collection+json application/vnd.lime.media-link+json application/vnd.lime.reaction+json application/vnd.lime.redirect+json application/vnd.lime.reply+json application/vnd.lime.select+json Examples: Plain text, sent by the user (WhatsApp channel). { "type": "text/plain", "content": "Oi", "id": "wamid.HBgNNTQ5Mjk0NDY0ODgzMBUCABIYIDMzQTZGQjM2NUQ2QkFDQUFFRTdERkUyNDQ5NUQ2MjlDAA==", "from": "551199999999@wa.gw.msging.net", "to": "whatsappexample@msging.net", "metadata": { "#wa.timestamp": "1736354097", "traceparent": "00-f2b0535c0c9d15b3dd29a7b1356365f1-448294cb77a064ee-01", "#uniqueId": "74eb1496-a986-4f10-b1f6-d353e04ee39e", "#date_processed": "1736354114687", "date_created": "1736354114668", "#envelope.storageDate": "2025-01-08T16:35:14Z" }} Interactive menu, sent by the bot (BlipChat channel) { "type": "application/vnd.lime.select+json", "content": { "scope": "immediate", "text": "Quer falar com um atendente?", "options": [ { "text": "Sim" }, { "text": "Não" } ] }, "id": "d1402ce1-5e08-4a64-b9c2-5145d0d511e7", "from": "blipchatexamplerouter@msging.net/msging-application-router-hosting-standard-cd68bb7b9-v589m", "to": "78843319-6318-46a8-9653-8f11d77a63f6.blipchatexamplerouter@0mn.io", "metadata": { "#stateName": "Atendimento?", "#stateId": "50a630f3-4453-4185-9716-8774f75eb9db", "#messageId": "context:b7859be1-6165-467d-80d1-1838c4768435", "#previousStateId": "welcome", "#previousStateName": "Bienvenida", "#tunnel.owner": "blipchatexamplerouter@msging.net", "#tunnel.originator": "78843319-6318-46a8-9653-8f11d77a63f6.blipchatexamplerouter@0mn.io", "traceparent": "00-888774c75676f06122fc35cab221b0c2-18067e9a7d8e7062-01", "#uniqueId": "0e3d6aaa-cded-437e-b7cf-2b30866d271f", "#date_processed": "1736343637158", "date_created": "1736343637137", "#tunnel.originalFrom": "blipchatatendimento@msging.net/msging-application-builder-hosting-standard-777695bf87-4q9wk", "#tunnel.originalTo": "d5187b97-cbb2-4987-8e2d-cd77a04fd362@tunnel.msging.net", "#messageKind": "Response", "#envelope.storageDate": "2025-01-08T13:40:37Z" }} Message sent by the agent (BlipChat channel) { "type": "text/plain", "content": "Como posso te ajudar?", "id": "fwd:fwd:4bf2147b-8a46-466e-9d3d-0ba6df7a1c7c", "from": "blipchatexamplerouter@msging.net/msging-application-router-hosting-standard-7b4cb78c46-tktks", "to": "1bf2e971-c887-4115-9da4-c0377c650af8.blipchatexamplerouter@0mn.io", "metadata": { "#messageEmitter": "Human", "traceparent": "00-dd1b2640e065e43328bea33ad4f3f50c-6e97fb525fae5e7a-01", "#uniqueId": "83b6e2eb-4ebb-464e-9873-546f53e3ce44", "#date_processed": "1736356745643", "date_created": "1736356745458", "#tunnel.owner": "blipchatexamplerouter@msging.net", "#tunnel.originator": "1bf2e971-c887-4115-9da4-c0377c650af8.hmgrouter@0mn.io", "#tunnel.originalFrom": "blipchatatendimento@msging.net/msging-application-builder-hosting-standard-6969686d5c-c7c67", "#tunnel.originalTo": "2da4c131-4a23-4fbe-8148-792cd5d73d70@tunnel.msging.net", "#messageKind": "Response", "#envelope.storageDate": "2025-01-08T17:19:05Z" }} Ticket pulled by the agent (BlipChat channel). { "type": "application/vnd.iris.ticket+json", "content": { "id": "ba5af0b5-5b29-4a82-8536-0194470002a2", "sequentialId": 56, "ownerIdentity": "blipchatatendimento@msging.net", "customerIdentity": "2da4c131-4a23-4fbe-8148-792cd5d73d70@tunnel.msging.net", "customerDomain": "0mn.io", "provider": "Lime", "status": "Waiting", "storageDate": "2025-01-08T17:39:30.594Z", "externalId": "ba5af0b5-5b29-4a82-8536-0194470002a2", "rating": 0, "team": "Default", "unreadMessages": 0, "closed": false, "customerInput": { "type": "text/plain", "value": "oi" }, "priority": 0 }, "id": "ba5af0b5-5b29-4a82-8536-0194470002a2", "from": "1bf2e971-c887-4115-9da4-c0377c650af8.blipchatexamplerouter@0mn.io", "to": "blipchatexamplerouter@msging.net", "metadata": { "#envelope.storageDate": "2025-01-08T17:39:30Z" }} Audio message, sent by the client (WhatsApp channel) { "type": "application/vnd.lime.media-link+json", "content": { "type": "audio/ogg", "uri": "https://fakemediastore.blip.ai/secure-medias/Media_3c64e81c-2c7b-4e2b-afc7-da71bdaae5d01806539016748636?sv=2024-05-04&st=2025-01-08T20%3A19%3A55Z&se=2025-01-08T20%3A49%3A55Z&sr=b&sp=r&sig=mtSChi1oLIvgxQReL4tvlwzw2aBV8L14k5NjdVHkzzg%3D&secure=true" }, "id": "wamid.HBgNNTQ5Mjk0NDY0ODgzMBUCABIYIDRDNjJCMDU1OTg2QjdDNzdDNzExREFEOUFEQTcwQUVFAA==", "from": "551199999999@wa.gw.msging.net", "to": "whatsappexample@msging.net", "metadata": { "#wa.timestamp": "1736368475", "#wa.voice": "true", "traceparent": "00-8889ac22711f246651486c2fdf4e4b33-9bb3bb83c2817183-01", "#uniqueId": "4d5007bb-8191-4926-adad-c54dcd9e8784", "#date_processed": "1736368495393", "date_created": "1736368495385", "#envelope.storageDate": "2025-01-08T20:34:55Z" }} Events Events, also called event-tracks, are the tracks triggered by the 'Event Logging' actions or by enabling the 'Automatic Tracking' option in the Builder. They can also be generated through the Blip HTTP API. The date and time of the event can be obtained from the storageDate field. Structure Field Type Mandatory Meaning Example ownerIdentity string Yes Bot ID to which the event is associated whatsappexample@msging.net identity string No [Deprecated] Contact ID that triggered the event. 551199999999@wa.gw.msging.net contact Object No Object containing contact data that triggered the event. { "Identity": "551199999999@wa.gw.msging.net" } messageId string No Message ID that triggered the event. Note that a single message can trigger more than one event. wamid.HBgNNTQ5Mjk0N DY0ODgzMBUCABIYIDkz MjhCOEFGMDE4RTM0Q0 I2NEY3MTJBOUNDNUQwNzBBAA== storageDate string Yes Date and time of the event registration, in UTC-0 format. 2025-01-08T17:50:25.577Z category string Yes Date and time of the event registration, in UTC-0 format. Has registration action string Yes Action, subcategory, or detail of the event. It represents the lowest hierarchy in the data organization. No extras object No Object containing automatic metadata of the event (e.g., block ID where it was triggered) and custom extra information registered in the 'Event Logging' action. { "stateId": "welcome", "#stateName": "Boas vindas", "#stateId": "welcome", "#messageId": "c59505f0-4000-4b21-be0a-6850961ea7aa", "#previousStateId": "onboarding", "#previousStateName": "Início" } Examples Custom event, configured as an Action in the Builder (BlipChat channel). { "ownerIdentity": "blipchatexamplerouter@msging.net", "identity": "78843319-6318-46a8-9653-8f11d77a63f6.blipchatexamplerouter@0mn.io", "contact": { "Identity": "78843319-6318-46a8-9653-8f11d77a63f6.blipchatexamplerouter@0mn.io" }, "messageId": "505eb2ad-9236-4915-8e6d-b2c0ee30c290", "storageDate": "2025-01-08T13:29:24.255Z", "category": "Possui cadastro", "action": "Não", "extras": { "#stateName": "Verifica cadastro", "#stateId": "9b530b75-e487-4c17-933e-c7743f9f4516", "#messageId": "505eb2ad-9236-4915-8e6d-b2c0ee30c290", "#previousStateId": "onboarding", "#previousStateName": "Inicio" }} Automatic Tracking event (WhatsApp channel). { "ownerIdentity": "whatsapprouter2@msging.net", "identity": "5492944648830@wa.gw.msging.net", "contact": { "Identity": "5492944648830@wa.gw.msging.net" }, "messageId": "wamid.HBgNNTQ5Mjk0NDY0ODgzMBUCABIYIDkzMjhCOEFGMDE4RTM0Q0I2NEY3MTJBOUNDNUQwNzBBAA==", "storageDate": "2025-01-08T17:50:25.577Z", "category": "flow", "action": "Atendimento Humano", "extras": { "stateId": "desk:209e648f-afc0-4e27-94e9-26a4c9e261bd", "#stateName": "Atendimento Humano", "#stateId": "desk:209e648f-afc0-4e27-94e9-26a4c9e261bd", "#messageId": "wamid.HBgNNTQ5Mjk0NDY0ODgzMBUCABIYIDkzMjhCOEFGMDE4RTM0Q0I2NEY3MTJBOUNDNUQwNzBBAA==", "#previousStateId": "desk:209e648f-afc0-4e27-94e9-26a4c9e261bd", "#previousStateName": "Atendimento Humano" }}Contacts All contact updates are recorded here. Whenever any field of a contact is updated, the most recent complete version of the contact is sent. It is important to note that, due to the asynchronous and parallel nature of Blip, there is no guarantee that the updates will be received in strictly chronological order. Structure Field Type Mandatory Meaning Example lastMessageDate string Yes Approximate date and time of the last interaction of this client, in UTC-0. It is updated at least once per 'session.' However, if multiple messages are exchanged in a short period, it may not necessarily refer to the last message 2025-01-08T17:58:48.890Z identity string Yes Unique identifier of the client. 551199999999@wa.gw.msging.net source string Yes Channel identifier. WhatsApp name string No Contact name João da Silva email string No Contact's email address joaodasilva@email.com.br phoneNumber string No Contact's phone number 99999999 gender string No Contact's gender male taxDocument string No Contact's identification document (e.g., CPF, CNPJ, ID card) 901.396.765-33 extras object No Custom additional data related to the contact. { "ticket": "123", "plano": "Golden" } Examples Newly created contact, with no information (Blip Chat channel). { "lastMessageDate": "2025-01-08T20:23:51.110Z", "identity": "6f16a65f-eaec-42e3-ac56-8815269ac06b.blipchatexamplerouter@0mn.io", "source": "0mn.io"} Complete contact with all available fields filled in the Builder (WhatsApp channel) { "name": "João da Silva", "lastMessageDate": "2025-01-08T20:27:28.455Z", "identity": "551199999999@wa.gw.msging.net", "email": "joaodasilva@email.com.br", "phoneNumber": "(11)9999-9999", "gender": "male", "extras": { "ticket": "123", "plano": "Golden" }, "source": "WhatsApp", "taxDocument": "901.396.765-33"} For more information, visit the discussion on the topic in our community or the videos on our channel. 😃 Related articles Sending Data for Analysis via Webhooks Blocking rules for invalid Webhook's URLs How to connect to a personalized service channel Builder variables Action: HTTP request