[{"data":1,"prerenderedAt":6703},["ShallowReactive",2],{"docs-pages-meta":3,"i-lucide:menu":142,"i-fa6-solid:book":147,"i-fa6-solid:signs-post":151,"i-lucide:search":153,"i-lucide:languages":155,"i-lucide:chevron-down":157,"i-lucide:moon":159,"i-fa6-solid:tower-broadcast":161,"i-lucide:compass":164,"i-fa6-brands:whatsapp":166,"i-lucide:life-buoy":168,"i-fa6-solid:gear":170,"i-lucide:bot":172,"i-lucide:chart-column":174,"i-lucide:arrow-up-right":176,"i-lucide:sparkles":178,"i-fa6-solid:key":180,"i-fa6-solid:list-check":182,"i-lucide:webhook":184,"i-fa6-solid:layer-group":186,"i-fa6-solid:plug":188,"docs-page:\u002Fen\u002Fapi-reference\u002Fv3\u002Fwebhooks":191,"i-lucide:chevron-left":6693,"i-lucide:chevron-right":6695,"i-fa6-solid:triangle-exclamation":6697,"i-fa6-solid:circle-info":6699,"i-lucide:copy":6701},[4,9,14,19,22,27,30,35,38,42,47,52,56,61,66,71,76,79,83,87,90,93,97,100,104,107,111,115,119,123,127,131,135,139],{"path":5,"title":6,"description":7,"icon":8},"\u002Fen\u002Fapi-reference\u002Fv2\u002Fauthentication","Authentication","Learn how to generate and manage your access credentials to use the API securely.","key",{"path":10,"title":11,"description":12,"icon":13},"\u002Fen\u002Fapi-reference\u002Fv2","Introduction","The v2 API: connections, chats, messages and templates.","sparkles",{"path":15,"title":16,"description":17,"icon":18},"\u002Fen\u002Fapi-reference\u002Fv2\u002Fwebhooks","Webhooks","In this section, you’ll learn how to integrate and use webhooks and messaging events to connect your application to your projects.","webhook",{"path":20,"title":6,"description":21,"icon":8},"\u002Fen\u002Fapi-reference\u002Fv3\u002Fauthentication","How a v3 request proves who it is, and which workspace it acts on.",{"path":23,"title":24,"description":25,"icon":26},"\u002Fen\u002Fapi-reference\u002Fv3\u002Fconventions","Conventions","Pagination, errors, ids and dates — the rules every v3 endpoint follows.","list-check",{"path":28,"title":11,"description":29,"icon":13},"\u002Fen\u002Fapi-reference\u002Fv3","The v3 API: workspaces, connections, campaigns and the helpdesk.",{"path":31,"title":32,"description":33,"icon":34},"\u002Fen\u002Fapi-reference\u002Fv3\u002Frealtime","Realtime","The websocket behind the shared inbox: live conversations, typing and presence.","tower-broadcast",{"path":36,"title":16,"description":37,"icon":18},"\u002Fen\u002Fapi-reference\u002Fv3\u002Fwebhooks","Receive WhatsApp and helpdesk events on your own server, and prove they came from us.",{"path":39,"title":40,"description":41,"icon":8},"\u002Fen\u002Fapikeys","API Keys","Understand what API Keys are and why they are required to use Pingo Notify securely.",{"path":43,"title":44,"description":45,"icon":46},"\u002Fen\u002Fconnections","Connections","Connections represent WhatsApp sessions linked to Pingo Notify, used for sending, receiving, and integrations.","qrcode",{"path":48,"title":49,"description":50,"icon":51},"\u002Fen\u002Fhooks-and-development","Hooks and Development","Extend the Pingo Notify WordPress plugin with custom triggers, groups, and hooks.","code",{"path":53,"title":54,"description":55,"icon":13},"\u002Fen","Introduction to Pingo Notify","Connect WhatsApp to your systems, automate workflows, and send messages.",{"path":57,"title":58,"description":59,"icon":60},"\u002Fen\u002Fintegrations","Integrations","Integrations represent external applications linked to Pingo Notify, authorized to access resources such as connections, plans, and messaging.","cube",{"path":62,"title":63,"description":64,"icon":65},"\u002Fen\u002Fofficial-whatsapp-api","Official WhatsApp API","Step-by-step guide to request access to the Official WhatsApp Business API and connect it to Pingo Notify.","badge-check",{"path":67,"title":68,"description":69,"icon":70},"\u002Fen\u002Fplugin-wordpress","Get started","WordPress plugin that connects events from your site to Pingo Notify for automatic notification delivery.","wordpress",{"path":72,"title":73,"description":74,"icon":75},"\u002Fen\u002Ftemplate-plugins","Templates Guide","Learn how to create custom dynamic messages.","square-envelope",{"path":77,"title":16,"description":78,"icon":18},"\u002Fen\u002Fwebhooks","Receive WhatsApp events in real time by linking webhooks to one or more connections in Pingo Notify.",{"path":80,"title":81,"description":82,"icon":8},"\u002Fpt-BR\u002Fapi-reference\u002Fv2\u002Fauthentication","Autenticação","Veja como gerar e gerenciar suas credenciais de acesso para utilizar a API com segurança.",{"path":84,"title":85,"description":86,"icon":13},"\u002Fpt-BR\u002Fapi-reference\u002Fv2","Introdução","A API v2: conexões, conversas, mensagens e templates.",{"path":88,"title":16,"description":89,"icon":18},"\u002Fpt-BR\u002Fapi-reference\u002Fv2\u002Fwebhooks","Nesta seção, você aprende como integrar e utilizar webhooks e eventos de mensageria para conectar a aplicação aos seus projetos.",{"path":91,"title":81,"description":92,"icon":8},"\u002Fpt-BR\u002Fapi-reference\u002Fv3\u002Fauthentication","Como uma requisição v3 prova quem é, e em qual workspace ela atua.",{"path":94,"title":95,"description":96,"icon":26},"\u002Fpt-BR\u002Fapi-reference\u002Fv3\u002Fconventions","Convenções","Paginação, erros, ids e datas — as regras que todo endpoint da v3 segue.",{"path":98,"title":85,"description":99,"icon":13},"\u002Fpt-BR\u002Fapi-reference\u002Fv3","A API v3: workspaces, conexões, campanhas e o helpdesk.",{"path":101,"title":102,"description":103,"icon":34},"\u002Fpt-BR\u002Fapi-reference\u002Fv3\u002Frealtime","Tempo real","O websocket por trás da caixa compartilhada: conversas ao vivo, digitação e presença.",{"path":105,"title":16,"description":106,"icon":18},"\u002Fpt-BR\u002Fapi-reference\u002Fv3\u002Fwebhooks","Receba eventos do WhatsApp e do helpdesk no seu servidor, e prove que vieram de nós.",{"path":108,"title":109,"description":110,"icon":8},"\u002Fpt-BR\u002Fapikeys","Chaves de API","Entenda o que são Chaves de API e por que elas são necessárias para usar o Pingo Notify com segurança.",{"path":112,"title":113,"description":114,"icon":46},"\u002Fpt-BR\u002Fconnections","Conexões","Conexões representam sessões do WhatsApp vinculadas ao Pingo Notify, usadas para envio, recebimento e integrações.",{"path":116,"title":117,"description":118,"icon":51},"\u002Fpt-BR\u002Fhooks-and-development","Hooks e Desenvolvimento","Estenda o plugin WordPress do Pingo Notify com gatilhos, grupos e hooks personalizados.",{"path":120,"title":121,"description":122,"icon":13},"\u002Fpt-BR","Introdução ao Pingo Notify","Conecte o WhatsApp aos seus sistemas, automatize fluxos e envie mensagens.",{"path":124,"title":125,"description":126,"icon":60},"\u002Fpt-BR\u002Fintegrations","Integrações","Integrações representam aplicações externas vinculadas ao Pingo Notify, autorizadas a acessar recursos como conexões, planos e mensageria.",{"path":128,"title":129,"description":130,"icon":65},"\u002Fpt-BR\u002Fofficial-whatsapp-api","API Oficial do WhatsApp","Guia passo a passo para solicitar acesso à API Oficial do WhatsApp Business e conectá-la ao Pingo Notify.",{"path":132,"title":133,"description":134,"icon":70},"\u002Fpt-BR\u002Fplugin-wordpress","Primeiros passos","Plugin WordPress que conecta eventos do seu site ao Pingo Notify para envio automático de notificações.",{"path":136,"title":137,"description":138,"icon":75},"\u002Fpt-BR\u002Ftemplate-plugins","Guia de Templates","Aprenda a criar mensagens dinâmicas personalizadas.",{"path":140,"title":16,"description":141,"icon":18},"\u002Fpt-BR\u002Fwebhooks","Receba eventos do WhatsApp em tempo real vinculando webhooks a uma ou mais conexões no Pingo Notify.",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":146},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":143,"top":143,"width":148,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":150},448,512,"\u003Cpath fill=\"currentColor\" d=\"M96 0C43 0 0 43 0 96v320c0 53 43 96 96 96h320c17.7 0 32-14.3 32-32s-14.3-32-32-32v-64c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32zm0 384h256v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32m32-240c0-8.8 7.2-16 16-16h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16m16 48h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16\"\u002F>",{"left":143,"top":143,"width":149,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":152},"\u003Cpath fill=\"currentColor\" d=\"M224 32H64c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h377.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32m256 224c0-17.7-14.3-32-32-32H288v-32h-64v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32zM288 480v-96h-64v96c0 17.7 14.3 32 32 32s32-14.3 32-32\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":154},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":156},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m5 8l6 6m-7 0l6-6l2-3M2 5h12M7 2h1m14 20l-5-10l-5 10m2-4h6\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":158},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":160},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":143,"top":143,"width":162,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":163},576,"\u003Cpath fill=\"currentColor\" d=\"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44m474.8-24C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7s-24.3-25.3-17.7-41.7c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84c-6.6-16.4 1.3-35 17.7-41.7s35 1.3 41.7 17.7M352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64M170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1S119 221 112 204.8c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1M464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2.3-35.1 16.5-42.1S457 35 464 51.2\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":165},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m16.24 7.76l-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\"\u002F>\u003C\u002Fg>",{"left":143,"top":143,"width":148,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":167},"\u003Cpath fill=\"currentColor\" d=\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222c0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222c0-59.3-25.2-115-67.1-157m-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4l-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2c0-101.7 82.8-184.5 184.6-184.5c49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6m101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18c-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4c-32.6-16.3-54-29.1-75.5-66c-5.7-9.8 5.7-9.1 16.3-30.3c1.8-3.7.9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5c-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8c35.2 15.2 49 16.5 66.6 13.9c10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":169},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m4.93 4.93l4.24 4.24m5.66 0l4.24-4.24m-4.24 9.9l4.24 4.24m-9.9-4.24l-4.24 4.24\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003C\u002Fg>",{"left":143,"top":143,"width":149,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":171},"\u003Cpath fill=\"currentColor\" d=\"M495.9 166.6c3.2 8.7.5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4l-55.6 17.8c-8.8 2.8-18.6.3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4c-1.1-8.4-1.7-16.9-1.7-25.5s.6-17.1 1.7-25.4l-43.3-39.4c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160a80 80 0 1 0 0 160\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":173},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 8V4H8\"\u002F>\u003Crect width=\"16\" height=\"12\" x=\"4\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M2 14h2m16 0h2m-7-1v2m-6-2v2\"\u002F>\u003C\u002Fg>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":175},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 3v16a2 2 0 0 0 2 2h16m-3-4V9m-5 8V5M8 17v-3\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":177},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":179},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":143,"top":143,"width":149,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":181},"\u003Cpath fill=\"currentColor\" d=\"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24v-40h40c13.3 0 24-10.7 24-24v-40h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3m40-256a40 40 0 1 1 0 80a40 40 0 1 1 0-80\"\u002F>",{"left":143,"top":143,"width":149,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":183},"\u003Cpath fill=\"currentColor\" d=\"M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113c-9.3-9.4-9.3-24.6 0-34s24.6-9.4 33.9 0L63 101.1l55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L63 261.2l55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32h224c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32m0 160c0-17.7 14.3-32 32-32h224c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32m-64 160c0-17.7 14.3-32 32-32h288c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32M48 368a48 48 0 1 1 0 96a48 48 0 1 1 0-96\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":185},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2\"\u002F>\u003Cpath d=\"m6 17l3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06\"\u002F>\u003Cpath d=\"m12 6l3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8\"\u002F>\u003C\u002Fg>",{"left":143,"top":143,"width":162,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":187},"\u003Cpath fill=\"currentColor\" d=\"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0l-218.6-101c-8.5-4-13.9-12.5-13.9-21.8s5.4-17.9 13.9-21.8zm212.4 204.4l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0l-218.6-101c-8.5-4-13.9-12.5-13.9-21.8s5.4-17.9 13.9-21.8l53.2-24.6l152 70.2a88.1 88.1 0 0 0 73.8 0zm-152 198.2l152-70.2l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0l-218.6-101c-8.5-4-13.9-12.5-13.9-21.8s5.4-17.9 13.9-21.8l53.2-24.6l152 70.2a88.1 88.1 0 0 0 73.8 0\"\u002F>",{"left":143,"top":143,"width":189,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":190},384,"\u003Cpath fill=\"currentColor\" d=\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32m192 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32M32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32v-67.2C297 398 352 333.4 352 256v-32c17.7 0 32-14.3 32-32s-14.3-32-32-32z\"\u002F>",{"id":192,"title":16,"body":193,"description":37,"extension":6688,"hidden":145,"icon":18,"meta":6689,"navigation":3517,"path":36,"seo":6690,"stem":6691,"__hash__":6692},"docs\u002Fen\u002Fapi-reference\u002Fv3\u002Fwebhooks.md",{"type":194,"value":195,"toc":6670},"minimark",[196,200,217,221,224,316,327,332,339,441,459,463,470,546,616,638,642,1692,1695,1714,2907,2979,2983,2995,3016,3023,3038,3042,3053,3063,3370,3387,3394,3398,3404,3425,3428,3465,3472,3479,3488,3795,3802,3806,3825,3834,3837,3840,3899,3906,3919,3923,3926,4038,4041,4051,4119,4125,6264,6267,6299,6306,6312,6315,6318,6342,6372,6381,6388,6402,6443,6446,6506,6522,6525,6535,6619,6626,6666],[197,198,199],"p",{},"Pingo has two independent webhook systems. They solve different problems, and you can use either or both.",[201,202,203,211],"ul",{},[204,205,206,210],"li",{},[207,208,209],"strong",{},"Connection webhooks"," deliver WhatsApp events — a message arrived, went out, was edited, deleted or changed delivery status, or a contact changed presence. This is what you want to drive your own logic on top of WhatsApp.",[204,212,213,216],{},[207,214,215],{},"Helpdesk webhooks"," deliver events from the shared inbox — a conversation was assigned, a label was added, an SLA was missed. This is what you want to sync the helpdesk into another system.",[218,219,209],"h2",{"id":220},"connection-webhooks",[197,222,223],{},"Register a URL and pick the events you care about:",[225,226,231],"pre",{"className":227,"code":228,"language":229,"meta":230,"style":230},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fwebhooks \\\n  -H \"apikey: sk_live_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fhooks\u002Fpingo\",\n    \"events\": [\"messages.upsert\", \"messages.update\"],\n    \"connections\": [\"0195f3a0-1234-7890-abcd-ef0123456789\"],\n    \"hmacEnabled\": true\n  }'\n","bash","",[51,232,233,256,267,277,286,292,298,304,310],{"__ignoreMap":230},[234,235,238,242,246,250,253],"span",{"class":236,"line":237},"line",1,[234,239,241],{"class":240},"sScJk","curl",[234,243,245],{"class":244},"sj4cs"," -X",[234,247,249],{"class":248},"sZZnC"," POST",[234,251,252],{"class":248}," https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fwebhooks",[234,254,255],{"class":244}," \\\n",[234,257,259,262,265],{"class":236,"line":258},2,[234,260,261],{"class":244},"  -H",[234,263,264],{"class":248}," \"apikey: sk_live_...\"",[234,266,255],{"class":244},[234,268,270,272,275],{"class":236,"line":269},3,[234,271,261],{"class":244},[234,273,274],{"class":248}," \"Content-Type: application\u002Fjson\"",[234,276,255],{"class":244},[234,278,280,283],{"class":236,"line":279},4,[234,281,282],{"class":244},"  -d",[234,284,285],{"class":248}," '{\n",[234,287,289],{"class":236,"line":288},5,[234,290,291],{"class":248},"    \"url\": \"https:\u002F\u002Fexample.com\u002Fhooks\u002Fpingo\",\n",[234,293,295],{"class":236,"line":294},6,[234,296,297],{"class":248},"    \"events\": [\"messages.upsert\", \"messages.update\"],\n",[234,299,301],{"class":236,"line":300},7,[234,302,303],{"class":248},"    \"connections\": [\"0195f3a0-1234-7890-abcd-ef0123456789\"],\n",[234,305,307],{"class":236,"line":306},8,[234,308,309],{"class":248},"    \"hmacEnabled\": true\n",[234,311,313],{"class":236,"line":312},9,[234,314,315],{"class":248},"  }'\n",[197,317,318,319,322,323,326],{},"List every connection whose events this webhook should receive. If ",[51,320,321],{},"connections"," is omitted, the webhook is created without connection bindings and receives no events until connections are added with ",[51,324,325],{},"PATCH \u002Fv3\u002Fwebhooks\u002F{id}",".",[328,329,331],"h3",{"id":330},"the-events","The events",[197,333,334,335,338],{},"These are the seven values ",[51,336,337],{},"events"," accepts:",[340,341,342,355],"table",{},[343,344,345],"thead",{},[346,347,348,352],"tr",{},[349,350,351],"th",{},"Event",[349,353,354],{},"Fires when",[356,357,358,373,391,401,411,421,431],"tbody",{},[346,359,360,366],{},[361,362,363],"td",{},[51,364,365],{},"messages.upsert",[361,367,368,369,372],{},"A message ",[207,370,371],{},"arrived"," from a contact.",[346,374,375,380],{},[361,376,377],{},[51,378,379],{},"send.message",[361,381,382,383,386,387,390],{},"On an ",[207,384,385],{},"unofficial"," connection, a message ",[207,388,389],{},"went out"," — through the API, or typed on the phone.",[346,392,393,398],{},[361,394,395],{},[51,396,397],{},"messages.update",[361,399,400],{},"A delivery status changed — sent, delivered, read.",[346,402,403,408],{},[361,404,405],{},[51,406,407],{},"messages.edited",[361,409,410],{},"A message was edited.",[346,412,413,418],{},[361,414,415],{},[51,416,417],{},"messages.delete",[361,419,420],{},"A message was deleted for everyone.",[346,422,423,428],{},[361,424,425],{},[51,426,427],{},"presence.update",[361,429,430],{},"A contact came online or started typing.",[346,432,433,438],{},[361,434,435],{},[51,436,437],{},"connection.update",[361,439,440],{},"The connection changed state.",[442,443,444],"warning",{},[197,445,446,451,452,455,456,326],{},[207,447,448,450],{},[51,449,437],{}," is accepted as a subscription, but delivers nothing today."," The HTTP dispatch for that event is switched off on the server — it updates the connection state internally and feeds the live dashboard, but no ",[51,453,454],{},"POST"," ever reaches your URL. Do not build anything that depends on it; to learn that a connection dropped, poll ",[51,457,458],{},"GET \u002Fv3\u002Fconnections",[328,460,462],{"id":461},"the-envelope","The envelope",[197,464,465,466,469],{},"Every event arrives in the same envelope. What changes is ",[51,467,468],{},"data",":",[225,471,475],{"className":472,"code":473,"language":474,"meta":230,"style":230},"language-json shiki shiki-themes github-light github-dark","{\n  \"event\": \"messages.upsert\",\n  \"connectionId\": \"0195f3a0-1234-7890-abcd-ef0123456789\",\n  \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n  \"sender\": \"5511888887777@s.whatsapp.net\",\n  \"data\": { }\n}\n","json",[51,476,477,483,497,509,521,533,541],{"__ignoreMap":230},[234,478,479],{"class":236,"line":237},[234,480,482],{"class":481},"sVt8B","{\n",[234,484,485,488,491,494],{"class":236,"line":258},[234,486,487],{"class":244},"  \"event\"",[234,489,490],{"class":481},": ",[234,492,493],{"class":248},"\"messages.upsert\"",[234,495,496],{"class":481},",\n",[234,498,499,502,504,507],{"class":236,"line":269},[234,500,501],{"class":244},"  \"connectionId\"",[234,503,490],{"class":481},[234,505,506],{"class":248},"\"0195f3a0-1234-7890-abcd-ef0123456789\"",[234,508,496],{"class":481},[234,510,511,514,516,519],{"class":236,"line":279},[234,512,513],{"class":244},"  \"remoteJid\"",[234,515,490],{"class":481},[234,517,518],{"class":248},"\"5511999998888@s.whatsapp.net\"",[234,520,496],{"class":481},[234,522,523,526,528,531],{"class":236,"line":288},[234,524,525],{"class":244},"  \"sender\"",[234,527,490],{"class":481},[234,529,530],{"class":248},"\"5511888887777@s.whatsapp.net\"",[234,532,496],{"class":481},[234,534,535,538],{"class":236,"line":294},[234,536,537],{"class":244},"  \"data\"",[234,539,540],{"class":481},": { }\n",[234,542,543],{"class":236,"line":300},[234,544,545],{"class":481},"}\n",[340,547,548,558],{},[343,549,550],{},[346,551,552,555],{},[349,553,554],{},"Field",[349,556,557],{},"What it is",[356,559,560,570,580,594,607],{},[346,561,562,567],{},[361,563,564],{},[51,565,566],{},"event",[361,568,569],{},"The event name — the same one you subscribed to.",[346,571,572,577],{},[361,573,574],{},[51,575,576],{},"connectionId",[361,578,579],{},"The Pingo connection the event came from.",[346,581,582,587],{},[361,583,584],{},[51,585,586],{},"remoteJid",[361,588,589,590,593],{},"The ",[207,591,592],{},"other side"," of the conversation: the contact, or the group.",[346,595,596,601],{},[361,597,598],{},[51,599,600],{},"sender",[361,602,603,606],{},[207,604,605],{},"Your own"," connection's number, as the provider reports it.",[346,608,609,613],{},[361,610,611],{},[51,612,468],{},[361,614,615],{},"The event body.",[617,618,619],"note",{},[197,620,621,622,624,625,627,628,630,631,633,634,637],{},"On ",[51,623,365],{}," and ",[51,626,379],{}," the ",[51,629,468],{}," is assembled by us and has a closed shape — exactly the keys below, nothing more. On every other event ",[51,632,468],{}," is passed through ",[207,635,636],{},"as the provider sent it",", so extra fields may show up over time; treat the documented ones as the contract and ignore the rest.",[328,639,641],{"id":640},"payloads-by-event","Payloads by event",[643,644,645,953,1205,1337,1450,1567],"tabs",{},[646,647,648,655,667,819,943],"tab",{"title":365},[197,649,650,651,654],{},"An ",[207,652,653],{},"incoming"," message. This is the event you will use most.",[197,656,657,659,660,663,664,469],{},[51,658,468],{}," always carries these eight keys, and ",[51,661,662],{},"messageType"," tells you which node to expect inside ",[51,665,666],{},"message",[225,668,670],{"className":472,"code":669,"language":474,"meta":230,"style":230},"{\n  \"key\": {\n    \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n    \"fromMe\": false,\n    \"id\": \"3EB0C767D097E9ECB4A5\"\n  },\n  \"pushName\": \"Ana\",\n  \"status\": \"DELIVERY_ACK\",\n  \"messageType\": \"conversation\",\n  \"message\": { \"conversation\": \"Hi! Has my order shipped?\" },\n  \"contextInfo\": null,\n  \"source\": \"android\",\n  \"isAiMessage\": false\n}\n",[51,671,672,676,684,695,707,717,722,734,746,758,777,790,803,814],{"__ignoreMap":230},[234,673,674],{"class":236,"line":237},[234,675,482],{"class":481},[234,677,678,681],{"class":236,"line":258},[234,679,680],{"class":244},"  \"key\"",[234,682,683],{"class":481},": {\n",[234,685,686,689,691,693],{"class":236,"line":269},[234,687,688],{"class":244},"    \"remoteJid\"",[234,690,490],{"class":481},[234,692,518],{"class":248},[234,694,496],{"class":481},[234,696,697,700,702,705],{"class":236,"line":279},[234,698,699],{"class":244},"    \"fromMe\"",[234,701,490],{"class":481},[234,703,704],{"class":244},"false",[234,706,496],{"class":481},[234,708,709,712,714],{"class":236,"line":288},[234,710,711],{"class":244},"    \"id\"",[234,713,490],{"class":481},[234,715,716],{"class":248},"\"3EB0C767D097E9ECB4A5\"\n",[234,718,719],{"class":236,"line":294},[234,720,721],{"class":481},"  },\n",[234,723,724,727,729,732],{"class":236,"line":300},[234,725,726],{"class":244},"  \"pushName\"",[234,728,490],{"class":481},[234,730,731],{"class":248},"\"Ana\"",[234,733,496],{"class":481},[234,735,736,739,741,744],{"class":236,"line":306},[234,737,738],{"class":244},"  \"status\"",[234,740,490],{"class":481},[234,742,743],{"class":248},"\"DELIVERY_ACK\"",[234,745,496],{"class":481},[234,747,748,751,753,756],{"class":236,"line":312},[234,749,750],{"class":244},"  \"messageType\"",[234,752,490],{"class":481},[234,754,755],{"class":248},"\"conversation\"",[234,757,496],{"class":481},[234,759,761,764,767,769,771,774],{"class":236,"line":760},10,[234,762,763],{"class":244},"  \"message\"",[234,765,766],{"class":481},": { ",[234,768,755],{"class":244},[234,770,490],{"class":481},[234,772,773],{"class":248},"\"Hi! Has my order shipped?\"",[234,775,776],{"class":481}," },\n",[234,778,780,783,785,788],{"class":236,"line":779},11,[234,781,782],{"class":244},"  \"contextInfo\"",[234,784,490],{"class":481},[234,786,787],{"class":244},"null",[234,789,496],{"class":481},[234,791,793,796,798,801],{"class":236,"line":792},12,[234,794,795],{"class":244},"  \"source\"",[234,797,490],{"class":481},[234,799,800],{"class":248},"\"android\"",[234,802,496],{"class":481},[234,804,806,809,811],{"class":236,"line":805},13,[234,807,808],{"class":244},"  \"isAiMessage\"",[234,810,490],{"class":481},[234,812,813],{"class":244},"false\n",[234,815,817],{"class":236,"line":816},14,[234,818,545],{"class":481},[340,820,821,829],{},[343,822,823],{},[346,824,825,827],{},[349,826,554],{},[349,828,557],{},[356,830,831,844,856,866,879,890,903,926],{},[346,832,833,838],{},[361,834,835],{},[51,836,837],{},"key.id",[361,839,589,840,843],{},[207,841,842],{},"wamid"," — WhatsApp's own message id. Deduplicate on this.",[346,845,846,851],{},[361,847,848],{},[51,849,850],{},"key.fromMe",[361,852,853,855],{},[51,854,704],{}," on an incoming message.",[346,857,858,863],{},[361,859,860],{},[51,861,862],{},"pushName",[361,864,865],{},"The display name the contact chose.",[346,867,868,873],{},[361,869,870],{},[51,871,872],{},"status",[361,874,875,876,326],{},"The provider ACK. Here it is always ",[51,877,878],{},"DELIVERY_ACK",[346,880,881,885],{},[361,882,883],{},[51,884,662],{},[361,886,887,888,326],{},"Which node arrives inside ",[51,889,666],{},[346,891,892,897],{},[361,893,894],{},[51,895,896],{},"contextInfo",[361,898,899,900,902],{},"Populated on a reply or when there are mentions; ",[51,901,787],{}," in the ordinary case.",[346,904,905,910],{},[361,906,907],{},[51,908,909],{},"source",[361,911,912,913,916,917,916,920,916,923,326],{},"Where the contact sent from: ",[51,914,915],{},"android",", ",[51,918,919],{},"ios",[51,921,922],{},"web",[51,924,925],{},"unknown",[346,927,928,933],{},[361,929,930],{},[51,931,932],{},"isAiMessage",[361,934,935,938,939,942],{},[51,936,937],{},"true"," when WhatsApp Business's native AI answered on its own — in that case ",[51,940,941],{},"aiMessageSource: \"WHATSAPP_BUSINESS\""," rides along.",[197,944,589,945,947,948,326],{},[51,946,666],{}," payloads, per type, are right below in ",[949,950,952],"a",{"href":951},"#message-types","Message types",[646,954,955,967,992,1190],{"title":379},[197,956,368,957,960,961,963,964,966],{},[207,958,959],{},"sent from an unofficial connection"," — via the API, or typed on the phone. Official connections do not produce this event. ",[51,962,468],{}," has exactly the same shape as ",[51,965,365],{},", with two differences that matter:",[201,968,969,978],{},[204,970,971,973,974,326],{},[51,972,850],{}," is ",[207,975,976],{},[51,977,937],{},[204,979,980,982,983,916,986,989,990,326],{},[51,981,872],{}," is the send ACK (",[51,984,985],{},"PENDING",[51,987,988],{},"SERVER_ACK","…), not ",[51,991,878],{},[225,993,995],{"className":472,"code":994,"language":474,"meta":230,"style":230},"{\n  \"event\": \"send.message\",\n  \"connectionId\": \"0195f3a0-1234-7890-abcd-ef0123456789\",\n  \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n  \"sender\": \"5511888887777@s.whatsapp.net\",\n  \"data\": {\n    \"key\": {\n      \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n      \"fromMe\": true,\n      \"id\": \"3EB0F1A2B3C4D5E6F708\"\n    },\n    \"pushName\": \"Example Store\",\n    \"status\": \"PENDING\",\n    \"messageType\": \"conversation\",\n    \"message\": { \"conversation\": \"It went out for delivery this morning!\" },\n    \"contextInfo\": null,\n    \"source\": \"unknown\",\n    \"isAiMessage\": false\n  }\n}\n",[51,996,997,1001,1012,1022,1032,1042,1048,1055,1066,1077,1087,1092,1104,1116,1127,1144,1156,1169,1179,1185],{"__ignoreMap":230},[234,998,999],{"class":236,"line":237},[234,1000,482],{"class":481},[234,1002,1003,1005,1007,1010],{"class":236,"line":258},[234,1004,487],{"class":244},[234,1006,490],{"class":481},[234,1008,1009],{"class":248},"\"send.message\"",[234,1011,496],{"class":481},[234,1013,1014,1016,1018,1020],{"class":236,"line":269},[234,1015,501],{"class":244},[234,1017,490],{"class":481},[234,1019,506],{"class":248},[234,1021,496],{"class":481},[234,1023,1024,1026,1028,1030],{"class":236,"line":279},[234,1025,513],{"class":244},[234,1027,490],{"class":481},[234,1029,518],{"class":248},[234,1031,496],{"class":481},[234,1033,1034,1036,1038,1040],{"class":236,"line":288},[234,1035,525],{"class":244},[234,1037,490],{"class":481},[234,1039,530],{"class":248},[234,1041,496],{"class":481},[234,1043,1044,1046],{"class":236,"line":294},[234,1045,537],{"class":244},[234,1047,683],{"class":481},[234,1049,1050,1053],{"class":236,"line":300},[234,1051,1052],{"class":244},"    \"key\"",[234,1054,683],{"class":481},[234,1056,1057,1060,1062,1064],{"class":236,"line":306},[234,1058,1059],{"class":244},"      \"remoteJid\"",[234,1061,490],{"class":481},[234,1063,518],{"class":248},[234,1065,496],{"class":481},[234,1067,1068,1071,1073,1075],{"class":236,"line":312},[234,1069,1070],{"class":244},"      \"fromMe\"",[234,1072,490],{"class":481},[234,1074,937],{"class":244},[234,1076,496],{"class":481},[234,1078,1079,1082,1084],{"class":236,"line":760},[234,1080,1081],{"class":244},"      \"id\"",[234,1083,490],{"class":481},[234,1085,1086],{"class":248},"\"3EB0F1A2B3C4D5E6F708\"\n",[234,1088,1089],{"class":236,"line":779},[234,1090,1091],{"class":481},"    },\n",[234,1093,1094,1097,1099,1102],{"class":236,"line":792},[234,1095,1096],{"class":244},"    \"pushName\"",[234,1098,490],{"class":481},[234,1100,1101],{"class":248},"\"Example Store\"",[234,1103,496],{"class":481},[234,1105,1106,1109,1111,1114],{"class":236,"line":805},[234,1107,1108],{"class":244},"    \"status\"",[234,1110,490],{"class":481},[234,1112,1113],{"class":248},"\"PENDING\"",[234,1115,496],{"class":481},[234,1117,1118,1121,1123,1125],{"class":236,"line":816},[234,1119,1120],{"class":244},"    \"messageType\"",[234,1122,490],{"class":481},[234,1124,755],{"class":248},[234,1126,496],{"class":481},[234,1128,1130,1133,1135,1137,1139,1142],{"class":236,"line":1129},15,[234,1131,1132],{"class":244},"    \"message\"",[234,1134,766],{"class":481},[234,1136,755],{"class":244},[234,1138,490],{"class":481},[234,1140,1141],{"class":248},"\"It went out for delivery this morning!\"",[234,1143,776],{"class":481},[234,1145,1147,1150,1152,1154],{"class":236,"line":1146},16,[234,1148,1149],{"class":244},"    \"contextInfo\"",[234,1151,490],{"class":481},[234,1153,787],{"class":244},[234,1155,496],{"class":481},[234,1157,1159,1162,1164,1167],{"class":236,"line":1158},17,[234,1160,1161],{"class":244},"    \"source\"",[234,1163,490],{"class":481},[234,1165,1166],{"class":248},"\"unknown\"",[234,1168,496],{"class":481},[234,1170,1172,1175,1177],{"class":236,"line":1171},18,[234,1173,1174],{"class":244},"    \"isAiMessage\"",[234,1176,490],{"class":481},[234,1178,813],{"class":244},[234,1180,1182],{"class":236,"line":1181},19,[234,1183,1184],{"class":481},"  }\n",[234,1186,1188],{"class":236,"line":1187},20,[234,1189,545],{"class":481},[617,1191,1192],{},[197,1193,1194,1195,1197,1198,1200,1201,1204],{},"Subscribe to ",[51,1196,379],{}," if you need to record what your own team sent. If you only want to react to customers, subscribe to ",[51,1199,365],{}," alone — subscribing to both and forgetting to check ",[51,1202,1203],{},"fromMe"," is the classic way to build an infinite reply loop.",[646,1206,1207,1210,1315],{"title":397},[197,1208,1209],{},"A message's delivery status changed. This is how you learn that your message landed, or was read.",[225,1211,1213],{"className":472,"code":1212,"language":474,"meta":230,"style":230},"{\n  \"event\": \"messages.update\",\n  \"connectionId\": \"0195f3a0-1234-7890-abcd-ef0123456789\",\n  \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n  \"sender\": \"5511888887777@s.whatsapp.net\",\n  \"data\": {\n    \"keyId\": \"3EB0F1A2B3C4D5E6F708\",\n    \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n    \"fromMe\": true,\n    \"status\": \"READ\"\n  }\n}\n",[51,1214,1215,1219,1230,1240,1250,1260,1266,1278,1288,1298,1307,1311],{"__ignoreMap":230},[234,1216,1217],{"class":236,"line":237},[234,1218,482],{"class":481},[234,1220,1221,1223,1225,1228],{"class":236,"line":258},[234,1222,487],{"class":244},[234,1224,490],{"class":481},[234,1226,1227],{"class":248},"\"messages.update\"",[234,1229,496],{"class":481},[234,1231,1232,1234,1236,1238],{"class":236,"line":269},[234,1233,501],{"class":244},[234,1235,490],{"class":481},[234,1237,506],{"class":248},[234,1239,496],{"class":481},[234,1241,1242,1244,1246,1248],{"class":236,"line":279},[234,1243,513],{"class":244},[234,1245,490],{"class":481},[234,1247,518],{"class":248},[234,1249,496],{"class":481},[234,1251,1252,1254,1256,1258],{"class":236,"line":288},[234,1253,525],{"class":244},[234,1255,490],{"class":481},[234,1257,530],{"class":248},[234,1259,496],{"class":481},[234,1261,1262,1264],{"class":236,"line":294},[234,1263,537],{"class":244},[234,1265,683],{"class":481},[234,1267,1268,1271,1273,1276],{"class":236,"line":300},[234,1269,1270],{"class":244},"    \"keyId\"",[234,1272,490],{"class":481},[234,1274,1275],{"class":248},"\"3EB0F1A2B3C4D5E6F708\"",[234,1277,496],{"class":481},[234,1279,1280,1282,1284,1286],{"class":236,"line":306},[234,1281,688],{"class":244},[234,1283,490],{"class":481},[234,1285,518],{"class":248},[234,1287,496],{"class":481},[234,1289,1290,1292,1294,1296],{"class":236,"line":312},[234,1291,699],{"class":244},[234,1293,490],{"class":481},[234,1295,937],{"class":244},[234,1297,496],{"class":481},[234,1299,1300,1302,1304],{"class":236,"line":760},[234,1301,1108],{"class":244},[234,1303,490],{"class":481},[234,1305,1306],{"class":248},"\"READ\"\n",[234,1308,1309],{"class":236,"line":779},[234,1310,1184],{"class":481},[234,1312,1313],{"class":236,"line":792},[234,1314,545],{"class":481},[197,1316,1317,1320,1321,1323,1324,1326,1327,1326,1330,1326,1333,1336],{},[51,1318,1319],{},"keyId"," is the ",[207,1322,842],{}," of the affected message — the key that ties this event back to the message you already hold. Statuses climb the ladder ",[51,1325,985],{}," → ",[51,1328,1329],{},"SENT",[51,1331,1332],{},"DELIVERED",[51,1334,1335],{},"READ",", arriving as separate events as the contact receives and opens the chat.",[646,1338,1339,1342,1445],{"title":407},[197,1340,1341],{},"The contact edited a message they had already sent.",[225,1343,1345],{"className":472,"code":1344,"language":474,"meta":230,"style":230},"{\n  \"event\": \"messages.edited\",\n  \"connectionId\": \"0195f3a0-1234-7890-abcd-ef0123456789\",\n  \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n  \"sender\": \"5511888887777@s.whatsapp.net\",\n  \"data\": {\n    \"key\": {\n      \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n      \"fromMe\": false,\n      \"id\": \"3EB0C767D097E9ECB4A5\"\n    }\n  }\n}\n",[51,1346,1347,1351,1362,1372,1382,1392,1398,1404,1414,1424,1432,1437,1441],{"__ignoreMap":230},[234,1348,1349],{"class":236,"line":237},[234,1350,482],{"class":481},[234,1352,1353,1355,1357,1360],{"class":236,"line":258},[234,1354,487],{"class":244},[234,1356,490],{"class":481},[234,1358,1359],{"class":248},"\"messages.edited\"",[234,1361,496],{"class":481},[234,1363,1364,1366,1368,1370],{"class":236,"line":269},[234,1365,501],{"class":244},[234,1367,490],{"class":481},[234,1369,506],{"class":248},[234,1371,496],{"class":481},[234,1373,1374,1376,1378,1380],{"class":236,"line":279},[234,1375,513],{"class":244},[234,1377,490],{"class":481},[234,1379,518],{"class":248},[234,1381,496],{"class":481},[234,1383,1384,1386,1388,1390],{"class":236,"line":288},[234,1385,525],{"class":244},[234,1387,490],{"class":481},[234,1389,530],{"class":248},[234,1391,496],{"class":481},[234,1393,1394,1396],{"class":236,"line":294},[234,1395,537],{"class":244},[234,1397,683],{"class":481},[234,1399,1400,1402],{"class":236,"line":300},[234,1401,1052],{"class":244},[234,1403,683],{"class":481},[234,1405,1406,1408,1410,1412],{"class":236,"line":306},[234,1407,1059],{"class":244},[234,1409,490],{"class":481},[234,1411,518],{"class":248},[234,1413,496],{"class":481},[234,1415,1416,1418,1420,1422],{"class":236,"line":312},[234,1417,1070],{"class":244},[234,1419,490],{"class":481},[234,1421,704],{"class":244},[234,1423,496],{"class":481},[234,1425,1426,1428,1430],{"class":236,"line":760},[234,1427,1081],{"class":244},[234,1429,490],{"class":481},[234,1431,716],{"class":248},[234,1433,1434],{"class":236,"line":779},[234,1435,1436],{"class":481},"    }\n",[234,1438,1439],{"class":236,"line":792},[234,1440,1184],{"class":481},[234,1442,1443],{"class":236,"line":805},[234,1444,545],{"class":481},[197,1446,1447,1449],{},[51,1448,837],{}," identifies the original message. This is one of the events passed through raw from the provider, so the edited content may ride along — re-read the message from history if you need the final text with certainty.",[646,1451,1452,1454,1547],{"title":417},[197,1453,420],{},[225,1455,1457],{"className":472,"code":1456,"language":474,"meta":230,"style":230},"{\n  \"event\": \"messages.delete\",\n  \"connectionId\": \"0195f3a0-1234-7890-abcd-ef0123456789\",\n  \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n  \"sender\": \"5511888887777@s.whatsapp.net\",\n  \"data\": {\n    \"id\": \"3EB0C767D097E9ECB4A5\",\n    \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n    \"fromMe\": false\n  }\n}\n",[51,1458,1459,1463,1474,1484,1494,1504,1510,1521,1531,1539,1543],{"__ignoreMap":230},[234,1460,1461],{"class":236,"line":237},[234,1462,482],{"class":481},[234,1464,1465,1467,1469,1472],{"class":236,"line":258},[234,1466,487],{"class":244},[234,1468,490],{"class":481},[234,1470,1471],{"class":248},"\"messages.delete\"",[234,1473,496],{"class":481},[234,1475,1476,1478,1480,1482],{"class":236,"line":269},[234,1477,501],{"class":244},[234,1479,490],{"class":481},[234,1481,506],{"class":248},[234,1483,496],{"class":481},[234,1485,1486,1488,1490,1492],{"class":236,"line":279},[234,1487,513],{"class":244},[234,1489,490],{"class":481},[234,1491,518],{"class":248},[234,1493,496],{"class":481},[234,1495,1496,1498,1500,1502],{"class":236,"line":288},[234,1497,525],{"class":244},[234,1499,490],{"class":481},[234,1501,530],{"class":248},[234,1503,496],{"class":481},[234,1505,1506,1508],{"class":236,"line":294},[234,1507,537],{"class":244},[234,1509,683],{"class":481},[234,1511,1512,1514,1516,1519],{"class":236,"line":300},[234,1513,711],{"class":244},[234,1515,490],{"class":481},[234,1517,1518],{"class":248},"\"3EB0C767D097E9ECB4A5\"",[234,1520,496],{"class":481},[234,1522,1523,1525,1527,1529],{"class":236,"line":306},[234,1524,688],{"class":244},[234,1526,490],{"class":481},[234,1528,518],{"class":248},[234,1530,496],{"class":481},[234,1532,1533,1535,1537],{"class":236,"line":312},[234,1534,699],{"class":244},[234,1536,490],{"class":481},[234,1538,813],{"class":244},[234,1540,1541],{"class":236,"line":760},[234,1542,1184],{"class":481},[234,1544,1545],{"class":236,"line":779},[234,1546,545],{"class":481},[197,1548,1549,1550,1553,1554,1557,1558,1560,1561,1557,1564,1566],{},"Here the wamid arrives in ",[51,1551,1552],{},"data.id"," — not ",[51,1555,1556],{},"data.keyId"," as in ",[51,1559,397],{},", and not ",[51,1562,1563],{},"data.key.id",[51,1565,407],{},". The three events name the same field three different ways; it is inherited from the provider.",[646,1568,1569,1572,1675],{"title":427},[197,1570,1571],{},"The contact came online or started typing.",[225,1573,1575],{"className":472,"code":1574,"language":474,"meta":230,"style":230},"{\n  \"event\": \"presence.update\",\n  \"connectionId\": \"0195f3a0-1234-7890-abcd-ef0123456789\",\n  \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n  \"sender\": \"5511888887777@s.whatsapp.net\",\n  \"data\": {\n    \"id\": \"5511999998888@s.whatsapp.net\",\n    \"presences\": {\n      \"5511999998888@s.whatsapp.net\": { \"lastKnownPresence\": \"composing\" }\n    }\n  }\n}\n",[51,1576,1577,1581,1592,1602,1612,1622,1628,1638,1645,1663,1667,1671],{"__ignoreMap":230},[234,1578,1579],{"class":236,"line":237},[234,1580,482],{"class":481},[234,1582,1583,1585,1587,1590],{"class":236,"line":258},[234,1584,487],{"class":244},[234,1586,490],{"class":481},[234,1588,1589],{"class":248},"\"presence.update\"",[234,1591,496],{"class":481},[234,1593,1594,1596,1598,1600],{"class":236,"line":269},[234,1595,501],{"class":244},[234,1597,490],{"class":481},[234,1599,506],{"class":248},[234,1601,496],{"class":481},[234,1603,1604,1606,1608,1610],{"class":236,"line":279},[234,1605,513],{"class":244},[234,1607,490],{"class":481},[234,1609,518],{"class":248},[234,1611,496],{"class":481},[234,1613,1614,1616,1618,1620],{"class":236,"line":288},[234,1615,525],{"class":244},[234,1617,490],{"class":481},[234,1619,530],{"class":248},[234,1621,496],{"class":481},[234,1623,1624,1626],{"class":236,"line":294},[234,1625,537],{"class":244},[234,1627,683],{"class":481},[234,1629,1630,1632,1634,1636],{"class":236,"line":300},[234,1631,711],{"class":244},[234,1633,490],{"class":481},[234,1635,518],{"class":248},[234,1637,496],{"class":481},[234,1639,1640,1643],{"class":236,"line":306},[234,1641,1642],{"class":244},"    \"presences\"",[234,1644,683],{"class":481},[234,1646,1647,1650,1652,1655,1657,1660],{"class":236,"line":312},[234,1648,1649],{"class":244},"      \"5511999998888@s.whatsapp.net\"",[234,1651,766],{"class":481},[234,1653,1654],{"class":244},"\"lastKnownPresence\"",[234,1656,490],{"class":481},[234,1658,1659],{"class":248},"\"composing\"",[234,1661,1662],{"class":481}," }\n",[234,1664,1665],{"class":236,"line":760},[234,1666,1436],{"class":481},[234,1668,1669],{"class":236,"line":779},[234,1670,1184],{"class":481},[234,1672,1673],{"class":236,"line":792},[234,1674,545],{"class":481},[197,1676,1677,973,1680,1683,1684,1687,1688,1691],{},[51,1678,1679],{},"lastKnownPresence",[51,1681,1682],{},"composing"," (typing) or ",[51,1685,1686],{},"available"," (online). The ",[51,1689,1690],{},"presences"," map is keyed by JID because in a group it carries several participants at once.",[328,1693,952],{"id":1694},"message-types",[197,1696,1697,1698,624,1700,916,1702,1704,1705,1707,1708,1710,1711,326],{},"Inside ",[51,1699,365],{},[51,1701,379],{},[51,1703,662],{}," tells you which node arrives in ",[51,1706,666],{},". Each tab below shows ",[51,1709,666],{}," ",[207,1712,1713],{},"exactly as it lands",[643,1715,1716,1748,1847,1977,2131,2274,2410,2529,2666,2836],{},[646,1717,1719,1725],{"title":1718},"Text",[197,1720,1721,1724],{},[51,1722,1723],{},"messageType: \"conversation\""," — plain text, nothing around it.",[225,1726,1728],{"className":472,"code":1727,"language":474,"meta":230,"style":230},"{\n  \"conversation\": \"Hi! Has my order shipped?\"\n}\n",[51,1729,1730,1734,1744],{"__ignoreMap":230},[234,1731,1732],{"class":236,"line":237},[234,1733,482],{"class":481},[234,1735,1736,1739,1741],{"class":236,"line":258},[234,1737,1738],{"class":244},"  \"conversation\"",[234,1740,490],{"class":481},[234,1742,1743],{"class":248},"\"Hi! Has my order shipped?\"\n",[234,1745,1746],{"class":236,"line":269},[234,1747,545],{"class":481},[646,1749,1751,1764,1834],{"title":1750},"Text with a link",[197,1752,1753,1756,1757,1760,1761,326],{},[51,1754,1755],{},"messageType: \"extendedTextMessage\""," — when the text carries a link, WhatsApp attaches the page preview and the node changes from ",[51,1758,1759],{},"conversation"," to ",[51,1762,1763],{},"extendedTextMessage",[225,1765,1767],{"className":472,"code":1766,"language":474,"meta":230,"style":230},"{\n  \"extendedTextMessage\": {\n    \"text\": \"Found this one: https:\u002F\u002Fexample.com\u002Fproduct\u002F42\",\n    \"matchedText\": \"https:\u002F\u002Fexample.com\u002Fproduct\u002F42\",\n    \"title\": \"Ergonomic Chair — Example\",\n    \"description\": \"Adjustable lumbar support, free shipping.\"\n  }\n}\n",[51,1768,1769,1773,1780,1792,1804,1816,1826,1830],{"__ignoreMap":230},[234,1770,1771],{"class":236,"line":237},[234,1772,482],{"class":481},[234,1774,1775,1778],{"class":236,"line":258},[234,1776,1777],{"class":244},"  \"extendedTextMessage\"",[234,1779,683],{"class":481},[234,1781,1782,1785,1787,1790],{"class":236,"line":269},[234,1783,1784],{"class":244},"    \"text\"",[234,1786,490],{"class":481},[234,1788,1789],{"class":248},"\"Found this one: https:\u002F\u002Fexample.com\u002Fproduct\u002F42\"",[234,1791,496],{"class":481},[234,1793,1794,1797,1799,1802],{"class":236,"line":279},[234,1795,1796],{"class":244},"    \"matchedText\"",[234,1798,490],{"class":481},[234,1800,1801],{"class":248},"\"https:\u002F\u002Fexample.com\u002Fproduct\u002F42\"",[234,1803,496],{"class":481},[234,1805,1806,1809,1811,1814],{"class":236,"line":288},[234,1807,1808],{"class":244},"    \"title\"",[234,1810,490],{"class":481},[234,1812,1813],{"class":248},"\"Ergonomic Chair — Example\"",[234,1815,496],{"class":481},[234,1817,1818,1821,1823],{"class":236,"line":294},[234,1819,1820],{"class":244},"    \"description\"",[234,1822,490],{"class":481},[234,1824,1825],{"class":248},"\"Adjustable lumbar support, free shipping.\"\n",[234,1827,1828],{"class":236,"line":300},[234,1829,1184],{"class":481},[234,1831,1832],{"class":236,"line":306},[234,1833,545],{"class":481},[617,1835,1836],{},[197,1837,1838,1839,1842,1843,1846],{},"If you just want the message text, read ",[51,1840,1841],{},"message.conversation ?? message.extendedTextMessage?.text",". ",[207,1844,1845],{},"A text message can arrive in either node"," — it depends on whether it has a link, a quote, or a mention.",[646,1848,1850,1864,1968],{"title":1849},"Reply (quote)",[197,1851,1852,1853,624,1855,1857,1858,1863],{},"When the contact replies to a message, the text arrives in ",[51,1854,1763],{},[51,1856,896],{}," — ",[207,1859,1860,1861],{},"at the root of ",[51,1862,468],{},", not inside the node — points at the quoted message.",[225,1865,1867],{"className":472,"code":1866,"language":474,"meta":230,"style":230},"{\n  \"messageType\": \"extendedTextMessage\",\n  \"message\": {\n    \"extendedTextMessage\": { \"text\": \"Yes, please send it!\" }\n  },\n  \"contextInfo\": {\n    \"stanzaId\": \"3EB0F1A2B3C4D5E6F708\",\n    \"participant\": \"5511888887777@s.whatsapp.net\",\n    \"quotedMessage\": {\n      \"conversation\": \"Can I ship today to the old address?\"\n    }\n  }\n}\n",[51,1868,1869,1873,1884,1890,1907,1911,1917,1928,1939,1946,1956,1960,1964],{"__ignoreMap":230},[234,1870,1871],{"class":236,"line":237},[234,1872,482],{"class":481},[234,1874,1875,1877,1879,1882],{"class":236,"line":258},[234,1876,750],{"class":244},[234,1878,490],{"class":481},[234,1880,1881],{"class":248},"\"extendedTextMessage\"",[234,1883,496],{"class":481},[234,1885,1886,1888],{"class":236,"line":269},[234,1887,763],{"class":244},[234,1889,683],{"class":481},[234,1891,1892,1895,1897,1900,1902,1905],{"class":236,"line":279},[234,1893,1894],{"class":244},"    \"extendedTextMessage\"",[234,1896,766],{"class":481},[234,1898,1899],{"class":244},"\"text\"",[234,1901,490],{"class":481},[234,1903,1904],{"class":248},"\"Yes, please send it!\"",[234,1906,1662],{"class":481},[234,1908,1909],{"class":236,"line":288},[234,1910,721],{"class":481},[234,1912,1913,1915],{"class":236,"line":294},[234,1914,782],{"class":244},[234,1916,683],{"class":481},[234,1918,1919,1922,1924,1926],{"class":236,"line":300},[234,1920,1921],{"class":244},"    \"stanzaId\"",[234,1923,490],{"class":481},[234,1925,1275],{"class":248},[234,1927,496],{"class":481},[234,1929,1930,1933,1935,1937],{"class":236,"line":306},[234,1931,1932],{"class":244},"    \"participant\"",[234,1934,490],{"class":481},[234,1936,530],{"class":248},[234,1938,496],{"class":481},[234,1940,1941,1944],{"class":236,"line":312},[234,1942,1943],{"class":244},"    \"quotedMessage\"",[234,1945,683],{"class":481},[234,1947,1948,1951,1953],{"class":236,"line":760},[234,1949,1950],{"class":244},"      \"conversation\"",[234,1952,490],{"class":481},[234,1954,1955],{"class":248},"\"Can I ship today to the old address?\"\n",[234,1957,1958],{"class":236,"line":779},[234,1959,1436],{"class":481},[234,1961,1962],{"class":236,"line":792},[234,1963,1184],{"class":481},[234,1965,1966],{"class":236,"line":805},[234,1967,545],{"class":481},[197,1969,1970,1320,1973,1976],{},[51,1971,1972],{},"stanzaId",[207,1974,1975],{},"wamid of the quoted message"," — that is how you tie the answer back to the question.",[646,1978,1980,1989,2119],{"title":1979},"Image",[197,1981,1982,1985,1986,326],{},[51,1983,1984],{},"messageType: \"imageMessage\"",". The caption, when there is one, arrives in ",[51,1987,1988],{},"caption",[225,1990,1992],{"className":472,"code":1991,"language":474,"meta":230,"style":230},"{\n  \"imageMessage\": {\n    \"url\": \"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7118-24\u002F...\",\n    \"mimetype\": \"image\u002Fjpeg\",\n    \"caption\": \"Here is the receipt\",\n    \"fileLength\": 187432,\n    \"height\": 1280,\n    \"width\": 960,\n    \"directPath\": \"\u002Fv\u002Ft62.7118-24\u002F...\",\n    \"mediaKeyTimestamp\": 1773494400,\n    \"downloadMediaUrl\": \"https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fconnections\u002Fmedia\u002FeyJjIjoiMDE5NWYzYTAt...\u002Fdownload?token=1789012345.9f3a1c7e\"\n  }\n}\n",[51,1993,1994,1998,2005,2017,2029,2041,2053,2065,2077,2089,2101,2111,2115],{"__ignoreMap":230},[234,1995,1996],{"class":236,"line":237},[234,1997,482],{"class":481},[234,1999,2000,2003],{"class":236,"line":258},[234,2001,2002],{"class":244},"  \"imageMessage\"",[234,2004,683],{"class":481},[234,2006,2007,2010,2012,2015],{"class":236,"line":269},[234,2008,2009],{"class":244},"    \"url\"",[234,2011,490],{"class":481},[234,2013,2014],{"class":248},"\"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7118-24\u002F...\"",[234,2016,496],{"class":481},[234,2018,2019,2022,2024,2027],{"class":236,"line":279},[234,2020,2021],{"class":244},"    \"mimetype\"",[234,2023,490],{"class":481},[234,2025,2026],{"class":248},"\"image\u002Fjpeg\"",[234,2028,496],{"class":481},[234,2030,2031,2034,2036,2039],{"class":236,"line":288},[234,2032,2033],{"class":244},"    \"caption\"",[234,2035,490],{"class":481},[234,2037,2038],{"class":248},"\"Here is the receipt\"",[234,2040,496],{"class":481},[234,2042,2043,2046,2048,2051],{"class":236,"line":294},[234,2044,2045],{"class":244},"    \"fileLength\"",[234,2047,490],{"class":481},[234,2049,2050],{"class":244},"187432",[234,2052,496],{"class":481},[234,2054,2055,2058,2060,2063],{"class":236,"line":300},[234,2056,2057],{"class":244},"    \"height\"",[234,2059,490],{"class":481},[234,2061,2062],{"class":244},"1280",[234,2064,496],{"class":481},[234,2066,2067,2070,2072,2075],{"class":236,"line":306},[234,2068,2069],{"class":244},"    \"width\"",[234,2071,490],{"class":481},[234,2073,2074],{"class":244},"960",[234,2076,496],{"class":481},[234,2078,2079,2082,2084,2087],{"class":236,"line":312},[234,2080,2081],{"class":244},"    \"directPath\"",[234,2083,490],{"class":481},[234,2085,2086],{"class":248},"\"\u002Fv\u002Ft62.7118-24\u002F...\"",[234,2088,496],{"class":481},[234,2090,2091,2094,2096,2099],{"class":236,"line":760},[234,2092,2093],{"class":244},"    \"mediaKeyTimestamp\"",[234,2095,490],{"class":481},[234,2097,2098],{"class":244},"1773494400",[234,2100,496],{"class":481},[234,2102,2103,2106,2108],{"class":236,"line":779},[234,2104,2105],{"class":244},"    \"downloadMediaUrl\"",[234,2107,490],{"class":481},[234,2109,2110],{"class":248},"\"https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fconnections\u002Fmedia\u002FeyJjIjoiMDE5NWYzYTAt...\u002Fdownload?token=1789012345.9f3a1c7e\"\n",[234,2112,2113],{"class":236,"line":792},[234,2114,1184],{"class":481},[234,2116,2117],{"class":236,"line":805},[234,2118,545],{"class":481},[197,2120,2121,2122,1553,2125,1842,2128,2130],{},"Use ",[51,2123,2124],{},"downloadMediaUrl",[51,2126,2127],{},"url",[51,2129,2127],{}," is WhatsApp's encrypted blob and you could not decrypt it on your own.",[646,2132,2134,2143],{"title":2133},"Video",[197,2135,2136,1842,2139,2142],{},[51,2137,2138],{},"messageType: \"videoMessage\"",[51,2140,2141],{},"seconds"," is the duration.",[225,2144,2146],{"className":472,"code":2145,"language":474,"meta":230,"style":230},"{\n  \"videoMessage\": {\n    \"url\": \"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7161-24\u002F...\",\n    \"mimetype\": \"video\u002Fmp4\",\n    \"caption\": \"Listen to the noise it is making\",\n    \"fileLength\": 2847193,\n    \"seconds\": 14,\n    \"height\": 848,\n    \"width\": 480,\n    \"directPath\": \"\u002Fv\u002Ft62.7161-24\u002F...\",\n    \"mediaKeyTimestamp\": 1773494400,\n    \"downloadMediaUrl\": \"https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fconnections\u002Fmedia\u002FeyJjIjoiMDE5NWYzYTAt...\u002Fdownload?token=1789012345.9f3a1c7e\"\n  }\n}\n",[51,2147,2148,2152,2159,2170,2181,2192,2203,2215,2226,2237,2248,2258,2266,2270],{"__ignoreMap":230},[234,2149,2150],{"class":236,"line":237},[234,2151,482],{"class":481},[234,2153,2154,2157],{"class":236,"line":258},[234,2155,2156],{"class":244},"  \"videoMessage\"",[234,2158,683],{"class":481},[234,2160,2161,2163,2165,2168],{"class":236,"line":269},[234,2162,2009],{"class":244},[234,2164,490],{"class":481},[234,2166,2167],{"class":248},"\"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7161-24\u002F...\"",[234,2169,496],{"class":481},[234,2171,2172,2174,2176,2179],{"class":236,"line":279},[234,2173,2021],{"class":244},[234,2175,490],{"class":481},[234,2177,2178],{"class":248},"\"video\u002Fmp4\"",[234,2180,496],{"class":481},[234,2182,2183,2185,2187,2190],{"class":236,"line":288},[234,2184,2033],{"class":244},[234,2186,490],{"class":481},[234,2188,2189],{"class":248},"\"Listen to the noise it is making\"",[234,2191,496],{"class":481},[234,2193,2194,2196,2198,2201],{"class":236,"line":294},[234,2195,2045],{"class":244},[234,2197,490],{"class":481},[234,2199,2200],{"class":244},"2847193",[234,2202,496],{"class":481},[234,2204,2205,2208,2210,2213],{"class":236,"line":300},[234,2206,2207],{"class":244},"    \"seconds\"",[234,2209,490],{"class":481},[234,2211,2212],{"class":244},"14",[234,2214,496],{"class":481},[234,2216,2217,2219,2221,2224],{"class":236,"line":306},[234,2218,2057],{"class":244},[234,2220,490],{"class":481},[234,2222,2223],{"class":244},"848",[234,2225,496],{"class":481},[234,2227,2228,2230,2232,2235],{"class":236,"line":312},[234,2229,2069],{"class":244},[234,2231,490],{"class":481},[234,2233,2234],{"class":244},"480",[234,2236,496],{"class":481},[234,2238,2239,2241,2243,2246],{"class":236,"line":760},[234,2240,2081],{"class":244},[234,2242,490],{"class":481},[234,2244,2245],{"class":248},"\"\u002Fv\u002Ft62.7161-24\u002F...\"",[234,2247,496],{"class":481},[234,2249,2250,2252,2254,2256],{"class":236,"line":779},[234,2251,2093],{"class":244},[234,2253,490],{"class":481},[234,2255,2098],{"class":244},[234,2257,496],{"class":481},[234,2259,2260,2262,2264],{"class":236,"line":792},[234,2261,2105],{"class":244},[234,2263,490],{"class":481},[234,2265,2110],{"class":248},[234,2267,2268],{"class":236,"line":805},[234,2269,1184],{"class":481},[234,2271,2272],{"class":236,"line":816},[234,2273,545],{"class":481},[646,2275,2277,2289,2397],{"title":2276},"Voice note",[197,2278,2279,2282,2283,2288],{},[51,2280,2281],{},"messageType: \"audioMessage\""," with ",[207,2284,2285],{},[51,2286,2287],{},"ptt: true",". The one recorded by holding the microphone.",[225,2290,2292],{"className":472,"code":2291,"language":474,"meta":230,"style":230},"{\n  \"audioMessage\": {\n    \"url\": \"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7117-24\u002F...\",\n    \"mimetype\": \"audio\u002Fogg; codecs=opus\",\n    \"fileLength\": 8432,\n    \"seconds\": 7,\n    \"ptt\": true,\n    \"directPath\": \"\u002Fv\u002Ft62.7117-24\u002F...\",\n    \"mediaKeyTimestamp\": 1773494400,\n    \"downloadMediaUrl\": \"https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fconnections\u002Fmedia\u002FeyJjIjoiMDE5NWYzYTAt...\u002Fdownload?token=1789012345.9f3a1c7e\"\n  }\n}\n",[51,2293,2294,2298,2305,2316,2327,2338,2349,2360,2371,2381,2389,2393],{"__ignoreMap":230},[234,2295,2296],{"class":236,"line":237},[234,2297,482],{"class":481},[234,2299,2300,2303],{"class":236,"line":258},[234,2301,2302],{"class":244},"  \"audioMessage\"",[234,2304,683],{"class":481},[234,2306,2307,2309,2311,2314],{"class":236,"line":269},[234,2308,2009],{"class":244},[234,2310,490],{"class":481},[234,2312,2313],{"class":248},"\"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7117-24\u002F...\"",[234,2315,496],{"class":481},[234,2317,2318,2320,2322,2325],{"class":236,"line":279},[234,2319,2021],{"class":244},[234,2321,490],{"class":481},[234,2323,2324],{"class":248},"\"audio\u002Fogg; codecs=opus\"",[234,2326,496],{"class":481},[234,2328,2329,2331,2333,2336],{"class":236,"line":288},[234,2330,2045],{"class":244},[234,2332,490],{"class":481},[234,2334,2335],{"class":244},"8432",[234,2337,496],{"class":481},[234,2339,2340,2342,2344,2347],{"class":236,"line":294},[234,2341,2207],{"class":244},[234,2343,490],{"class":481},[234,2345,2346],{"class":244},"7",[234,2348,496],{"class":481},[234,2350,2351,2354,2356,2358],{"class":236,"line":300},[234,2352,2353],{"class":244},"    \"ptt\"",[234,2355,490],{"class":481},[234,2357,937],{"class":244},[234,2359,496],{"class":481},[234,2361,2362,2364,2366,2369],{"class":236,"line":306},[234,2363,2081],{"class":244},[234,2365,490],{"class":481},[234,2367,2368],{"class":248},"\"\u002Fv\u002Ft62.7117-24\u002F...\"",[234,2370,496],{"class":481},[234,2372,2373,2375,2377,2379],{"class":236,"line":312},[234,2374,2093],{"class":244},[234,2376,490],{"class":481},[234,2378,2098],{"class":244},[234,2380,496],{"class":481},[234,2382,2383,2385,2387],{"class":236,"line":760},[234,2384,2105],{"class":244},[234,2386,490],{"class":481},[234,2388,2110],{"class":248},[234,2390,2391],{"class":236,"line":779},[234,2392,1184],{"class":481},[234,2394,2395],{"class":236,"line":792},[234,2396,545],{"class":481},[197,2398,2399,2405,2406,2409],{},[207,2400,2401,2404],{},[51,2402,2403],{},"ptt"," is what separates a voice note from a music file."," Both arrive as ",[51,2407,2408],{},"audioMessage","; only the flag tells them apart. If you transcribe audio, this is where you decide what is worth sending to the model.",[646,2411,2413,2423],{"title":2412},"Audio file",[197,2414,2415,2282,2417,2422],{},[51,2416,2281],{},[207,2418,2419],{},[51,2420,2421],{},"ptt: false"," — the contact attached an audio file instead of recording one.",[225,2424,2426],{"className":472,"code":2425,"language":474,"meta":230,"style":230},"{\n  \"audioMessage\": {\n    \"url\": \"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7114-24\u002F...\",\n    \"mimetype\": \"audio\u002Fmpeg\",\n    \"fileLength\": 3214567,\n    \"seconds\": 201,\n    \"ptt\": false,\n    \"directPath\": \"\u002Fv\u002Ft62.7114-24\u002F...\",\n    \"mediaKeyTimestamp\": 1773494400,\n    \"downloadMediaUrl\": \"https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fconnections\u002Fmedia\u002FeyJjIjoiMDE5NWYzYTAt...\u002Fdownload?token=1789012345.9f3a1c7e\"\n  }\n}\n",[51,2427,2428,2432,2438,2449,2460,2471,2482,2492,2503,2513,2521,2525],{"__ignoreMap":230},[234,2429,2430],{"class":236,"line":237},[234,2431,482],{"class":481},[234,2433,2434,2436],{"class":236,"line":258},[234,2435,2302],{"class":244},[234,2437,683],{"class":481},[234,2439,2440,2442,2444,2447],{"class":236,"line":269},[234,2441,2009],{"class":244},[234,2443,490],{"class":481},[234,2445,2446],{"class":248},"\"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7114-24\u002F...\"",[234,2448,496],{"class":481},[234,2450,2451,2453,2455,2458],{"class":236,"line":279},[234,2452,2021],{"class":244},[234,2454,490],{"class":481},[234,2456,2457],{"class":248},"\"audio\u002Fmpeg\"",[234,2459,496],{"class":481},[234,2461,2462,2464,2466,2469],{"class":236,"line":288},[234,2463,2045],{"class":244},[234,2465,490],{"class":481},[234,2467,2468],{"class":244},"3214567",[234,2470,496],{"class":481},[234,2472,2473,2475,2477,2480],{"class":236,"line":294},[234,2474,2207],{"class":244},[234,2476,490],{"class":481},[234,2478,2479],{"class":244},"201",[234,2481,496],{"class":481},[234,2483,2484,2486,2488,2490],{"class":236,"line":300},[234,2485,2353],{"class":244},[234,2487,490],{"class":481},[234,2489,704],{"class":244},[234,2491,496],{"class":481},[234,2493,2494,2496,2498,2501],{"class":236,"line":306},[234,2495,2081],{"class":244},[234,2497,490],{"class":481},[234,2499,2500],{"class":248},"\"\u002Fv\u002Ft62.7114-24\u002F...\"",[234,2502,496],{"class":481},[234,2504,2505,2507,2509,2511],{"class":236,"line":312},[234,2506,2093],{"class":244},[234,2508,490],{"class":481},[234,2510,2098],{"class":244},[234,2512,496],{"class":481},[234,2514,2515,2517,2519],{"class":236,"line":760},[234,2516,2105],{"class":244},[234,2518,490],{"class":481},[234,2520,2110],{"class":248},[234,2522,2523],{"class":236,"line":779},[234,2524,1184],{"class":481},[234,2526,2527],{"class":236,"line":792},[234,2528,545],{"class":481},[646,2530,2532,2545],{"title":2531},"Document",[197,2533,2534,1842,2537,2540,2541,2544],{},[51,2535,2536],{},"messageType: \"documentMessage\"",[51,2538,2539],{},"fileName"," is the original file name, and ",[51,2542,2543],{},"pageCount"," shows up on PDFs.",[225,2546,2548],{"className":472,"code":2547,"language":474,"meta":230,"style":230},"{\n  \"documentMessage\": {\n    \"url\": \"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7119-24\u002F...\",\n    \"mimetype\": \"application\u002Fpdf\",\n    \"fileName\": \"invoice-4821.pdf\",\n    \"caption\": \"My invoice\",\n    \"fileLength\": 94213,\n    \"pageCount\": 2,\n    \"directPath\": \"\u002Fv\u002Ft62.7119-24\u002F...\",\n    \"mediaKeyTimestamp\": 1773494400,\n    \"downloadMediaUrl\": \"https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fconnections\u002Fmedia\u002FeyJjIjoiMDE5NWYzYTAt...\u002Fdownload?token=1789012345.9f3a1c7e\"\n  }\n}\n",[51,2549,2550,2554,2561,2572,2583,2595,2606,2617,2629,2640,2650,2658,2662],{"__ignoreMap":230},[234,2551,2552],{"class":236,"line":237},[234,2553,482],{"class":481},[234,2555,2556,2559],{"class":236,"line":258},[234,2557,2558],{"class":244},"  \"documentMessage\"",[234,2560,683],{"class":481},[234,2562,2563,2565,2567,2570],{"class":236,"line":269},[234,2564,2009],{"class":244},[234,2566,490],{"class":481},[234,2568,2569],{"class":248},"\"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7119-24\u002F...\"",[234,2571,496],{"class":481},[234,2573,2574,2576,2578,2581],{"class":236,"line":279},[234,2575,2021],{"class":244},[234,2577,490],{"class":481},[234,2579,2580],{"class":248},"\"application\u002Fpdf\"",[234,2582,496],{"class":481},[234,2584,2585,2588,2590,2593],{"class":236,"line":288},[234,2586,2587],{"class":244},"    \"fileName\"",[234,2589,490],{"class":481},[234,2591,2592],{"class":248},"\"invoice-4821.pdf\"",[234,2594,496],{"class":481},[234,2596,2597,2599,2601,2604],{"class":236,"line":294},[234,2598,2033],{"class":244},[234,2600,490],{"class":481},[234,2602,2603],{"class":248},"\"My invoice\"",[234,2605,496],{"class":481},[234,2607,2608,2610,2612,2615],{"class":236,"line":300},[234,2609,2045],{"class":244},[234,2611,490],{"class":481},[234,2613,2614],{"class":244},"94213",[234,2616,496],{"class":481},[234,2618,2619,2622,2624,2627],{"class":236,"line":306},[234,2620,2621],{"class":244},"    \"pageCount\"",[234,2623,490],{"class":481},[234,2625,2626],{"class":244},"2",[234,2628,496],{"class":481},[234,2630,2631,2633,2635,2638],{"class":236,"line":312},[234,2632,2081],{"class":244},[234,2634,490],{"class":481},[234,2636,2637],{"class":248},"\"\u002Fv\u002Ft62.7119-24\u002F...\"",[234,2639,496],{"class":481},[234,2641,2642,2644,2646,2648],{"class":236,"line":760},[234,2643,2093],{"class":244},[234,2645,490],{"class":481},[234,2647,2098],{"class":244},[234,2649,496],{"class":481},[234,2651,2652,2654,2656],{"class":236,"line":779},[234,2653,2105],{"class":244},[234,2655,490],{"class":481},[234,2657,2110],{"class":248},[234,2659,2660],{"class":236,"line":792},[234,2661,1184],{"class":481},[234,2663,2664],{"class":236,"line":805},[234,2665,545],{"class":481},[646,2667,2669,2675],{"title":2668},"Sticker",[197,2670,2671,2674],{},[51,2672,2673],{},"messageType: \"stickerMessage\"",". Always WebP.",[225,2676,2678],{"className":472,"code":2677,"language":474,"meta":230,"style":230},"{\n  \"stickerMessage\": {\n    \"url\": \"https:\u002F\u002Fmmg.whatsapp.net\u002Fv\u002Ft62.7161-24\u002F...\",\n    \"mimetype\": \"image\u002Fwebp\",\n    \"fileLength\": 12874,\n    \"height\": 512,\n    \"width\": 512,\n    \"isAnimated\": false,\n    \"isAvatar\": false,\n    \"isAiSticker\": false,\n    \"isLottie\": false,\n    \"stickerSentTs\": 1773494400123,\n    \"directPath\": \"\u002Fv\u002Ft62.7161-24\u002F...\",\n    \"mediaKeyTimestamp\": 1773494400,\n    \"downloadMediaUrl\": \"https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fconnections\u002Fmedia\u002FeyJjIjoiMDE5NWYzYTAt...\u002Fdownload?token=1789012345.9f3a1c7e\"\n  }\n}\n",[51,2679,2680,2684,2691,2701,2712,2723,2734,2744,2755,2766,2777,2788,2800,2810,2820,2828,2832],{"__ignoreMap":230},[234,2681,2682],{"class":236,"line":237},[234,2683,482],{"class":481},[234,2685,2686,2689],{"class":236,"line":258},[234,2687,2688],{"class":244},"  \"stickerMessage\"",[234,2690,683],{"class":481},[234,2692,2693,2695,2697,2699],{"class":236,"line":269},[234,2694,2009],{"class":244},[234,2696,490],{"class":481},[234,2698,2167],{"class":248},[234,2700,496],{"class":481},[234,2702,2703,2705,2707,2710],{"class":236,"line":279},[234,2704,2021],{"class":244},[234,2706,490],{"class":481},[234,2708,2709],{"class":248},"\"image\u002Fwebp\"",[234,2711,496],{"class":481},[234,2713,2714,2716,2718,2721],{"class":236,"line":288},[234,2715,2045],{"class":244},[234,2717,490],{"class":481},[234,2719,2720],{"class":244},"12874",[234,2722,496],{"class":481},[234,2724,2725,2727,2729,2732],{"class":236,"line":294},[234,2726,2057],{"class":244},[234,2728,490],{"class":481},[234,2730,2731],{"class":244},"512",[234,2733,496],{"class":481},[234,2735,2736,2738,2740,2742],{"class":236,"line":300},[234,2737,2069],{"class":244},[234,2739,490],{"class":481},[234,2741,2731],{"class":244},[234,2743,496],{"class":481},[234,2745,2746,2749,2751,2753],{"class":236,"line":306},[234,2747,2748],{"class":244},"    \"isAnimated\"",[234,2750,490],{"class":481},[234,2752,704],{"class":244},[234,2754,496],{"class":481},[234,2756,2757,2760,2762,2764],{"class":236,"line":312},[234,2758,2759],{"class":244},"    \"isAvatar\"",[234,2761,490],{"class":481},[234,2763,704],{"class":244},[234,2765,496],{"class":481},[234,2767,2768,2771,2773,2775],{"class":236,"line":760},[234,2769,2770],{"class":244},"    \"isAiSticker\"",[234,2772,490],{"class":481},[234,2774,704],{"class":244},[234,2776,496],{"class":481},[234,2778,2779,2782,2784,2786],{"class":236,"line":779},[234,2780,2781],{"class":244},"    \"isLottie\"",[234,2783,490],{"class":481},[234,2785,704],{"class":244},[234,2787,496],{"class":481},[234,2789,2790,2793,2795,2798],{"class":236,"line":792},[234,2791,2792],{"class":244},"    \"stickerSentTs\"",[234,2794,490],{"class":481},[234,2796,2797],{"class":244},"1773494400123",[234,2799,496],{"class":481},[234,2801,2802,2804,2806,2808],{"class":236,"line":805},[234,2803,2081],{"class":244},[234,2805,490],{"class":481},[234,2807,2245],{"class":248},[234,2809,496],{"class":481},[234,2811,2812,2814,2816,2818],{"class":236,"line":816},[234,2813,2093],{"class":244},[234,2815,490],{"class":481},[234,2817,2098],{"class":244},[234,2819,496],{"class":481},[234,2821,2822,2824,2826],{"class":236,"line":1129},[234,2823,2105],{"class":244},[234,2825,490],{"class":481},[234,2827,2110],{"class":248},[234,2829,2830],{"class":236,"line":1146},[234,2831,1184],{"class":481},[234,2833,2834],{"class":236,"line":1158},[234,2835,545],{"class":481},[646,2837,2839,2845,2895],{"title":2838},"Reaction",[197,2840,2841,2844],{},[51,2842,2843],{},"messageType: \"reactionMessage\""," — the contact reacted to an existing message with an emoji.",[225,2846,2848],{"className":472,"code":2847,"language":474,"meta":230,"style":230},"{\n  \"reactionMessage\": {\n    \"text\": \"👍\",\n    \"key\": { \"id\": \"3EB0F1A2B3C4D5E6F708\" }\n  }\n}\n",[51,2849,2850,2854,2861,2872,2887,2891],{"__ignoreMap":230},[234,2851,2852],{"class":236,"line":237},[234,2853,482],{"class":481},[234,2855,2856,2859],{"class":236,"line":258},[234,2857,2858],{"class":244},"  \"reactionMessage\"",[234,2860,683],{"class":481},[234,2862,2863,2865,2867,2870],{"class":236,"line":269},[234,2864,1784],{"class":244},[234,2866,490],{"class":481},[234,2868,2869],{"class":248},"\"👍\"",[234,2871,496],{"class":481},[234,2873,2874,2876,2878,2881,2883,2885],{"class":236,"line":279},[234,2875,1052],{"class":244},[234,2877,766],{"class":481},[234,2879,2880],{"class":244},"\"id\"",[234,2882,490],{"class":481},[234,2884,1275],{"class":248},[234,2886,1662],{"class":481},[234,2888,2889],{"class":236,"line":288},[234,2890,1184],{"class":481},[234,2892,2893],{"class":236,"line":294},[234,2894,545],{"class":481},[197,2896,2897,2899,2900,2903,2904,326],{},[51,2898,837],{}," is the wamid of the ",[207,2901,2902],{},"message that received the reaction",", not of the reaction itself. A removed reaction arrives with an empty ",[51,2905,2906],{},"text",[442,2908,2909,2929,2966],{},[197,2910,2911,1710,2914,2916,2917,2919,2920,2922,2923,326],{},[207,2912,2913],{},"Not every message type has a payload today.",[51,2915,666],{}," is filtered through a fixed list of known nodes, and anything outside it is dropped — the event still arrives, ",[51,2918,662],{}," still names the right type, but ",[51,2921,666],{}," comes through as an ",[207,2924,2925,2926],{},"empty ",[51,2927,2928],{},"{}",[197,2930,2931,2932,2935,2936,2939,2940,2935,2943,2939,2946,2935,2949,2939,2952,2935,2955,2958,2959,2935,2962,2965],{},"This affects: ",[207,2933,2934],{},"button replies"," (",[51,2937,2938],{},"buttonsResponseMessage","), ",[207,2941,2942],{},"list choices",[51,2944,2945],{},"listResponseMessage",[207,2947,2948],{},"location",[51,2950,2951],{},"locationMessage",[207,2953,2954],{},"contact cards",[51,2956,2957],{},"contactMessage",") and ",[207,2960,2961],{},"polls",[51,2963,2964],{},"pollCreationMessage",").",[197,2967,2968,2969,916,2972,2975,2976,2978],{},"In practice: if you send buttons with ",[51,2970,2971],{},"POST \u002Fchats\u002Fmessages\u002Fsend-button",[207,2973,2974],{},"the webhook will not tell you which button the contact tapped",". Until that changes, handle these types by reading ",[51,2977,662],{}," and fetch the content from the conversation history.",[328,2980,2982],{"id":2981},"getting-the-media","Getting the media",[197,2984,2985,2986,2990,2991,2994],{},"You never have to talk to WhatsApp to fetch an attachment. Any media message carries a ready-to-use ",[207,2987,2988],{},[51,2989,2124],{}," — a signed link, valid for ",[207,2992,2993],{},"7 days",", that streams the raw bytes from Pingo:",[225,2996,2998],{"className":227,"code":2997,"language":229,"meta":230,"style":230},"curl -L \"\u003CdownloadMediaUrl>\" -o receipt.jpg\n",[51,2999,3000],{"__ignoreMap":230},[234,3001,3002,3004,3007,3010,3013],{"class":236,"line":237},[234,3003,241],{"class":240},[234,3005,3006],{"class":244}," -L",[234,3008,3009],{"class":248}," \"\u003CdownloadMediaUrl>\"",[234,3011,3012],{"class":244}," -o",[234,3014,3015],{"class":248}," receipt.jpg\n",[197,3017,3018,3019,3022],{},"The signature is inside the URL, so this needs no ",[51,3020,3021],{},"apikey"," — which is what lets your webhook consumer fetch it directly, without holding a Pingo credential.",[617,3024,3025],{},[197,3026,3027,3029,3030,3033,3034,3037],{},[51,3028,2124],{}," is only attached when the media is referenceable. On an ",[207,3031,3032],{},"official"," connection that depends on Meta having returned a ",[51,3035,3036],{},"media_id","; without one the field simply is not there. Always test for it before using it.",[328,3039,3041],{"id":3040},"batching","Batching",[197,3043,3044,3045,3048,3049,3052],{},"Set ",[51,3046,3047],{},"messageGroupDelay"," (1–300 seconds) and Pingo will hold a contact's messages for that long and deliver them as ",[207,3050,3051],{},"one array"," instead of one request each. Useful when people send five messages in a row and you would rather reason about all of them at once.",[197,3054,3055,3056,3058,3059,3062],{},"The envelope is the same — what changes is that ",[51,3057,468],{}," becomes a ",[207,3060,3061],{},"list"," of the very objects you would otherwise have received one by one:",[225,3064,3066],{"className":472,"code":3065,"language":474,"meta":230,"style":230},"{\n  \"event\": \"messages.upsert\",\n  \"connectionId\": \"0195f3a0-1234-7890-abcd-ef0123456789\",\n  \"remoteJid\": \"5511999998888@s.whatsapp.net\",\n  \"sender\": \"5511888887777@s.whatsapp.net\",\n  \"data\": [\n    {\n      \"key\": { \"remoteJid\": \"5511999998888@s.whatsapp.net\", \"fromMe\": false, \"id\": \"3EB0AAA\" },\n      \"pushName\": \"Ana\",\n      \"status\": \"DELIVERY_ACK\",\n      \"messageType\": \"conversation\",\n      \"message\": { \"conversation\": \"Hi!\" },\n      \"contextInfo\": null,\n      \"source\": \"android\",\n      \"isAiMessage\": false\n    },\n    {\n      \"key\": { \"remoteJid\": \"5511999998888@s.whatsapp.net\", \"fromMe\": false, \"id\": \"3EB0BBB\" },\n      \"pushName\": \"Ana\",\n      \"status\": \"DELIVERY_ACK\",\n      \"messageType\": \"conversation\",\n      \"message\": { \"conversation\": \"forgot to say: after 6pm works better\" },\n      \"contextInfo\": null,\n      \"source\": \"android\",\n      \"isAiMessage\": false\n    }\n  ]\n}\n",[51,3067,3068,3072,3082,3092,3102,3112,3119,3124,3158,3169,3180,3191,3207,3218,3229,3238,3242,3246,3277,3287,3297,3308,3324,3335,3345,3354,3359,3365],{"__ignoreMap":230},[234,3069,3070],{"class":236,"line":237},[234,3071,482],{"class":481},[234,3073,3074,3076,3078,3080],{"class":236,"line":258},[234,3075,487],{"class":244},[234,3077,490],{"class":481},[234,3079,493],{"class":248},[234,3081,496],{"class":481},[234,3083,3084,3086,3088,3090],{"class":236,"line":269},[234,3085,501],{"class":244},[234,3087,490],{"class":481},[234,3089,506],{"class":248},[234,3091,496],{"class":481},[234,3093,3094,3096,3098,3100],{"class":236,"line":279},[234,3095,513],{"class":244},[234,3097,490],{"class":481},[234,3099,518],{"class":248},[234,3101,496],{"class":481},[234,3103,3104,3106,3108,3110],{"class":236,"line":288},[234,3105,525],{"class":244},[234,3107,490],{"class":481},[234,3109,530],{"class":248},[234,3111,496],{"class":481},[234,3113,3114,3116],{"class":236,"line":294},[234,3115,537],{"class":244},[234,3117,3118],{"class":481},": [\n",[234,3120,3121],{"class":236,"line":300},[234,3122,3123],{"class":481},"    {\n",[234,3125,3126,3129,3131,3134,3136,3138,3140,3143,3145,3147,3149,3151,3153,3156],{"class":236,"line":306},[234,3127,3128],{"class":244},"      \"key\"",[234,3130,766],{"class":481},[234,3132,3133],{"class":244},"\"remoteJid\"",[234,3135,490],{"class":481},[234,3137,518],{"class":248},[234,3139,916],{"class":481},[234,3141,3142],{"class":244},"\"fromMe\"",[234,3144,490],{"class":481},[234,3146,704],{"class":244},[234,3148,916],{"class":481},[234,3150,2880],{"class":244},[234,3152,490],{"class":481},[234,3154,3155],{"class":248},"\"3EB0AAA\"",[234,3157,776],{"class":481},[234,3159,3160,3163,3165,3167],{"class":236,"line":312},[234,3161,3162],{"class":244},"      \"pushName\"",[234,3164,490],{"class":481},[234,3166,731],{"class":248},[234,3168,496],{"class":481},[234,3170,3171,3174,3176,3178],{"class":236,"line":760},[234,3172,3173],{"class":244},"      \"status\"",[234,3175,490],{"class":481},[234,3177,743],{"class":248},[234,3179,496],{"class":481},[234,3181,3182,3185,3187,3189],{"class":236,"line":779},[234,3183,3184],{"class":244},"      \"messageType\"",[234,3186,490],{"class":481},[234,3188,755],{"class":248},[234,3190,496],{"class":481},[234,3192,3193,3196,3198,3200,3202,3205],{"class":236,"line":792},[234,3194,3195],{"class":244},"      \"message\"",[234,3197,766],{"class":481},[234,3199,755],{"class":244},[234,3201,490],{"class":481},[234,3203,3204],{"class":248},"\"Hi!\"",[234,3206,776],{"class":481},[234,3208,3209,3212,3214,3216],{"class":236,"line":805},[234,3210,3211],{"class":244},"      \"contextInfo\"",[234,3213,490],{"class":481},[234,3215,787],{"class":244},[234,3217,496],{"class":481},[234,3219,3220,3223,3225,3227],{"class":236,"line":816},[234,3221,3222],{"class":244},"      \"source\"",[234,3224,490],{"class":481},[234,3226,800],{"class":248},[234,3228,496],{"class":481},[234,3230,3231,3234,3236],{"class":236,"line":1129},[234,3232,3233],{"class":244},"      \"isAiMessage\"",[234,3235,490],{"class":481},[234,3237,813],{"class":244},[234,3239,3240],{"class":236,"line":1146},[234,3241,1091],{"class":481},[234,3243,3244],{"class":236,"line":1158},[234,3245,3123],{"class":481},[234,3247,3248,3250,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3275],{"class":236,"line":1171},[234,3249,3128],{"class":244},[234,3251,766],{"class":481},[234,3253,3133],{"class":244},[234,3255,490],{"class":481},[234,3257,518],{"class":248},[234,3259,916],{"class":481},[234,3261,3142],{"class":244},[234,3263,490],{"class":481},[234,3265,704],{"class":244},[234,3267,916],{"class":481},[234,3269,2880],{"class":244},[234,3271,490],{"class":481},[234,3273,3274],{"class":248},"\"3EB0BBB\"",[234,3276,776],{"class":481},[234,3278,3279,3281,3283,3285],{"class":236,"line":1181},[234,3280,3162],{"class":244},[234,3282,490],{"class":481},[234,3284,731],{"class":248},[234,3286,496],{"class":481},[234,3288,3289,3291,3293,3295],{"class":236,"line":1187},[234,3290,3173],{"class":244},[234,3292,490],{"class":481},[234,3294,743],{"class":248},[234,3296,496],{"class":481},[234,3298,3300,3302,3304,3306],{"class":236,"line":3299},21,[234,3301,3184],{"class":244},[234,3303,490],{"class":481},[234,3305,755],{"class":248},[234,3307,496],{"class":481},[234,3309,3311,3313,3315,3317,3319,3322],{"class":236,"line":3310},22,[234,3312,3195],{"class":244},[234,3314,766],{"class":481},[234,3316,755],{"class":244},[234,3318,490],{"class":481},[234,3320,3321],{"class":248},"\"forgot to say: after 6pm works better\"",[234,3323,776],{"class":481},[234,3325,3327,3329,3331,3333],{"class":236,"line":3326},23,[234,3328,3211],{"class":244},[234,3330,490],{"class":481},[234,3332,787],{"class":244},[234,3334,496],{"class":481},[234,3336,3337,3339,3341,3343],{"class":236,"line":144},[234,3338,3222],{"class":244},[234,3340,490],{"class":481},[234,3342,800],{"class":248},[234,3344,496],{"class":481},[234,3346,3348,3350,3352],{"class":236,"line":3347},25,[234,3349,3233],{"class":244},[234,3351,490],{"class":481},[234,3353,813],{"class":244},[234,3355,3357],{"class":236,"line":3356},26,[234,3358,1436],{"class":481},[234,3360,3362],{"class":236,"line":3361},27,[234,3363,3364],{"class":481},"  ]\n",[234,3366,3368],{"class":236,"line":3367},28,[234,3369,545],{"class":481},[442,3371,3372],{},[197,3373,3374,3375,3377,3378,3383,3384,326],{},"With ",[51,3376,3047],{}," on, ",[207,3379,3380,3382],{},[51,3381,468],{}," is an array"," — not an object. A handler written for the simple case breaks silently the moment batching is enabled. Handle both with ",[51,3385,3386],{},"const messages = Array.isArray(body.data) ? body.data : [body.data]",[197,3388,3389,3390,3393],{},"Turn on ",[51,3391,3392],{},"enableSimulateTyping"," too and Pingo shows \"typing…\" to the contact while the batching window runs — the wait starts reading as deliberate rather than slow.",[328,3395,3397],{"id":3396},"verifying-the-signature","Verifying the signature",[197,3399,3044,3400,3403],{},[51,3401,3402],{},"hmacEnabled: true"," and every delivery is signed. Read the secret back once, and store it:",[225,3405,3407],{"className":227,"code":3406,"language":229,"meta":230,"style":230},"curl https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fwebhooks\u002F{id}\u002Fsecret \\\n  -H \"apikey: sk_live_...\"\n",[51,3408,3409,3418],{"__ignoreMap":230},[234,3410,3411,3413,3416],{"class":236,"line":237},[234,3412,241],{"class":240},[234,3414,3415],{"class":248}," https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fwebhooks\u002F{id}\u002Fsecret",[234,3417,255],{"class":244},[234,3419,3420,3422],{"class":236,"line":258},[234,3421,261],{"class":244},[234,3423,3424],{"class":248}," \"apikey: sk_live_...\"\n",[197,3426,3427],{},"Each request then carries two headers:",[340,3429,3430,3440],{},[343,3431,3432],{},[346,3433,3434,3437],{},[349,3435,3436],{},"Header",[349,3438,3439],{},"Value",[356,3441,3442,3455],{},[346,3443,3444,3449],{},[361,3445,3446],{},[51,3447,3448],{},"X-Pingo-Signature-256",[361,3450,3451,3454],{},[51,3452,3453],{},"sha256="," followed by the hex HMAC-SHA256",[346,3456,3457,3462],{},[361,3458,3459],{},[51,3460,3461],{},"X-Pingo-Timestamp",[361,3463,3464],{},"Unix seconds",[197,3466,3467,3468,3471],{},"The signature is computed over the timestamp and the ",[207,3469,3470],{},"raw body",", joined by a dot — the timestamp is inside the signed material precisely so an old, valid delivery cannot be replayed at you later.",[225,3473,3477],{"className":3474,"code":3476,"language":2906},[3475],"language-text","signature = \"sha256=\" + HMAC_SHA256(`${timestamp}.${rawBody}`, signingSecret).hex()\n",[51,3478,3476],{"__ignoreMap":230},[442,3480,3481],{},[197,3482,3483,3484,3487],{},"Verify against the ",[207,3485,3486],{},"raw request body",", exactly as it arrived. If your framework parses the JSON and you re-serialize it to check, key order or whitespace can differ and the signature will not match.",[225,3489,3493],{"className":3490,"code":3491,"language":3492,"meta":230,"style":230},"language-js shiki shiki-themes github-light github-dark","import { createHmac, timingSafeEqual } from 'node:crypto';\n\nfunction verify(rawBody, headers, secret) {\n  const timestamp = headers['x-pingo-timestamp'];\n  const received  = headers['x-pingo-signature-256'];\n\n  \u002F\u002F Reject anything older than five minutes.\n  if (Math.abs(Date.now() \u002F 1000 - Number(timestamp)) > 300) return false;\n\n  const expected = 'sha256=' + createHmac('sha256', secret)\n    .update(`${timestamp}.${rawBody}`)\n    .digest('hex');\n\n  const a = Buffer.from(expected);\n  const b = Buffer.from(received ?? '');\n  return a.length === b.length && timingSafeEqual(a, b);\n}\n","js",[51,3494,3495,3513,3519,3547,3567,3584,3588,3594,3646,3650,3676,3703,3718,3722,3739,3763,3791],{"__ignoreMap":230},[234,3496,3497,3501,3504,3507,3510],{"class":236,"line":237},[234,3498,3500],{"class":3499},"szBVR","import",[234,3502,3503],{"class":481}," { createHmac, timingSafeEqual } ",[234,3505,3506],{"class":3499},"from",[234,3508,3509],{"class":248}," 'node:crypto'",[234,3511,3512],{"class":481},";\n",[234,3514,3515],{"class":236,"line":258},[234,3516,3518],{"emptyLinePlaceholder":3517},true,"\n",[234,3520,3521,3524,3527,3530,3534,3536,3539,3541,3544],{"class":236,"line":269},[234,3522,3523],{"class":3499},"function",[234,3525,3526],{"class":240}," verify",[234,3528,3529],{"class":481},"(",[234,3531,3533],{"class":3532},"s4XuR","rawBody",[234,3535,916],{"class":481},[234,3537,3538],{"class":3532},"headers",[234,3540,916],{"class":481},[234,3542,3543],{"class":3532},"secret",[234,3545,3546],{"class":481},") {\n",[234,3548,3549,3552,3555,3558,3561,3564],{"class":236,"line":279},[234,3550,3551],{"class":3499},"  const",[234,3553,3554],{"class":244}," timestamp",[234,3556,3557],{"class":3499}," =",[234,3559,3560],{"class":481}," headers[",[234,3562,3563],{"class":248},"'x-pingo-timestamp'",[234,3565,3566],{"class":481},"];\n",[234,3568,3569,3571,3574,3577,3579,3582],{"class":236,"line":288},[234,3570,3551],{"class":3499},[234,3572,3573],{"class":244}," received",[234,3575,3576],{"class":3499},"  =",[234,3578,3560],{"class":481},[234,3580,3581],{"class":248},"'x-pingo-signature-256'",[234,3583,3566],{"class":481},[234,3585,3586],{"class":236,"line":294},[234,3587,3518],{"emptyLinePlaceholder":3517},[234,3589,3590],{"class":236,"line":300},[234,3591,3593],{"class":3592},"sJ8bj","  \u002F\u002F Reject anything older than five minutes.\n",[234,3595,3596,3599,3602,3605,3608,3611,3614,3617,3620,3623,3626,3629,3632,3635,3638,3641,3644],{"class":236,"line":306},[234,3597,3598],{"class":3499},"  if",[234,3600,3601],{"class":481}," (Math.",[234,3603,3604],{"class":240},"abs",[234,3606,3607],{"class":481},"(Date.",[234,3609,3610],{"class":240},"now",[234,3612,3613],{"class":481},"() ",[234,3615,3616],{"class":3499},"\u002F",[234,3618,3619],{"class":244}," 1000",[234,3621,3622],{"class":3499}," -",[234,3624,3625],{"class":240}," Number",[234,3627,3628],{"class":481},"(timestamp)) ",[234,3630,3631],{"class":3499},">",[234,3633,3634],{"class":244}," 300",[234,3636,3637],{"class":481},") ",[234,3639,3640],{"class":3499},"return",[234,3642,3643],{"class":244}," false",[234,3645,3512],{"class":481},[234,3647,3648],{"class":236,"line":312},[234,3649,3518],{"emptyLinePlaceholder":3517},[234,3651,3652,3654,3657,3659,3662,3665,3668,3670,3673],{"class":236,"line":760},[234,3653,3551],{"class":3499},[234,3655,3656],{"class":244}," expected",[234,3658,3557],{"class":3499},[234,3660,3661],{"class":248}," 'sha256='",[234,3663,3664],{"class":3499}," +",[234,3666,3667],{"class":240}," createHmac",[234,3669,3529],{"class":481},[234,3671,3672],{"class":248},"'sha256'",[234,3674,3675],{"class":481},", secret)\n",[234,3677,3678,3681,3684,3686,3689,3692,3695,3697,3700],{"class":236,"line":779},[234,3679,3680],{"class":481},"    .",[234,3682,3683],{"class":240},"update",[234,3685,3529],{"class":481},[234,3687,3688],{"class":248},"`${",[234,3690,3691],{"class":481},"timestamp",[234,3693,3694],{"class":248},"}.${",[234,3696,3533],{"class":481},[234,3698,3699],{"class":248},"}`",[234,3701,3702],{"class":481},")\n",[234,3704,3705,3707,3710,3712,3715],{"class":236,"line":792},[234,3706,3680],{"class":481},[234,3708,3709],{"class":240},"digest",[234,3711,3529],{"class":481},[234,3713,3714],{"class":248},"'hex'",[234,3716,3717],{"class":481},");\n",[234,3719,3720],{"class":236,"line":805},[234,3721,3518],{"emptyLinePlaceholder":3517},[234,3723,3724,3726,3729,3731,3734,3736],{"class":236,"line":816},[234,3725,3551],{"class":3499},[234,3727,3728],{"class":244}," a",[234,3730,3557],{"class":3499},[234,3732,3733],{"class":481}," Buffer.",[234,3735,3506],{"class":240},[234,3737,3738],{"class":481},"(expected);\n",[234,3740,3741,3743,3746,3748,3750,3752,3755,3758,3761],{"class":236,"line":1129},[234,3742,3551],{"class":3499},[234,3744,3745],{"class":244}," b",[234,3747,3557],{"class":3499},[234,3749,3733],{"class":481},[234,3751,3506],{"class":240},[234,3753,3754],{"class":481},"(received ",[234,3756,3757],{"class":3499},"??",[234,3759,3760],{"class":248}," ''",[234,3762,3717],{"class":481},[234,3764,3765,3768,3771,3774,3777,3780,3782,3785,3788],{"class":236,"line":1146},[234,3766,3767],{"class":3499},"  return",[234,3769,3770],{"class":481}," a.",[234,3772,3773],{"class":244},"length",[234,3775,3776],{"class":3499}," ===",[234,3778,3779],{"class":481}," b.",[234,3781,3773],{"class":244},[234,3783,3784],{"class":3499}," &&",[234,3786,3787],{"class":240}," timingSafeEqual",[234,3789,3790],{"class":481},"(a, b);\n",[234,3792,3793],{"class":236,"line":1158},[234,3794,545],{"class":481},[197,3796,3797,3798,3801],{},"Rotate the secret at any time with ",[51,3799,3800],{},"POST \u002Fv3\u002Fwebhooks\u002F{id}\u002Fsecret\u002Frotate",". The old secret stops verifying immediately.",[328,3803,3805],{"id":3804},"retries","Retries",[197,3807,3808,3809,3812,3813,3816,3817,3820,3821,3824],{},"Answer with any status ",[207,3810,3811],{},"below 400"," and the delivery is done. Answer ",[207,3814,3815],{},"4xx"," or ",[207,3818,3819],{},"5xx",", or time out, and Pingo retries — ",[207,3822,3823],{},"3 attempts total",", backing off exponentially from 5 seconds. The request times out after 10 seconds.",[197,3826,3827,3828,3831,3832,2965],{},"Make your handler ",[207,3829,3830],{},"idempotent",": a retry can deliver a message you already processed. Deduplicate on the message id (",[51,3833,1563],{},[218,3835,215],{"id":3836},"helpdesk-webhooks",[197,3838,3839],{},"These carry events from the shared inbox rather than from WhatsApp.",[225,3841,3843],{"className":227,"code":3842,"language":229,"meta":230,"style":230},"curl -X POST https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fhelpdesk\u002Fwebhooks \\\n  -H \"apikey: sk_live_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fhooks\u002Fhelpdesk\",\n    \"subscriptions\": [\"helpdesk.conversation.created\", \"helpdesk.message.created\"],\n    \"signingSecret\": \"a-secret-you-choose\"\n  }'\n",[51,3844,3845,3858,3866,3874,3880,3885,3890,3895],{"__ignoreMap":230},[234,3846,3847,3849,3851,3853,3856],{"class":236,"line":237},[234,3848,241],{"class":240},[234,3850,245],{"class":244},[234,3852,249],{"class":248},[234,3854,3855],{"class":248}," https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fhelpdesk\u002Fwebhooks",[234,3857,255],{"class":244},[234,3859,3860,3862,3864],{"class":236,"line":258},[234,3861,261],{"class":244},[234,3863,264],{"class":248},[234,3865,255],{"class":244},[234,3867,3868,3870,3872],{"class":236,"line":269},[234,3869,261],{"class":244},[234,3871,274],{"class":248},[234,3873,255],{"class":244},[234,3875,3876,3878],{"class":236,"line":279},[234,3877,282],{"class":244},[234,3879,285],{"class":248},[234,3881,3882],{"class":236,"line":288},[234,3883,3884],{"class":248},"    \"url\": \"https:\u002F\u002Fexample.com\u002Fhooks\u002Fhelpdesk\",\n",[234,3886,3887],{"class":236,"line":294},[234,3888,3889],{"class":248},"    \"subscriptions\": [\"helpdesk.conversation.created\", \"helpdesk.message.created\"],\n",[234,3891,3892],{"class":236,"line":300},[234,3893,3894],{"class":248},"    \"signingSecret\": \"a-secret-you-choose\"\n",[234,3896,3897],{"class":236,"line":306},[234,3898,315],{"class":248},[197,3900,3901,3902,3905],{},"Scope a webhook to a single inbox with ",[51,3903,3904],{},"inboxId",", or omit it to receive events from the whole workspace.",[442,3907,3908],{},[197,3909,3910,3911,3914,3915,3918],{},"Pingo generates a ",[51,3912,3913],{},"signingSecret"," if you omit one — but ",[207,3916,3917],{},"never returns it",". If you want to verify signatures, supply your own secret at create time.",[328,3920,3922],{"id":3921},"the-helpdesk-events","The helpdesk events",[197,3924,3925],{},"There are 21, and all of them are signable:",[340,3927,3928,3936],{},[343,3929,3930],{},[346,3931,3932,3934],{},[349,3933],{},[349,3935],{},[356,3937,3938,3975,3999,4017],{},[346,3939,3940,3945],{},[361,3941,3942],{},[207,3943,3944],{},"Conversations",[361,3946,3947,3950,3951,3950,3954,3950,3957,3950,3960,3950,3963,3950,3966,3950,3969,3950,3972],{},[51,3948,3949],{},"helpdesk.conversation.created"," · ",[51,3952,3953],{},"helpdesk.conversation.updated",[51,3955,3956],{},"helpdesk.conversation.status_changed",[51,3958,3959],{},"helpdesk.conversation.assignee_changed",[51,3961,3962],{},"helpdesk.conversation.priority_changed",[51,3964,3965],{},"helpdesk.conversation.labels_changed",[51,3967,3968],{},"helpdesk.conversation.deleted",[51,3970,3971],{},"helpdesk.conversation.read",[51,3973,3974],{},"helpdesk.conversation.ai_agent_changed",[346,3976,3977,3982],{},[361,3978,3979],{},[207,3980,3981],{},"Messages",[361,3983,3984,3950,3987,3950,3990,3950,3993,3950,3996],{},[51,3985,3986],{},"helpdesk.message.created",[51,3988,3989],{},"helpdesk.message.updated",[51,3991,3992],{},"helpdesk.message.deleted",[51,3994,3995],{},"helpdesk.message.status_changed",[51,3997,3998],{},"helpdesk.mention.created",[346,4000,4001,4006],{},[361,4002,4003],{},[207,4004,4005],{},"Labels",[361,4007,4008,3950,4011,3950,4014],{},[51,4009,4010],{},"helpdesk.label.created",[51,4012,4013],{},"helpdesk.label.updated",[51,4015,4016],{},"helpdesk.label.deleted",[346,4018,4019,4024],{},[361,4020,4021],{},[207,4022,4023],{},"Other",[361,4025,4026,3950,4029,3950,4032,3950,4035],{},[51,4027,4028],{},"helpdesk.csat.response_received",[51,4030,4031],{},"helpdesk.sla.missed",[51,4033,4034],{},"helpdesk.contact_sync.updated",[51,4036,4037],{},"helpdesk.conversation_sync.updated",[328,4039,462],{"id":4040},"the-envelope-1",[197,4042,4043,4044,4046,4047,4050],{},"Every helpdesk event arrives like this — and ",[51,4045,468],{}," is the event object itself, which always repeats its own ",[51,4048,4049],{},"type"," inside:",[225,4052,4054],{"className":472,"code":4053,"language":474,"meta":230,"style":230},"{\n  \"event\": \"helpdesk.message.created\",\n  \"data\": { \"type\": \"helpdesk.message.created\", \"accountId\": \"0195f3a0-...\", \"...\": \"...\" },\n  \"deliveredAt\": \"2026-07-14T12:34:56.000Z\"\n}\n",[51,4055,4056,4060,4071,4105,4115],{"__ignoreMap":230},[234,4057,4058],{"class":236,"line":237},[234,4059,482],{"class":481},[234,4061,4062,4064,4066,4069],{"class":236,"line":258},[234,4063,487],{"class":244},[234,4065,490],{"class":481},[234,4067,4068],{"class":248},"\"helpdesk.message.created\"",[234,4070,496],{"class":481},[234,4072,4073,4075,4077,4080,4082,4084,4086,4089,4091,4094,4096,4099,4101,4103],{"class":236,"line":269},[234,4074,537],{"class":244},[234,4076,766],{"class":481},[234,4078,4079],{"class":244},"\"type\"",[234,4081,490],{"class":481},[234,4083,4068],{"class":248},[234,4085,916],{"class":481},[234,4087,4088],{"class":244},"\"accountId\"",[234,4090,490],{"class":481},[234,4092,4093],{"class":248},"\"0195f3a0-...\"",[234,4095,916],{"class":481},[234,4097,4098],{"class":244},"\"...\"",[234,4100,490],{"class":481},[234,4102,4098],{"class":248},[234,4104,776],{"class":481},[234,4106,4107,4110,4112],{"class":236,"line":279},[234,4108,4109],{"class":244},"  \"deliveredAt\"",[234,4111,490],{"class":481},[234,4113,4114],{"class":248},"\"2026-07-14T12:34:56.000Z\"\n",[234,4116,4117],{"class":236,"line":288},[234,4118,545],{"class":481},[197,4120,4121,4122,4124],{},"Each tab below shows the full ",[51,4123,468],{}," for every event in that group.",[643,4126,4127,4926,5531,5692,5918],{},[646,4128,4129,4136,4252,4259,4348,4367,4374,4483,4493,4499,4584,4595,4679,4690,4762,4772,4846,4862],{"title":3944},[197,4130,4131,4135],{},[207,4132,4133],{},[51,4134,3949],{}," — a new conversation landed.",[225,4137,4139],{"className":472,"code":4138,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.created\",\n  \"accountId\": \"0195f3a0-1c2d-7e3f-8a9b-1c2d3e4f5a6b\",\n  \"conversationId\": \"0195f3b1-2c3d-7e4f-8a9b-0c1d2e3f4a5b\",\n  \"inboxId\": \"0195f3c2-3d4e-7f5a-8b9c-1d2e3f4a5b6c\",\n  \"contactId\": \"0195f3d3-4e5f-7a6b-9c8d-2e3f4a5b6c7d\",\n  \"status\": \"OPEN\",\n  \"priority\": null,\n  \"assigneeUserId\": null,\n  \"teamId\": null\n}\n",[51,4140,4141,4145,4157,4169,4181,4193,4205,4216,4227,4238,4248],{"__ignoreMap":230},[234,4142,4143],{"class":236,"line":237},[234,4144,482],{"class":481},[234,4146,4147,4150,4152,4155],{"class":236,"line":258},[234,4148,4149],{"class":244},"  \"type\"",[234,4151,490],{"class":481},[234,4153,4154],{"class":248},"\"helpdesk.conversation.created\"",[234,4156,496],{"class":481},[234,4158,4159,4162,4164,4167],{"class":236,"line":269},[234,4160,4161],{"class":244},"  \"accountId\"",[234,4163,490],{"class":481},[234,4165,4166],{"class":248},"\"0195f3a0-1c2d-7e3f-8a9b-1c2d3e4f5a6b\"",[234,4168,496],{"class":481},[234,4170,4171,4174,4176,4179],{"class":236,"line":279},[234,4172,4173],{"class":244},"  \"conversationId\"",[234,4175,490],{"class":481},[234,4177,4178],{"class":248},"\"0195f3b1-2c3d-7e4f-8a9b-0c1d2e3f4a5b\"",[234,4180,496],{"class":481},[234,4182,4183,4186,4188,4191],{"class":236,"line":288},[234,4184,4185],{"class":244},"  \"inboxId\"",[234,4187,490],{"class":481},[234,4189,4190],{"class":248},"\"0195f3c2-3d4e-7f5a-8b9c-1d2e3f4a5b6c\"",[234,4192,496],{"class":481},[234,4194,4195,4198,4200,4203],{"class":236,"line":294},[234,4196,4197],{"class":244},"  \"contactId\"",[234,4199,490],{"class":481},[234,4201,4202],{"class":248},"\"0195f3d3-4e5f-7a6b-9c8d-2e3f4a5b6c7d\"",[234,4204,496],{"class":481},[234,4206,4207,4209,4211,4214],{"class":236,"line":300},[234,4208,738],{"class":244},[234,4210,490],{"class":481},[234,4212,4213],{"class":248},"\"OPEN\"",[234,4215,496],{"class":481},[234,4217,4218,4221,4223,4225],{"class":236,"line":306},[234,4219,4220],{"class":244},"  \"priority\"",[234,4222,490],{"class":481},[234,4224,787],{"class":244},[234,4226,496],{"class":481},[234,4228,4229,4232,4234,4236],{"class":236,"line":312},[234,4230,4231],{"class":244},"  \"assigneeUserId\"",[234,4233,490],{"class":481},[234,4235,787],{"class":244},[234,4237,496],{"class":481},[234,4239,4240,4243,4245],{"class":236,"line":760},[234,4241,4242],{"class":244},"  \"teamId\"",[234,4244,490],{"class":481},[234,4246,4247],{"class":244},"null\n",[234,4249,4250],{"class":236,"line":779},[234,4251,545],{"class":481},[197,4253,4254,4258],{},[207,4255,4256],{},[51,4257,3956],{}," — someone resolved, reopened or snoozed it.",[225,4260,4262],{"className":472,"code":4261,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.status_changed\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"fromStatus\": \"OPEN\",\n  \"toStatus\": \"RESOLVED\",\n  \"actorUserId\": \"0195f3e4-5f6a-7b8c-9d0e-3f4a5b6c7d8e\"\n}\n",[51,4263,4264,4268,4279,4289,4300,4311,4322,4334,4344],{"__ignoreMap":230},[234,4265,4266],{"class":236,"line":237},[234,4267,482],{"class":481},[234,4269,4270,4272,4274,4277],{"class":236,"line":258},[234,4271,4149],{"class":244},[234,4273,490],{"class":481},[234,4275,4276],{"class":248},"\"helpdesk.conversation.status_changed\"",[234,4278,496],{"class":481},[234,4280,4281,4283,4285,4287],{"class":236,"line":269},[234,4282,4161],{"class":244},[234,4284,490],{"class":481},[234,4286,4093],{"class":248},[234,4288,496],{"class":481},[234,4290,4291,4293,4295,4298],{"class":236,"line":279},[234,4292,4173],{"class":244},[234,4294,490],{"class":481},[234,4296,4297],{"class":248},"\"0195f3b1-...\"",[234,4299,496],{"class":481},[234,4301,4302,4304,4306,4309],{"class":236,"line":288},[234,4303,4185],{"class":244},[234,4305,490],{"class":481},[234,4307,4308],{"class":248},"\"0195f3c2-...\"",[234,4310,496],{"class":481},[234,4312,4313,4316,4318,4320],{"class":236,"line":294},[234,4314,4315],{"class":244},"  \"fromStatus\"",[234,4317,490],{"class":481},[234,4319,4213],{"class":248},[234,4321,496],{"class":481},[234,4323,4324,4327,4329,4332],{"class":236,"line":300},[234,4325,4326],{"class":244},"  \"toStatus\"",[234,4328,490],{"class":481},[234,4330,4331],{"class":248},"\"RESOLVED\"",[234,4333,496],{"class":481},[234,4335,4336,4339,4341],{"class":236,"line":306},[234,4337,4338],{"class":244},"  \"actorUserId\"",[234,4340,490],{"class":481},[234,4342,4343],{"class":248},"\"0195f3e4-5f6a-7b8c-9d0e-3f4a5b6c7d8e\"\n",[234,4345,4346],{"class":236,"line":312},[234,4347,545],{"class":481},[197,4349,4350,4351,916,4354,916,4356,624,4359,4362,4363,4366],{},"The statuses are ",[51,4352,4353],{},"OPEN",[51,4355,985],{},[51,4357,4358],{},"SNOOZED",[51,4360,4361],{},"RESOLVED",". A ",[51,4364,4365],{},"silent: true"," shows up when the change was automatic (a snooze expiring, say) and left no activity message in the timeline.",[197,4368,4369,4373],{},[207,4370,4371],{},[51,4372,3959],{}," — the conversation changed hands.",[225,4375,4377],{"className":472,"code":4376,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.assignee_changed\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"fromAssigneeUserId\": null,\n  \"toAssigneeUserId\": \"0195f3e4-...\",\n  \"fromTeamId\": null,\n  \"toTeamId\": \"0195f3f5-...\",\n  \"actorUserId\": \"0195f3e4-...\"\n}\n",[51,4378,4379,4383,4394,4404,4414,4424,4435,4447,4458,4470,4479],{"__ignoreMap":230},[234,4380,4381],{"class":236,"line":237},[234,4382,482],{"class":481},[234,4384,4385,4387,4389,4392],{"class":236,"line":258},[234,4386,4149],{"class":244},[234,4388,490],{"class":481},[234,4390,4391],{"class":248},"\"helpdesk.conversation.assignee_changed\"",[234,4393,496],{"class":481},[234,4395,4396,4398,4400,4402],{"class":236,"line":269},[234,4397,4161],{"class":244},[234,4399,490],{"class":481},[234,4401,4093],{"class":248},[234,4403,496],{"class":481},[234,4405,4406,4408,4410,4412],{"class":236,"line":279},[234,4407,4173],{"class":244},[234,4409,490],{"class":481},[234,4411,4297],{"class":248},[234,4413,496],{"class":481},[234,4415,4416,4418,4420,4422],{"class":236,"line":288},[234,4417,4185],{"class":244},[234,4419,490],{"class":481},[234,4421,4308],{"class":248},[234,4423,496],{"class":481},[234,4425,4426,4429,4431,4433],{"class":236,"line":294},[234,4427,4428],{"class":244},"  \"fromAssigneeUserId\"",[234,4430,490],{"class":481},[234,4432,787],{"class":244},[234,4434,496],{"class":481},[234,4436,4437,4440,4442,4445],{"class":236,"line":300},[234,4438,4439],{"class":244},"  \"toAssigneeUserId\"",[234,4441,490],{"class":481},[234,4443,4444],{"class":248},"\"0195f3e4-...\"",[234,4446,496],{"class":481},[234,4448,4449,4452,4454,4456],{"class":236,"line":306},[234,4450,4451],{"class":244},"  \"fromTeamId\"",[234,4453,490],{"class":481},[234,4455,787],{"class":244},[234,4457,496],{"class":481},[234,4459,4460,4463,4465,4468],{"class":236,"line":312},[234,4461,4462],{"class":244},"  \"toTeamId\"",[234,4464,490],{"class":481},[234,4466,4467],{"class":248},"\"0195f3f5-...\"",[234,4469,496],{"class":481},[234,4471,4472,4474,4476],{"class":236,"line":760},[234,4473,4338],{"class":244},[234,4475,490],{"class":481},[234,4477,4478],{"class":248},"\"0195f3e4-...\"\n",[234,4480,4481],{"class":236,"line":779},[234,4482,545],{"class":481},[197,4484,4485,4486,624,4489,4492],{},"When an AI bot takes the conversation or hands it back, ",[51,4487,4488],{},"fromAgentBotId",[51,4490,4491],{},"toAgentBotId"," ride along — the bot lives in its own column, separate from the human assignee.",[197,4494,4495],{},[207,4496,4497],{},[51,4498,3962],{},[225,4500,4502],{"className":472,"code":4501,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.priority_changed\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"fromPriority\": null,\n  \"toPriority\": \"URGENT\",\n  \"actorUserId\": \"0195f3e4-...\"\n}\n",[51,4503,4504,4508,4519,4529,4539,4549,4560,4572,4580],{"__ignoreMap":230},[234,4505,4506],{"class":236,"line":237},[234,4507,482],{"class":481},[234,4509,4510,4512,4514,4517],{"class":236,"line":258},[234,4511,4149],{"class":244},[234,4513,490],{"class":481},[234,4515,4516],{"class":248},"\"helpdesk.conversation.priority_changed\"",[234,4518,496],{"class":481},[234,4520,4521,4523,4525,4527],{"class":236,"line":269},[234,4522,4161],{"class":244},[234,4524,490],{"class":481},[234,4526,4093],{"class":248},[234,4528,496],{"class":481},[234,4530,4531,4533,4535,4537],{"class":236,"line":279},[234,4532,4173],{"class":244},[234,4534,490],{"class":481},[234,4536,4297],{"class":248},[234,4538,496],{"class":481},[234,4540,4541,4543,4545,4547],{"class":236,"line":288},[234,4542,4185],{"class":244},[234,4544,490],{"class":481},[234,4546,4308],{"class":248},[234,4548,496],{"class":481},[234,4550,4551,4554,4556,4558],{"class":236,"line":294},[234,4552,4553],{"class":244},"  \"fromPriority\"",[234,4555,490],{"class":481},[234,4557,787],{"class":244},[234,4559,496],{"class":481},[234,4561,4562,4565,4567,4570],{"class":236,"line":300},[234,4563,4564],{"class":244},"  \"toPriority\"",[234,4566,490],{"class":481},[234,4568,4569],{"class":248},"\"URGENT\"",[234,4571,496],{"class":481},[234,4573,4574,4576,4578],{"class":236,"line":306},[234,4575,4338],{"class":244},[234,4577,490],{"class":481},[234,4579,4478],{"class":248},[234,4581,4582],{"class":236,"line":312},[234,4583,545],{"class":481},[197,4585,4586,4590,4591,4594],{},[207,4587,4588],{},[51,4589,3965],{}," — note that it delivers the ",[207,4592,4593],{},"delta",", not the final list.",[225,4596,4598],{"className":472,"code":4597,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.labels_changed\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"addedLabelIds\": [\"0195f406-...\"],\n  \"removedLabelIds\": [],\n  \"actorUserId\": \"0195f3e4-...\"\n}\n",[51,4599,4600,4604,4615,4625,4635,4645,4659,4667,4675],{"__ignoreMap":230},[234,4601,4602],{"class":236,"line":237},[234,4603,482],{"class":481},[234,4605,4606,4608,4610,4613],{"class":236,"line":258},[234,4607,4149],{"class":244},[234,4609,490],{"class":481},[234,4611,4612],{"class":248},"\"helpdesk.conversation.labels_changed\"",[234,4614,496],{"class":481},[234,4616,4617,4619,4621,4623],{"class":236,"line":269},[234,4618,4161],{"class":244},[234,4620,490],{"class":481},[234,4622,4093],{"class":248},[234,4624,496],{"class":481},[234,4626,4627,4629,4631,4633],{"class":236,"line":279},[234,4628,4173],{"class":244},[234,4630,490],{"class":481},[234,4632,4297],{"class":248},[234,4634,496],{"class":481},[234,4636,4637,4639,4641,4643],{"class":236,"line":288},[234,4638,4185],{"class":244},[234,4640,490],{"class":481},[234,4642,4308],{"class":248},[234,4644,496],{"class":481},[234,4646,4647,4650,4653,4656],{"class":236,"line":294},[234,4648,4649],{"class":244},"  \"addedLabelIds\"",[234,4651,4652],{"class":481},": [",[234,4654,4655],{"class":248},"\"0195f406-...\"",[234,4657,4658],{"class":481},"],\n",[234,4660,4661,4664],{"class":236,"line":300},[234,4662,4663],{"class":244},"  \"removedLabelIds\"",[234,4665,4666],{"class":481},": [],\n",[234,4668,4669,4671,4673],{"class":236,"line":306},[234,4670,4338],{"class":244},[234,4672,490],{"class":481},[234,4674,4478],{"class":248},[234,4676,4677],{"class":236,"line":312},[234,4678,545],{"class":481},[197,4680,4681,4685,4686,4689],{},[207,4682,4683],{},[51,4684,3953],{}," — a field changed that has no event of its own. ",[51,4687,4688],{},"changedFields"," names them.",[225,4691,4693],{"className":472,"code":4692,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.updated\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"changedFields\": [\"customAttributes\", \"snoozedUntil\"]\n}\n",[51,4694,4695,4699,4710,4720,4730,4740,4758],{"__ignoreMap":230},[234,4696,4697],{"class":236,"line":237},[234,4698,482],{"class":481},[234,4700,4701,4703,4705,4708],{"class":236,"line":258},[234,4702,4149],{"class":244},[234,4704,490],{"class":481},[234,4706,4707],{"class":248},"\"helpdesk.conversation.updated\"",[234,4709,496],{"class":481},[234,4711,4712,4714,4716,4718],{"class":236,"line":269},[234,4713,4161],{"class":244},[234,4715,490],{"class":481},[234,4717,4093],{"class":248},[234,4719,496],{"class":481},[234,4721,4722,4724,4726,4728],{"class":236,"line":279},[234,4723,4173],{"class":244},[234,4725,490],{"class":481},[234,4727,4297],{"class":248},[234,4729,496],{"class":481},[234,4731,4732,4734,4736,4738],{"class":236,"line":288},[234,4733,4185],{"class":244},[234,4735,490],{"class":481},[234,4737,4308],{"class":248},[234,4739,496],{"class":481},[234,4741,4742,4745,4747,4750,4752,4755],{"class":236,"line":294},[234,4743,4744],{"class":244},"  \"changedFields\"",[234,4746,4652],{"class":481},[234,4748,4749],{"class":248},"\"customAttributes\"",[234,4751,916],{"class":481},[234,4753,4754],{"class":248},"\"snoozedUntil\"",[234,4756,4757],{"class":481},"]\n",[234,4759,4760],{"class":236,"line":300},[234,4761,545],{"class":481},[197,4763,4764,3950,4768],{},[207,4765,4766],{},[51,4767,3971],{},[207,4769,4770],{},[51,4771,3968],{},[225,4773,4775],{"className":472,"code":4774,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.read\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"userId\": \"0195f3e4-...\",\n  \"assigneeLastSeenAt\": \"2026-07-14T12:34:56.000Z\"\n}\n",[51,4776,4777,4781,4792,4802,4812,4822,4833,4842],{"__ignoreMap":230},[234,4778,4779],{"class":236,"line":237},[234,4780,482],{"class":481},[234,4782,4783,4785,4787,4790],{"class":236,"line":258},[234,4784,4149],{"class":244},[234,4786,490],{"class":481},[234,4788,4789],{"class":248},"\"helpdesk.conversation.read\"",[234,4791,496],{"class":481},[234,4793,4794,4796,4798,4800],{"class":236,"line":269},[234,4795,4161],{"class":244},[234,4797,490],{"class":481},[234,4799,4093],{"class":248},[234,4801,496],{"class":481},[234,4803,4804,4806,4808,4810],{"class":236,"line":279},[234,4805,4173],{"class":244},[234,4807,490],{"class":481},[234,4809,4297],{"class":248},[234,4811,496],{"class":481},[234,4813,4814,4816,4818,4820],{"class":236,"line":288},[234,4815,4185],{"class":244},[234,4817,490],{"class":481},[234,4819,4308],{"class":248},[234,4821,496],{"class":481},[234,4823,4824,4827,4829,4831],{"class":236,"line":294},[234,4825,4826],{"class":244},"  \"userId\"",[234,4828,490],{"class":481},[234,4830,4444],{"class":248},[234,4832,496],{"class":481},[234,4834,4835,4838,4840],{"class":236,"line":300},[234,4836,4837],{"class":244},"  \"assigneeLastSeenAt\"",[234,4839,490],{"class":481},[234,4841,4114],{"class":248},[234,4843,4844],{"class":236,"line":306},[234,4845,545],{"class":481},[197,4847,4848,4852,4853,973,4856,916,4858,4861],{},[207,4849,4850],{},[51,4851,3974],{}," — WhatsApp Business's native AI took the chat (or gave it back). While ",[51,4854,4855],{},"aiAgentEnabled",[51,4857,937],{},[207,4859,4860],{},"nothing you send goes out"," on that conversation.",[225,4863,4865],{"className":472,"code":4864,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation.ai_agent_changed\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"aiAgentEnabled\": true\n}\n",[51,4866,4867,4871,4882,4892,4902,4912,4922],{"__ignoreMap":230},[234,4868,4869],{"class":236,"line":237},[234,4870,482],{"class":481},[234,4872,4873,4875,4877,4880],{"class":236,"line":258},[234,4874,4149],{"class":244},[234,4876,490],{"class":481},[234,4878,4879],{"class":248},"\"helpdesk.conversation.ai_agent_changed\"",[234,4881,496],{"class":481},[234,4883,4884,4886,4888,4890],{"class":236,"line":269},[234,4885,4161],{"class":244},[234,4887,490],{"class":481},[234,4889,4093],{"class":248},[234,4891,496],{"class":481},[234,4893,4894,4896,4898,4900],{"class":236,"line":279},[234,4895,4173],{"class":244},[234,4897,490],{"class":481},[234,4899,4297],{"class":248},[234,4901,496],{"class":481},[234,4903,4904,4906,4908,4910],{"class":236,"line":288},[234,4905,4185],{"class":244},[234,4907,490],{"class":481},[234,4909,4308],{"class":248},[234,4911,496],{"class":481},[234,4913,4914,4917,4919],{"class":236,"line":294},[234,4915,4916],{"class":244},"  \"aiAgentEnabled\"",[234,4918,490],{"class":481},[234,4920,4921],{"class":244},"true\n",[234,4923,4924],{"class":236,"line":300},[234,4925,545],{"class":481},[646,4927,4928,4942,5200,5225,5232,5327,5355,5365,5449,5456],{"title":3981},[197,4929,4930,4934,4935,4938,4939,4941],{},[207,4931,4932],{},[51,4933,3986],{}," — the main one. The message arrives ",[207,4936,4937],{},"hydrated"," in ",[51,4940,666],{},", in the same shape the REST API returns, so you can render it without a second request.",[225,4943,4945],{"className":472,"code":4944,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.message.created\",\n  \"accountId\": \"0195f3a0-...\",\n  \"messageId\": \"0195f417-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"channelType\": \"WHATSAPP\",\n  \"messageType\": \"INCOMING\",\n  \"status\": \"DELIVERED\",\n  \"isPrivate\": false,\n  \"senderUserId\": null,\n  \"senderContactId\": \"0195f3d3-...\",\n  \"message\": {\n    \"id\": \"0195f417-...\",\n    \"conversationId\": \"0195f3b1-...\",\n    \"content\": \"Hi! Has my order shipped?\",\n    \"contentType\": \"TEXT\",\n    \"messageType\": \"INCOMING\",\n    \"status\": \"DELIVERED\",\n    \"private\": false,\n    \"sender\": { \"id\": \"0195f3d3-...\", \"name\": \"Ana\" },\n    \"attachments\": [],\n    \"createdAt\": \"2026-07-14T12:34:56.000Z\"\n  }\n}\n",[51,4946,4947,4951,4961,4971,4983,4993,5003,5015,5026,5037,5048,5059,5071,5077,5087,5098,5109,5121,5131,5141,5152,5176,5183,5192,5196],{"__ignoreMap":230},[234,4948,4949],{"class":236,"line":237},[234,4950,482],{"class":481},[234,4952,4953,4955,4957,4959],{"class":236,"line":258},[234,4954,4149],{"class":244},[234,4956,490],{"class":481},[234,4958,4068],{"class":248},[234,4960,496],{"class":481},[234,4962,4963,4965,4967,4969],{"class":236,"line":269},[234,4964,4161],{"class":244},[234,4966,490],{"class":481},[234,4968,4093],{"class":248},[234,4970,496],{"class":481},[234,4972,4973,4976,4978,4981],{"class":236,"line":279},[234,4974,4975],{"class":244},"  \"messageId\"",[234,4977,490],{"class":481},[234,4979,4980],{"class":248},"\"0195f417-...\"",[234,4982,496],{"class":481},[234,4984,4985,4987,4989,4991],{"class":236,"line":288},[234,4986,4173],{"class":244},[234,4988,490],{"class":481},[234,4990,4297],{"class":248},[234,4992,496],{"class":481},[234,4994,4995,4997,4999,5001],{"class":236,"line":294},[234,4996,4185],{"class":244},[234,4998,490],{"class":481},[234,5000,4308],{"class":248},[234,5002,496],{"class":481},[234,5004,5005,5008,5010,5013],{"class":236,"line":300},[234,5006,5007],{"class":244},"  \"channelType\"",[234,5009,490],{"class":481},[234,5011,5012],{"class":248},"\"WHATSAPP\"",[234,5014,496],{"class":481},[234,5016,5017,5019,5021,5024],{"class":236,"line":306},[234,5018,750],{"class":244},[234,5020,490],{"class":481},[234,5022,5023],{"class":248},"\"INCOMING\"",[234,5025,496],{"class":481},[234,5027,5028,5030,5032,5035],{"class":236,"line":312},[234,5029,738],{"class":244},[234,5031,490],{"class":481},[234,5033,5034],{"class":248},"\"DELIVERED\"",[234,5036,496],{"class":481},[234,5038,5039,5042,5044,5046],{"class":236,"line":760},[234,5040,5041],{"class":244},"  \"isPrivate\"",[234,5043,490],{"class":481},[234,5045,704],{"class":244},[234,5047,496],{"class":481},[234,5049,5050,5053,5055,5057],{"class":236,"line":779},[234,5051,5052],{"class":244},"  \"senderUserId\"",[234,5054,490],{"class":481},[234,5056,787],{"class":244},[234,5058,496],{"class":481},[234,5060,5061,5064,5066,5069],{"class":236,"line":792},[234,5062,5063],{"class":244},"  \"senderContactId\"",[234,5065,490],{"class":481},[234,5067,5068],{"class":248},"\"0195f3d3-...\"",[234,5070,496],{"class":481},[234,5072,5073,5075],{"class":236,"line":805},[234,5074,763],{"class":244},[234,5076,683],{"class":481},[234,5078,5079,5081,5083,5085],{"class":236,"line":816},[234,5080,711],{"class":244},[234,5082,490],{"class":481},[234,5084,4980],{"class":248},[234,5086,496],{"class":481},[234,5088,5089,5092,5094,5096],{"class":236,"line":1129},[234,5090,5091],{"class":244},"    \"conversationId\"",[234,5093,490],{"class":481},[234,5095,4297],{"class":248},[234,5097,496],{"class":481},[234,5099,5100,5103,5105,5107],{"class":236,"line":1146},[234,5101,5102],{"class":244},"    \"content\"",[234,5104,490],{"class":481},[234,5106,773],{"class":248},[234,5108,496],{"class":481},[234,5110,5111,5114,5116,5119],{"class":236,"line":1158},[234,5112,5113],{"class":244},"    \"contentType\"",[234,5115,490],{"class":481},[234,5117,5118],{"class":248},"\"TEXT\"",[234,5120,496],{"class":481},[234,5122,5123,5125,5127,5129],{"class":236,"line":1171},[234,5124,1120],{"class":244},[234,5126,490],{"class":481},[234,5128,5023],{"class":248},[234,5130,496],{"class":481},[234,5132,5133,5135,5137,5139],{"class":236,"line":1181},[234,5134,1108],{"class":244},[234,5136,490],{"class":481},[234,5138,5034],{"class":248},[234,5140,496],{"class":481},[234,5142,5143,5146,5148,5150],{"class":236,"line":1187},[234,5144,5145],{"class":244},"    \"private\"",[234,5147,490],{"class":481},[234,5149,704],{"class":244},[234,5151,496],{"class":481},[234,5153,5154,5157,5159,5161,5163,5165,5167,5170,5172,5174],{"class":236,"line":3299},[234,5155,5156],{"class":244},"    \"sender\"",[234,5158,766],{"class":481},[234,5160,2880],{"class":244},[234,5162,490],{"class":481},[234,5164,5068],{"class":248},[234,5166,916],{"class":481},[234,5168,5169],{"class":244},"\"name\"",[234,5171,490],{"class":481},[234,5173,731],{"class":248},[234,5175,776],{"class":481},[234,5177,5178,5181],{"class":236,"line":3310},[234,5179,5180],{"class":244},"    \"attachments\"",[234,5182,4666],{"class":481},[234,5184,5185,5188,5190],{"class":236,"line":3326},[234,5186,5187],{"class":244},"    \"createdAt\"",[234,5189,490],{"class":481},[234,5191,4114],{"class":248},[234,5193,5194],{"class":236,"line":144},[234,5195,1184],{"class":481},[234,5197,5198],{"class":236,"line":3347},[234,5199,545],{"class":481},[197,5201,5202,973,5204,916,5207,916,5210,3816,5213,4362,5216,5219,5220,2282,5222,326],{},[51,5203,662],{},[51,5205,5206],{},"INCOMING",[51,5208,5209],{},"OUTGOING",[51,5211,5212],{},"ACTIVITY",[51,5214,5215],{},"TEMPLATE",[207,5217,5218],{},"private note"," is not a type of its own: it is an ",[51,5221,5209],{},[51,5223,5224],{},"isPrivate: true",[197,5226,5227,5231],{},[207,5228,5229],{},[51,5230,3995],{}," — the delivery lifecycle. This is how you learn that the message you sent actually landed.",[225,5233,5235],{"className":472,"code":5234,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.message.status_changed\",\n  \"accountId\": \"0195f3a0-...\",\n  \"messageId\": \"0195f417-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"fromStatus\": \"PENDING\",\n  \"toStatus\": \"FAILED\",\n  \"externalError\": \"131030: Recipient not in allowed list\"\n}\n",[51,5236,5237,5241,5252,5262,5272,5282,5292,5302,5313,5323],{"__ignoreMap":230},[234,5238,5239],{"class":236,"line":237},[234,5240,482],{"class":481},[234,5242,5243,5245,5247,5250],{"class":236,"line":258},[234,5244,4149],{"class":244},[234,5246,490],{"class":481},[234,5248,5249],{"class":248},"\"helpdesk.message.status_changed\"",[234,5251,496],{"class":481},[234,5253,5254,5256,5258,5260],{"class":236,"line":269},[234,5255,4161],{"class":244},[234,5257,490],{"class":481},[234,5259,4093],{"class":248},[234,5261,496],{"class":481},[234,5263,5264,5266,5268,5270],{"class":236,"line":279},[234,5265,4975],{"class":244},[234,5267,490],{"class":481},[234,5269,4980],{"class":248},[234,5271,496],{"class":481},[234,5273,5274,5276,5278,5280],{"class":236,"line":288},[234,5275,4173],{"class":244},[234,5277,490],{"class":481},[234,5279,4297],{"class":248},[234,5281,496],{"class":481},[234,5283,5284,5286,5288,5290],{"class":236,"line":294},[234,5285,4185],{"class":244},[234,5287,490],{"class":481},[234,5289,4308],{"class":248},[234,5291,496],{"class":481},[234,5293,5294,5296,5298,5300],{"class":236,"line":300},[234,5295,4315],{"class":244},[234,5297,490],{"class":481},[234,5299,1113],{"class":248},[234,5301,496],{"class":481},[234,5303,5304,5306,5308,5311],{"class":236,"line":306},[234,5305,4326],{"class":244},[234,5307,490],{"class":481},[234,5309,5310],{"class":248},"\"FAILED\"",[234,5312,496],{"class":481},[234,5314,5315,5318,5320],{"class":236,"line":312},[234,5316,5317],{"class":244},"  \"externalError\"",[234,5319,490],{"class":481},[234,5321,5322],{"class":248},"\"131030: Recipient not in allowed list\"\n",[234,5324,5325],{"class":236,"line":760},[234,5326,545],{"class":481},[197,5328,5329,5330,1326,5332,1326,5334,1326,5336,5338,5339,5342,5343,5354],{},"Statuses go ",[51,5331,985],{},[51,5333,1329],{},[51,5335,1332],{},[51,5337,1335],{},", with ",[51,5340,5341],{},"FAILED"," as the off-ramp. ",[207,5344,5345,5348,5349,973,5352],{},[51,5346,5347],{},"externalError"," only appears when ",[51,5350,5351],{},"toStatus",[51,5353,5341],{}," — it is the provider's raw reason, ideal for a tooltip without waiting for a reload.",[197,5356,5357,3950,5361],{},[207,5358,5359],{},[51,5360,3989],{},[207,5362,5363],{},[51,5364,3992],{},[225,5366,5368],{"className":472,"code":5367,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.message.deleted\",\n  \"accountId\": \"0195f3a0-...\",\n  \"messageId\": \"0195f417-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"actorUserId\": \"0195f3e4-...\",\n  \"deletedAt\": \"2026-07-14T12:40:00.000Z\"\n}\n",[51,5369,5370,5374,5385,5395,5405,5415,5425,5435,5445],{"__ignoreMap":230},[234,5371,5372],{"class":236,"line":237},[234,5373,482],{"class":481},[234,5375,5376,5378,5380,5383],{"class":236,"line":258},[234,5377,4149],{"class":244},[234,5379,490],{"class":481},[234,5381,5382],{"class":248},"\"helpdesk.message.deleted\"",[234,5384,496],{"class":481},[234,5386,5387,5389,5391,5393],{"class":236,"line":269},[234,5388,4161],{"class":244},[234,5390,490],{"class":481},[234,5392,4093],{"class":248},[234,5394,496],{"class":481},[234,5396,5397,5399,5401,5403],{"class":236,"line":279},[234,5398,4975],{"class":244},[234,5400,490],{"class":481},[234,5402,4980],{"class":248},[234,5404,496],{"class":481},[234,5406,5407,5409,5411,5413],{"class":236,"line":288},[234,5408,4173],{"class":244},[234,5410,490],{"class":481},[234,5412,4297],{"class":248},[234,5414,496],{"class":481},[234,5416,5417,5419,5421,5423],{"class":236,"line":294},[234,5418,4185],{"class":244},[234,5420,490],{"class":481},[234,5422,4308],{"class":248},[234,5424,496],{"class":481},[234,5426,5427,5429,5431,5433],{"class":236,"line":300},[234,5428,4338],{"class":244},[234,5430,490],{"class":481},[234,5432,4444],{"class":248},[234,5434,496],{"class":481},[234,5436,5437,5440,5442],{"class":236,"line":306},[234,5438,5439],{"class":244},"  \"deletedAt\"",[234,5441,490],{"class":481},[234,5443,5444],{"class":248},"\"2026-07-14T12:40:00.000Z\"\n",[234,5446,5447],{"class":236,"line":312},[234,5448,545],{"class":481},[197,5450,5451,5455],{},[207,5452,5453],{},[51,5454,3998],{}," — someone was @mentioned in a private note.",[225,5457,5459],{"className":472,"code":5458,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.mention.created\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"messageId\": \"0195f417-...\",\n  \"mentionedUserId\": \"0195f428-...\",\n  \"mentionerUserId\": \"0195f3e4-...\"\n}\n",[51,5460,5461,5465,5476,5486,5496,5506,5518,5527],{"__ignoreMap":230},[234,5462,5463],{"class":236,"line":237},[234,5464,482],{"class":481},[234,5466,5467,5469,5471,5474],{"class":236,"line":258},[234,5468,4149],{"class":244},[234,5470,490],{"class":481},[234,5472,5473],{"class":248},"\"helpdesk.mention.created\"",[234,5475,496],{"class":481},[234,5477,5478,5480,5482,5484],{"class":236,"line":269},[234,5479,4161],{"class":244},[234,5481,490],{"class":481},[234,5483,4093],{"class":248},[234,5485,496],{"class":481},[234,5487,5488,5490,5492,5494],{"class":236,"line":279},[234,5489,4173],{"class":244},[234,5491,490],{"class":481},[234,5493,4297],{"class":248},[234,5495,496],{"class":481},[234,5497,5498,5500,5502,5504],{"class":236,"line":288},[234,5499,4975],{"class":244},[234,5501,490],{"class":481},[234,5503,4980],{"class":248},[234,5505,496],{"class":481},[234,5507,5508,5511,5513,5516],{"class":236,"line":294},[234,5509,5510],{"class":244},"  \"mentionedUserId\"",[234,5512,490],{"class":481},[234,5514,5515],{"class":248},"\"0195f428-...\"",[234,5517,496],{"class":481},[234,5519,5520,5523,5525],{"class":236,"line":300},[234,5521,5522],{"class":244},"  \"mentionerUserId\"",[234,5524,490],{"class":481},[234,5526,4478],{"class":248},[234,5528,5529],{"class":236,"line":306},[234,5530,545],{"class":481},[646,5532,5533,5544,5634,5640],{"title":4005},[197,5534,5535,624,5539,5543],{},[207,5536,5537],{},[51,5538,4010],{},[207,5540,5541],{},[51,5542,4013],{}," carry the complete state, so you can upsert without a refetch.",[225,5545,5547],{"className":472,"code":5546,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.label.created\",\n  \"accountId\": \"0195f3a0-...\",\n  \"labelId\": \"0195f406-...\",\n  \"name\": \"Urgent\",\n  \"description\": \"Needs an answer today\",\n  \"color\": \"#DC2626\",\n  \"showOnSidebar\": true\n}\n",[51,5548,5549,5553,5564,5574,5585,5597,5609,5621,5630],{"__ignoreMap":230},[234,5550,5551],{"class":236,"line":237},[234,5552,482],{"class":481},[234,5554,5555,5557,5559,5562],{"class":236,"line":258},[234,5556,4149],{"class":244},[234,5558,490],{"class":481},[234,5560,5561],{"class":248},"\"helpdesk.label.created\"",[234,5563,496],{"class":481},[234,5565,5566,5568,5570,5572],{"class":236,"line":269},[234,5567,4161],{"class":244},[234,5569,490],{"class":481},[234,5571,4093],{"class":248},[234,5573,496],{"class":481},[234,5575,5576,5579,5581,5583],{"class":236,"line":279},[234,5577,5578],{"class":244},"  \"labelId\"",[234,5580,490],{"class":481},[234,5582,4655],{"class":248},[234,5584,496],{"class":481},[234,5586,5587,5590,5592,5595],{"class":236,"line":288},[234,5588,5589],{"class":244},"  \"name\"",[234,5591,490],{"class":481},[234,5593,5594],{"class":248},"\"Urgent\"",[234,5596,496],{"class":481},[234,5598,5599,5602,5604,5607],{"class":236,"line":294},[234,5600,5601],{"class":244},"  \"description\"",[234,5603,490],{"class":481},[234,5605,5606],{"class":248},"\"Needs an answer today\"",[234,5608,496],{"class":481},[234,5610,5611,5614,5616,5619],{"class":236,"line":300},[234,5612,5613],{"class":244},"  \"color\"",[234,5615,490],{"class":481},[234,5617,5618],{"class":248},"\"#DC2626\"",[234,5620,496],{"class":481},[234,5622,5623,5626,5628],{"class":236,"line":306},[234,5624,5625],{"class":244},"  \"showOnSidebar\"",[234,5627,490],{"class":481},[234,5629,4921],{"class":244},[234,5631,5632],{"class":236,"line":312},[234,5633,545],{"class":481},[197,5635,5636],{},[207,5637,5638],{},[51,5639,4016],{},[225,5641,5643],{"className":472,"code":5642,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.label.deleted\",\n  \"accountId\": \"0195f3a0-...\",\n  \"labelId\": \"0195f406-...\",\n  \"actorUserId\": \"0195f3e4-...\"\n}\n",[51,5644,5645,5649,5660,5670,5680,5688],{"__ignoreMap":230},[234,5646,5647],{"class":236,"line":237},[234,5648,482],{"class":481},[234,5650,5651,5653,5655,5658],{"class":236,"line":258},[234,5652,4149],{"class":244},[234,5654,490],{"class":481},[234,5656,5657],{"class":248},"\"helpdesk.label.deleted\"",[234,5659,496],{"class":481},[234,5661,5662,5664,5666,5668],{"class":236,"line":269},[234,5663,4161],{"class":244},[234,5665,490],{"class":481},[234,5667,4093],{"class":248},[234,5669,496],{"class":481},[234,5671,5672,5674,5676,5678],{"class":236,"line":279},[234,5673,5578],{"class":244},[234,5675,490],{"class":481},[234,5677,4655],{"class":248},[234,5679,496],{"class":481},[234,5681,5682,5684,5686],{"class":236,"line":288},[234,5683,4338],{"class":244},[234,5685,490],{"class":481},[234,5687,4478],{"class":248},[234,5689,5690],{"class":236,"line":294},[234,5691,545],{"class":481},[646,5693,5695,5702,5799,5810,5908],{"title":5694},"CSAT and SLA",[197,5696,5697,5701],{},[207,5698,5699],{},[51,5700,4028],{}," — the contact answered the satisfaction survey.",[225,5703,5705],{"className":472,"code":5704,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.csat.response_received\",\n  \"accountId\": \"0195f3a0-...\",\n  \"csatSurveyResponseId\": \"0195f439-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"messageId\": \"0195f417-...\",\n  \"rating\": 5,\n  \"contactId\": \"0195f3d3-...\",\n  \"assignedAgentUserId\": \"0195f3e4-...\"\n}\n",[51,5706,5707,5711,5722,5732,5744,5754,5764,5776,5786,5795],{"__ignoreMap":230},[234,5708,5709],{"class":236,"line":237},[234,5710,482],{"class":481},[234,5712,5713,5715,5717,5720],{"class":236,"line":258},[234,5714,4149],{"class":244},[234,5716,490],{"class":481},[234,5718,5719],{"class":248},"\"helpdesk.csat.response_received\"",[234,5721,496],{"class":481},[234,5723,5724,5726,5728,5730],{"class":236,"line":269},[234,5725,4161],{"class":244},[234,5727,490],{"class":481},[234,5729,4093],{"class":248},[234,5731,496],{"class":481},[234,5733,5734,5737,5739,5742],{"class":236,"line":279},[234,5735,5736],{"class":244},"  \"csatSurveyResponseId\"",[234,5738,490],{"class":481},[234,5740,5741],{"class":248},"\"0195f439-...\"",[234,5743,496],{"class":481},[234,5745,5746,5748,5750,5752],{"class":236,"line":288},[234,5747,4173],{"class":244},[234,5749,490],{"class":481},[234,5751,4297],{"class":248},[234,5753,496],{"class":481},[234,5755,5756,5758,5760,5762],{"class":236,"line":294},[234,5757,4975],{"class":244},[234,5759,490],{"class":481},[234,5761,4980],{"class":248},[234,5763,496],{"class":481},[234,5765,5766,5769,5771,5774],{"class":236,"line":300},[234,5767,5768],{"class":244},"  \"rating\"",[234,5770,490],{"class":481},[234,5772,5773],{"class":244},"5",[234,5775,496],{"class":481},[234,5777,5778,5780,5782,5784],{"class":236,"line":306},[234,5779,4197],{"class":244},[234,5781,490],{"class":481},[234,5783,5068],{"class":248},[234,5785,496],{"class":481},[234,5787,5788,5791,5793],{"class":236,"line":312},[234,5789,5790],{"class":244},"  \"assignedAgentUserId\"",[234,5792,490],{"class":481},[234,5794,4478],{"class":248},[234,5796,5797],{"class":236,"line":760},[234,5798,545],{"class":481},[197,5800,5801,5805,5806,5809],{},[207,5802,5803],{},[51,5804,4031],{}," — a deadline blew. ",[51,5807,5808],{},"eventType"," says which: first response, next response, or resolution.",[225,5811,5813],{"className":472,"code":5812,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.sla.missed\",\n  \"accountId\": \"0195f3a0-...\",\n  \"conversationId\": \"0195f3b1-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"appliedSlaId\": \"0195f44a-...\",\n  \"slaPolicyId\": \"0195f45b-...\",\n  \"assigneeUserId\": \"0195f3e4-...\",\n  \"eventType\": \"FIRST_RESPONSE\"\n}\n",[51,5814,5815,5819,5830,5840,5850,5860,5872,5884,5894,5904],{"__ignoreMap":230},[234,5816,5817],{"class":236,"line":237},[234,5818,482],{"class":481},[234,5820,5821,5823,5825,5828],{"class":236,"line":258},[234,5822,4149],{"class":244},[234,5824,490],{"class":481},[234,5826,5827],{"class":248},"\"helpdesk.sla.missed\"",[234,5829,496],{"class":481},[234,5831,5832,5834,5836,5838],{"class":236,"line":269},[234,5833,4161],{"class":244},[234,5835,490],{"class":481},[234,5837,4093],{"class":248},[234,5839,496],{"class":481},[234,5841,5842,5844,5846,5848],{"class":236,"line":279},[234,5843,4173],{"class":244},[234,5845,490],{"class":481},[234,5847,4297],{"class":248},[234,5849,496],{"class":481},[234,5851,5852,5854,5856,5858],{"class":236,"line":288},[234,5853,4185],{"class":244},[234,5855,490],{"class":481},[234,5857,4308],{"class":248},[234,5859,496],{"class":481},[234,5861,5862,5865,5867,5870],{"class":236,"line":294},[234,5863,5864],{"class":244},"  \"appliedSlaId\"",[234,5866,490],{"class":481},[234,5868,5869],{"class":248},"\"0195f44a-...\"",[234,5871,496],{"class":481},[234,5873,5874,5877,5879,5882],{"class":236,"line":300},[234,5875,5876],{"class":244},"  \"slaPolicyId\"",[234,5878,490],{"class":481},[234,5880,5881],{"class":248},"\"0195f45b-...\"",[234,5883,496],{"class":481},[234,5885,5886,5888,5890,5892],{"class":236,"line":306},[234,5887,4231],{"class":244},[234,5889,490],{"class":481},[234,5891,4444],{"class":248},[234,5893,496],{"class":481},[234,5895,5896,5899,5901],{"class":236,"line":312},[234,5897,5898],{"class":244},"  \"eventType\"",[234,5900,490],{"class":481},[234,5902,5903],{"class":248},"\"FIRST_RESPONSE\"\n",[234,5905,5906],{"class":236,"line":760},[234,5907,545],{"class":481},[617,5909,5910],{},[197,5911,5912,5917],{},[207,5913,5914,5916],{},[51,5915,4031],{}," is the only event that is never broadcast over the websocket."," It reaches your webhook and raises an in-app notification — but no socket event fires for it. If you depend on SLA in real time, the webhook is the only path.",[646,5919,5921,5934,5940,6087,6105],{"title":5920},"Sync",[197,5922,5923,5924,5927,5928,5931,5932,326],{},"These two are ",[207,5925,5926],{},"progress snapshots",": the same event fires repeatedly during a run, with the counters climbing. Upsert on ",[51,5929,5930],{},"runId"," and react to ",[51,5933,872],{},[197,5935,5936],{},[207,5937,5938],{},[51,5939,4034],{},[225,5941,5943],{"className":472,"code":5942,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.contact_sync.updated\",\n  \"accountId\": \"0195f3a0-...\",\n  \"runId\": \"0195f46c-...\",\n  \"connectionId\": \"0195f3a0-...\",\n  \"status\": \"running\",\n  \"totalCount\": 1240,\n  \"processedCount\": 380,\n  \"createdCount\": 350,\n  \"updatedCount\": 28,\n  \"skippedCount\": 2,\n  \"failedCount\": 0,\n  \"errorMessage\": null\n}\n",[51,5944,5945,5949,5960,5970,5982,5992,6003,6015,6027,6039,6051,6062,6074,6083],{"__ignoreMap":230},[234,5946,5947],{"class":236,"line":237},[234,5948,482],{"class":481},[234,5950,5951,5953,5955,5958],{"class":236,"line":258},[234,5952,4149],{"class":244},[234,5954,490],{"class":481},[234,5956,5957],{"class":248},"\"helpdesk.contact_sync.updated\"",[234,5959,496],{"class":481},[234,5961,5962,5964,5966,5968],{"class":236,"line":269},[234,5963,4161],{"class":244},[234,5965,490],{"class":481},[234,5967,4093],{"class":248},[234,5969,496],{"class":481},[234,5971,5972,5975,5977,5980],{"class":236,"line":279},[234,5973,5974],{"class":244},"  \"runId\"",[234,5976,490],{"class":481},[234,5978,5979],{"class":248},"\"0195f46c-...\"",[234,5981,496],{"class":481},[234,5983,5984,5986,5988,5990],{"class":236,"line":288},[234,5985,501],{"class":244},[234,5987,490],{"class":481},[234,5989,4093],{"class":248},[234,5991,496],{"class":481},[234,5993,5994,5996,5998,6001],{"class":236,"line":294},[234,5995,738],{"class":244},[234,5997,490],{"class":481},[234,5999,6000],{"class":248},"\"running\"",[234,6002,496],{"class":481},[234,6004,6005,6008,6010,6013],{"class":236,"line":300},[234,6006,6007],{"class":244},"  \"totalCount\"",[234,6009,490],{"class":481},[234,6011,6012],{"class":244},"1240",[234,6014,496],{"class":481},[234,6016,6017,6020,6022,6025],{"class":236,"line":306},[234,6018,6019],{"class":244},"  \"processedCount\"",[234,6021,490],{"class":481},[234,6023,6024],{"class":244},"380",[234,6026,496],{"class":481},[234,6028,6029,6032,6034,6037],{"class":236,"line":312},[234,6030,6031],{"class":244},"  \"createdCount\"",[234,6033,490],{"class":481},[234,6035,6036],{"class":244},"350",[234,6038,496],{"class":481},[234,6040,6041,6044,6046,6049],{"class":236,"line":760},[234,6042,6043],{"class":244},"  \"updatedCount\"",[234,6045,490],{"class":481},[234,6047,6048],{"class":244},"28",[234,6050,496],{"class":481},[234,6052,6053,6056,6058,6060],{"class":236,"line":779},[234,6054,6055],{"class":244},"  \"skippedCount\"",[234,6057,490],{"class":481},[234,6059,2626],{"class":244},[234,6061,496],{"class":481},[234,6063,6064,6067,6069,6072],{"class":236,"line":792},[234,6065,6066],{"class":244},"  \"failedCount\"",[234,6068,490],{"class":481},[234,6070,6071],{"class":244},"0",[234,6073,496],{"class":481},[234,6075,6076,6079,6081],{"class":236,"line":805},[234,6077,6078],{"class":244},"  \"errorMessage\"",[234,6080,490],{"class":481},[234,6082,4247],{"class":244},[234,6084,6085],{"class":236,"line":816},[234,6086,545],{"class":481},[197,6088,6089,6093,6094,2935,6097,6100,6101,6104],{},[207,6090,6091],{},[51,6092,4037],{}," — the history backfill. Here the counters count ",[207,6095,6096],{},"messages",[51,6098,6099],{},"skippedCount"," are the ones deduplicated by wamid), and ",[51,6102,6103],{},"conversationsCount"," counts the conversations touched.",[225,6106,6108],{"className":472,"code":6107,"language":474,"meta":230,"style":230},"{\n  \"type\": \"helpdesk.conversation_sync.updated\",\n  \"accountId\": \"0195f3a0-...\",\n  \"runId\": \"0195f47d-...\",\n  \"inboxId\": \"0195f3c2-...\",\n  \"connectionId\": \"0195f3a0-...\",\n  \"status\": \"completed\",\n  \"totalCount\": 8400,\n  \"processedCount\": 8400,\n  \"createdCount\": 8112,\n  \"updatedCount\": 0,\n  \"skippedCount\": 288,\n  \"failedCount\": 0,\n  \"conversationsCount\": 214,\n  \"errorMessage\": null\n}\n",[51,6109,6110,6114,6125,6135,6146,6156,6166,6177,6188,6198,6209,6219,6230,6240,6252,6260],{"__ignoreMap":230},[234,6111,6112],{"class":236,"line":237},[234,6113,482],{"class":481},[234,6115,6116,6118,6120,6123],{"class":236,"line":258},[234,6117,4149],{"class":244},[234,6119,490],{"class":481},[234,6121,6122],{"class":248},"\"helpdesk.conversation_sync.updated\"",[234,6124,496],{"class":481},[234,6126,6127,6129,6131,6133],{"class":236,"line":269},[234,6128,4161],{"class":244},[234,6130,490],{"class":481},[234,6132,4093],{"class":248},[234,6134,496],{"class":481},[234,6136,6137,6139,6141,6144],{"class":236,"line":279},[234,6138,5974],{"class":244},[234,6140,490],{"class":481},[234,6142,6143],{"class":248},"\"0195f47d-...\"",[234,6145,496],{"class":481},[234,6147,6148,6150,6152,6154],{"class":236,"line":288},[234,6149,4185],{"class":244},[234,6151,490],{"class":481},[234,6153,4308],{"class":248},[234,6155,496],{"class":481},[234,6157,6158,6160,6162,6164],{"class":236,"line":294},[234,6159,501],{"class":244},[234,6161,490],{"class":481},[234,6163,4093],{"class":248},[234,6165,496],{"class":481},[234,6167,6168,6170,6172,6175],{"class":236,"line":300},[234,6169,738],{"class":244},[234,6171,490],{"class":481},[234,6173,6174],{"class":248},"\"completed\"",[234,6176,496],{"class":481},[234,6178,6179,6181,6183,6186],{"class":236,"line":306},[234,6180,6007],{"class":244},[234,6182,490],{"class":481},[234,6184,6185],{"class":244},"8400",[234,6187,496],{"class":481},[234,6189,6190,6192,6194,6196],{"class":236,"line":312},[234,6191,6019],{"class":244},[234,6193,490],{"class":481},[234,6195,6185],{"class":244},[234,6197,496],{"class":481},[234,6199,6200,6202,6204,6207],{"class":236,"line":760},[234,6201,6031],{"class":244},[234,6203,490],{"class":481},[234,6205,6206],{"class":244},"8112",[234,6208,496],{"class":481},[234,6210,6211,6213,6215,6217],{"class":236,"line":779},[234,6212,6043],{"class":244},[234,6214,490],{"class":481},[234,6216,6071],{"class":244},[234,6218,496],{"class":481},[234,6220,6221,6223,6225,6228],{"class":236,"line":792},[234,6222,6055],{"class":244},[234,6224,490],{"class":481},[234,6226,6227],{"class":244},"288",[234,6229,496],{"class":481},[234,6231,6232,6234,6236,6238],{"class":236,"line":805},[234,6233,6066],{"class":244},[234,6235,490],{"class":481},[234,6237,6071],{"class":244},[234,6239,496],{"class":481},[234,6241,6242,6245,6247,6250],{"class":236,"line":816},[234,6243,6244],{"class":244},"  \"conversationsCount\"",[234,6246,490],{"class":481},[234,6248,6249],{"class":244},"214",[234,6251,496],{"class":481},[234,6253,6254,6256,6258],{"class":236,"line":1129},[234,6255,6078],{"class":244},[234,6257,490],{"class":481},[234,6259,4247],{"class":244},[234,6261,6262],{"class":236,"line":1146},[234,6263,545],{"class":481},[197,6265,6266],{},"Headers:",[340,6268,6269,6277],{},[343,6270,6271],{},[346,6272,6273,6275],{},[349,6274,3436],{},[349,6276,3439],{},[356,6278,6279,6289],{},[346,6280,6281,6286],{},[361,6282,6283],{},[51,6284,6285],{},"X-Helpdesk-Event",[361,6287,6288],{},"The event name",[346,6290,6291,6296],{},[361,6292,6293],{},[51,6294,6295],{},"X-Helpdesk-Signature",[361,6297,6298],{},"The hex HMAC-SHA256 of the body",[197,6300,6301,6302,6305],{},"Here the signature covers the ",[207,6303,6304],{},"body alone"," — there is no timestamp in the signed material:",[225,6307,6310],{"className":6308,"code":6309,"language":2906},[3475],"signature = HMAC_SHA256(rawBody, signingSecret).hex()\n",[51,6311,6309],{"__ignoreMap":230},[197,6313,6314],{},"Retries follow the same policy as connection webhooks: 3 attempts, exponential backoff from 5 seconds, 10-second timeout.",[197,6316,6317],{},"Before going live, fire a test delivery at your endpoint — it runs immediately and reports back what your server answered:",[225,6319,6321],{"className":227,"code":6320,"language":229,"meta":230,"style":230},"curl -X POST https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fhelpdesk\u002Fwebhooks\u002F{id}\u002Ftest \\\n  -H \"apikey: sk_live_...\"\n",[51,6322,6323,6336],{"__ignoreMap":230},[234,6324,6325,6327,6329,6331,6334],{"class":236,"line":237},[234,6326,241],{"class":240},[234,6328,245],{"class":244},[234,6330,249],{"class":248},[234,6332,6333],{"class":248}," https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fhelpdesk\u002Fwebhooks\u002F{id}\u002Ftest",[234,6335,255],{"class":244},[234,6337,6338,6340],{"class":236,"line":258},[234,6339,261],{"class":244},[234,6341,3424],{"class":248},[225,6343,6345],{"className":472,"code":6344,"language":474,"meta":230,"style":230},"{ \"status\": 200, \"durationMs\": 143 }\n",[51,6346,6347],{"__ignoreMap":230},[234,6348,6349,6352,6355,6357,6360,6362,6365,6367,6370],{"class":236,"line":237},[234,6350,6351],{"class":481},"{ ",[234,6353,6354],{"class":244},"\"status\"",[234,6356,490],{"class":481},[234,6358,6359],{"class":244},"200",[234,6361,916],{"class":481},[234,6363,6364],{"class":244},"\"durationMs\"",[234,6366,490],{"class":481},[234,6368,6369],{"class":244},"143",[234,6371,1662],{"class":481},[218,6373,6375,6376,6380],{"id":6374},"sending-messages-into-pingo","Sending messages ",[6377,6378,6379],"em",{},"into"," Pingo",[197,6382,6383,6384,6387],{},"The webhooks above are outbound. The ",[207,6385,6386],{},"API channel"," is the inbound direction: an inbox that is not a WhatsApp number at all, that your own application pushes messages into.",[197,6389,6390,6391,6394,6395,6398,6399,326],{},"Create an inbox with ",[51,6392,6393],{},"channelType: \"API\"",". The create response returns the credential as ",[51,6396,6397],{},"inboundWebhookSecret","; later reads of the API inbox return that same credential as ",[51,6400,6401],{},"channelConfig.hmacToken",[225,6403,6405],{"className":227,"code":6404,"language":229,"meta":230,"style":230},"curl -X POST https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fhelpdesk\u002Finboxes \\\n  -H \"apikey: sk_live_...\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"name\": \"Web widget\", \"channelType\": \"API\" }'\n",[51,6406,6407,6420,6428,6436],{"__ignoreMap":230},[234,6408,6409,6411,6413,6415,6418],{"class":236,"line":237},[234,6410,241],{"class":240},[234,6412,245],{"class":244},[234,6414,249],{"class":248},[234,6416,6417],{"class":248}," https:\u002F\u002Fapi.pingonotify.com\u002Fv3\u002Fhelpdesk\u002Finboxes",[234,6419,255],{"class":244},[234,6421,6422,6424,6426],{"class":236,"line":258},[234,6423,261],{"class":244},[234,6425,264],{"class":248},[234,6427,255],{"class":244},[234,6429,6430,6432,6434],{"class":236,"line":269},[234,6431,261],{"class":244},[234,6433,274],{"class":248},[234,6435,255],{"class":244},[234,6437,6438,6440],{"class":236,"line":279},[234,6439,282],{"class":244},[234,6441,6442],{"class":248}," '{ \"name\": \"Web widget\", \"channelType\": \"API\" }'\n",[197,6444,6445],{},"Then push a customer message in:",[225,6447,6449],{"className":227,"code":6448,"language":229,"meta":230,"style":230},"curl -X POST https:\u002F\u002Fapi.pingonotify.com\u002Fwebhooks\u002Fhelpdesk\u002F{inboxId} \\\n  -H \"x-helpdesk-token: \u003CinboundWebhookSecret>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"sourceId\": \"your-message-id-123\",\n    \"content\": \"Is my order shipped?\",\n    \"sender\": { \"name\": \"Ana\", \"email\": \"ana@example.com\" }\n  }'\n",[51,6450,6451,6464,6473,6481,6487,6492,6497,6502],{"__ignoreMap":230},[234,6452,6453,6455,6457,6459,6462],{"class":236,"line":237},[234,6454,241],{"class":240},[234,6456,245],{"class":244},[234,6458,249],{"class":248},[234,6460,6461],{"class":248}," https:\u002F\u002Fapi.pingonotify.com\u002Fwebhooks\u002Fhelpdesk\u002F{inboxId}",[234,6463,255],{"class":244},[234,6465,6466,6468,6471],{"class":236,"line":258},[234,6467,261],{"class":244},[234,6469,6470],{"class":248}," \"x-helpdesk-token: \u003CinboundWebhookSecret>\"",[234,6472,255],{"class":244},[234,6474,6475,6477,6479],{"class":236,"line":269},[234,6476,261],{"class":244},[234,6478,274],{"class":248},[234,6480,255],{"class":244},[234,6482,6483,6485],{"class":236,"line":279},[234,6484,282],{"class":244},[234,6486,285],{"class":248},[234,6488,6489],{"class":236,"line":288},[234,6490,6491],{"class":248},"    \"sourceId\": \"your-message-id-123\",\n",[234,6493,6494],{"class":236,"line":294},[234,6495,6496],{"class":248},"    \"content\": \"Is my order shipped?\",\n",[234,6498,6499],{"class":236,"line":300},[234,6500,6501],{"class":248},"    \"sender\": { \"name\": \"Ana\", \"email\": \"ana@example.com\" }\n",[234,6503,6504],{"class":236,"line":306},[234,6505,315],{"class":248},[197,6507,3044,6508,6511,6512,3816,6515,6518,6519,6521],{},[51,6509,6510],{},"channelConfig.hmacMandatory: true"," on the inbox to require either ",[51,6513,6514],{},"x-helpdesk-token",[51,6516,6517],{},"x-helpdesk-signature",". When it is ",[51,6520,704],{}," or omitted, a request with neither credential is accepted; a credential that is present but invalid is always rejected.",[197,6523,6524],{},"The contact is resolved or created automatically, a conversation opens, and your agents answer it in the shared inbox like any other.",[197,6526,6527,6528,6531,6532,6534],{},"To receive their replies, set ",[51,6529,6530],{},"channelConfig.webhookUrl"," on the inbox. Pingo will ",[51,6533,454],{}," each outgoing message there, signed with the same secret:",[225,6536,6538],{"className":472,"code":6537,"language":474,"meta":230,"style":230},"{\n  \"event\": \"message.created\",\n  \"data\": {\n    \"sourceId\": \"0195f3d3-...\",\n    \"recipientIdentifier\": \"ana@example.com\",\n    \"content\": \"Yes, it shipped this morning.\",\n    \"attachments\": []\n  },\n  \"deliveredAt\": \"2026-07-14T12:35:10.000Z\"\n}\n",[51,6539,6540,6544,6555,6561,6572,6584,6595,6602,6606,6615],{"__ignoreMap":230},[234,6541,6542],{"class":236,"line":237},[234,6543,482],{"class":481},[234,6545,6546,6548,6550,6553],{"class":236,"line":258},[234,6547,487],{"class":244},[234,6549,490],{"class":481},[234,6551,6552],{"class":248},"\"message.created\"",[234,6554,496],{"class":481},[234,6556,6557,6559],{"class":236,"line":269},[234,6558,537],{"class":244},[234,6560,683],{"class":481},[234,6562,6563,6566,6568,6570],{"class":236,"line":279},[234,6564,6565],{"class":244},"    \"sourceId\"",[234,6567,490],{"class":481},[234,6569,5068],{"class":248},[234,6571,496],{"class":481},[234,6573,6574,6577,6579,6582],{"class":236,"line":288},[234,6575,6576],{"class":244},"    \"recipientIdentifier\"",[234,6578,490],{"class":481},[234,6580,6581],{"class":248},"\"ana@example.com\"",[234,6583,496],{"class":481},[234,6585,6586,6588,6590,6593],{"class":236,"line":294},[234,6587,5102],{"class":244},[234,6589,490],{"class":481},[234,6591,6592],{"class":248},"\"Yes, it shipped this morning.\"",[234,6594,496],{"class":481},[234,6596,6597,6599],{"class":236,"line":300},[234,6598,5180],{"class":244},[234,6600,6601],{"class":481},": []\n",[234,6603,6604],{"class":236,"line":306},[234,6605,721],{"class":481},[234,6607,6608,6610,6612],{"class":236,"line":312},[234,6609,4109],{"class":244},[234,6611,490],{"class":481},[234,6613,6614],{"class":248},"\"2026-07-14T12:35:10.000Z\"\n",[234,6616,6617],{"class":236,"line":760},[234,6618,545],{"class":481},[197,6620,6621,6622,6625],{},"Answer with ",[51,6623,6624],{},"{ \"sourceId\": \"your-own-id\" }"," and Pingo will remember your id for that message — which is what lets you report delivery back later:",[225,6627,6629],{"className":227,"code":6628,"language":229,"meta":230,"style":230},"curl -X POST https:\u002F\u002Fapi.pingonotify.com\u002Fwebhooks\u002Fhelpdesk\u002F{inboxId} \\\n  -H \"x-helpdesk-token: \u003CinboundWebhookSecret>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"event\": \"status_update\", \"sourceId\": \"your-own-id\", \"status\": \"READ\" }'\n",[51,6630,6631,6643,6651,6659],{"__ignoreMap":230},[234,6632,6633,6635,6637,6639,6641],{"class":236,"line":237},[234,6634,241],{"class":240},[234,6636,245],{"class":244},[234,6638,249],{"class":248},[234,6640,6461],{"class":248},[234,6642,255],{"class":244},[234,6644,6645,6647,6649],{"class":236,"line":258},[234,6646,261],{"class":244},[234,6648,6470],{"class":248},[234,6650,255],{"class":244},[234,6652,6653,6655,6657],{"class":236,"line":269},[234,6654,261],{"class":244},[234,6656,274],{"class":248},[234,6658,255],{"class":244},[234,6660,6661,6663],{"class":236,"line":279},[234,6662,282],{"class":244},[234,6664,6665],{"class":248}," '{ \"event\": \"status_update\", \"sourceId\": \"your-own-id\", \"status\": \"READ\" }'\n",[6667,6668,6669],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":230,"searchDepth":269,"depth":269,"links":6671},[6672,6682,6686],{"id":220,"depth":258,"text":209,"children":6673},[6674,6675,6676,6677,6678,6679,6680,6681],{"id":330,"depth":269,"text":331},{"id":461,"depth":269,"text":462},{"id":640,"depth":269,"text":641},{"id":1694,"depth":269,"text":952},{"id":2981,"depth":269,"text":2982},{"id":3040,"depth":269,"text":3041},{"id":3396,"depth":269,"text":3397},{"id":3804,"depth":269,"text":3805},{"id":3836,"depth":258,"text":215,"children":6683},[6684,6685],{"id":3921,"depth":269,"text":3922},{"id":4040,"depth":269,"text":462},{"id":6374,"depth":258,"text":6687},"Sending messages into Pingo","md",{},{"title":16,"description":37},"en\u002Fapi-reference\u002Fv3\u002Fwebhooks","VfESaLdpe9XukT2flteFDQ6WiR_MfKmbP4-nkWsrda8",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":6694},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m15 18l-6-6l6-6\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":6696},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":143,"top":143,"width":149,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":6698},"\u003Cpath fill=\"currentColor\" d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32m0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24m32 224a32 32 0 1 0-64 0a32 32 0 1 0 64 0\"\u002F>",{"left":143,"top":143,"width":149,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":6700},"\u003Cpath fill=\"currentColor\" d=\"M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m-40-176h24v-64h-24c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-80c-13.3 0-24-10.7-24-24s10.7-24 24-24m40-208a32 32 0 1 1 0 64a32 32 0 1 1 0-64\"\u002F>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":6702},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fg>",1787698191320]