[{"data":1,"prerenderedAt":1242},["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\u002Frealtime":191,"i-fa6-solid:circle-info":1236,"i-lucide:copy":1238,"i-lucide:chevron-left":1240},[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":32,"body":193,"description":33,"extension":1231,"hidden":145,"icon":34,"meta":1232,"navigation":300,"path":31,"seo":1233,"stem":1234,"__hash__":1235},"docs\u002Fen\u002Fapi-reference\u002Fv3\u002Frealtime.md",{"type":194,"value":195,"toc":1223},"minimark",[196,208,251,256,263,433,444,448,451,461,540,558,588,591,595,598,659,666,670,673,723,726,828,831,835,842,876,879,882,918,935,950,954,957,1190,1219],[197,198,199,200,207],"p",{},"The helpdesk pushes every change over a websocket, so you never have to poll. It is a standard ",[201,202,206],"a",{"href":203,"rel":204},"https:\u002F\u002Fsocket.io",[205],"nofollow","Socket.IO"," connection.",[209,210,211,222],"table",{},[212,213,214],"thead",{},[215,216,217,220],"tr",{},[218,219],"th",{},[218,221],{},[223,224,225,239],"tbody",{},[215,226,227,234],{},[228,229,230],"td",{},[231,232,233],"strong",{},"Namespace",[228,235,236],{},[51,237,238],{},"\u002Fhelpdesk",[215,240,241,246],{},[228,242,243],{},[231,244,245],{},"Path",[228,247,248],{},[51,249,250],{},"\u002Fws",[252,253,255],"h2",{"id":254},"connecting","Connecting",[197,257,258,259,262],{},"Authenticate with your API token in the ",[51,260,261],{},"apikey"," query parameter. The workspace comes from the token, so there is nothing else to send:",[264,265,270],"pre",{"className":266,"code":267,"language":268,"meta":269,"style":269},"language-js shiki shiki-themes github-light github-dark","import { io } from 'socket.io-client';\n\nconst socket = io('https:\u002F\u002Fapi.pingonotify.com\u002Fhelpdesk', {\n  path: '\u002Fws',\n  query: { apikey: 'sk_live_...' },\n});\n\nsocket.on('connect', () => console.log('connected'));\nsocket.on('connect_error', (err) => console.error(err.message)); \u002F\u002F \"unauthorized\"\n","js","",[51,271,272,295,302,328,340,352,358,363,397],{"__ignoreMap":269},[273,274,277,281,285,288,292],"span",{"class":275,"line":276},"line",1,[273,278,280],{"class":279},"szBVR","import",[273,282,284],{"class":283},"sVt8B"," { io } ",[273,286,287],{"class":279},"from",[273,289,291],{"class":290},"sZZnC"," 'socket.io-client'",[273,293,294],{"class":283},";\n",[273,296,298],{"class":275,"line":297},2,[273,299,301],{"emptyLinePlaceholder":300},true,"\n",[273,303,305,308,312,315,319,322,325],{"class":275,"line":304},3,[273,306,307],{"class":279},"const",[273,309,311],{"class":310},"sj4cs"," socket",[273,313,314],{"class":279}," =",[273,316,318],{"class":317},"sScJk"," io",[273,320,321],{"class":283},"(",[273,323,324],{"class":290},"'https:\u002F\u002Fapi.pingonotify.com\u002Fhelpdesk'",[273,326,327],{"class":283},", {\n",[273,329,331,334,337],{"class":275,"line":330},4,[273,332,333],{"class":283},"  path: ",[273,335,336],{"class":290},"'\u002Fws'",[273,338,339],{"class":283},",\n",[273,341,343,346,349],{"class":275,"line":342},5,[273,344,345],{"class":283},"  query: { apikey: ",[273,347,348],{"class":290},"'sk_live_...'",[273,350,351],{"class":283}," },\n",[273,353,355],{"class":275,"line":354},6,[273,356,357],{"class":283},"});\n",[273,359,361],{"class":275,"line":360},7,[273,362,301],{"emptyLinePlaceholder":300},[273,364,366,369,372,374,377,380,383,386,389,391,394],{"class":275,"line":365},8,[273,367,368],{"class":283},"socket.",[273,370,371],{"class":317},"on",[273,373,321],{"class":283},[273,375,376],{"class":290},"'connect'",[273,378,379],{"class":283},", () ",[273,381,382],{"class":279},"=>",[273,384,385],{"class":283}," console.",[273,387,388],{"class":317},"log",[273,390,321],{"class":283},[273,392,393],{"class":290},"'connected'",[273,395,396],{"class":283},"));\n",[273,398,400,402,404,406,409,412,416,419,421,423,426,429],{"class":275,"line":399},9,[273,401,368],{"class":283},[273,403,371],{"class":317},[273,405,321],{"class":283},[273,407,408],{"class":290},"'connect_error'",[273,410,411],{"class":283},", (",[273,413,415],{"class":414},"s4XuR","err",[273,417,418],{"class":283},") ",[273,420,382],{"class":279},[273,422,385],{"class":283},[273,424,425],{"class":317},"error",[273,427,428],{"class":283},"(err.message)); ",[273,430,432],{"class":431},"sJ8bj","\u002F\u002F \"unauthorized\"\n",[197,434,435,436,439,440,443],{},"A bad or revoked token does not close the socket — it fails the namespace with a ",[51,437,438],{},"connect_error"," carrying the message ",[51,441,442],{},"unauthorized",".",[252,445,447],{"id":446},"what-you-receive","What you receive",[197,449,450],{},"You are subscribed automatically to your own user room, workspace presence, and every inbox you belong to. Managers and above join every inbox in the workspace. Events scoped only to a conversation require the explicit subscription described below.",[197,452,453,456,457,460],{},[231,454,455],{},"The event name is the event type, and the payload is the event object itself"," — the same events the ",[201,458,459],{"href":36},"helpdesk webhooks"," deliver:",[264,462,464],{"className":266,"code":463,"language":268,"meta":269,"style":269},"socket.on('helpdesk.message.created', (event) => {\n  \u002F\u002F event.conversationId, event.inboxId, event.message, ...\n  appendToTimeline(event.message);\n});\n\nsocket.on('helpdesk.conversation.assignee_changed', (event) => {\n  \u002F\u002F event.fromAssigneeUserId, event.toAssigneeUserId, ...\n});\n",[51,465,466,489,494,502,506,510,531,536],{"__ignoreMap":269},[273,467,468,470,472,474,477,479,482,484,486],{"class":275,"line":276},[273,469,368],{"class":283},[273,471,371],{"class":317},[273,473,321],{"class":283},[273,475,476],{"class":290},"'helpdesk.message.created'",[273,478,411],{"class":283},[273,480,481],{"class":414},"event",[273,483,418],{"class":283},[273,485,382],{"class":279},[273,487,488],{"class":283}," {\n",[273,490,491],{"class":275,"line":297},[273,492,493],{"class":431},"  \u002F\u002F event.conversationId, event.inboxId, event.message, ...\n",[273,495,496,499],{"class":275,"line":304},[273,497,498],{"class":317},"  appendToTimeline",[273,500,501],{"class":283},"(event.message);\n",[273,503,504],{"class":275,"line":330},[273,505,357],{"class":283},[273,507,508],{"class":275,"line":342},[273,509,301],{"emptyLinePlaceholder":300},[273,511,512,514,516,518,521,523,525,527,529],{"class":275,"line":354},[273,513,368],{"class":283},[273,515,371],{"class":317},[273,517,321],{"class":283},[273,519,520],{"class":290},"'helpdesk.conversation.assignee_changed'",[273,522,411],{"class":283},[273,524,481],{"class":414},[273,526,418],{"class":283},[273,528,382],{"class":279},[273,530,488],{"class":283},[273,532,533],{"class":275,"line":360},[273,534,535],{"class":431},"  \u002F\u002F event.fromAssigneeUserId, event.toAssigneeUserId, ...\n",[273,537,538],{"class":275,"line":365},[273,539,357],{"class":283},[197,541,542,543,546,547,553,554,557],{},"The websocket supports the events listed under ",[201,544,459],{"href":545},"\u002Fen\u002Fapi-reference\u002Fv3\u002Fwebhooks#the-helpdesk-events",", with one exception: ",[231,548,549,552],{},[51,550,551],{},"helpdesk.sla.missed"," is not broadcast over the websocket."," Delivery still follows each event's destination: inbox events reach the relevant inbox rooms, personal events reach their user room, and conversation-only updates require ",[51,555,556],{},"subscribe:conversation",". CSAT and mention events also go only to their relevant rooms.",[197,559,560,561,566,567,570,571,570,574,570,577,580,581,584,585,443],{},"The websocket also has one personal event that is not sent to helpdesk webhooks: ",[231,562,563],{},[51,564,565],{},"helpdesk.notification.created",". It is emitted only to the recipient user's room after an in-app notification is created. Its payload contains ",[51,568,569],{},"accountId",", ",[51,572,573],{},"userId",[51,575,576],{},"notificationId",[51,578,579],{},"notificationType",", the primary and optional secondary actor types and ids, ",[51,582,583],{},"createdAt",", and may include a hydrated ",[51,586,587],{},"message",[197,589,590],{},"Messages arrive fully hydrated — the same shape the REST API returns — so you can render an incoming message without a follow-up request.",[252,592,594],{"id":593},"following-one-conversation","Following one conversation",[197,596,597],{},"Opening a conversation means joining its room. Do that explicitly, and leave when you close it:",[264,599,601],{"className":266,"code":600,"language":268,"meta":269,"style":269},"socket.emit('subscribe:conversation', { conversationId }, (ack) => {\n  \u002F\u002F { ok: true }\n});\n\n\u002F\u002F later\nsocket.emit('unsubscribe:conversation', { conversationId });\n",[51,602,603,627,632,636,640,645],{"__ignoreMap":269},[273,604,605,607,610,612,615,618,621,623,625],{"class":275,"line":276},[273,606,368],{"class":283},[273,608,609],{"class":317},"emit",[273,611,321],{"class":283},[273,613,614],{"class":290},"'subscribe:conversation'",[273,616,617],{"class":283},", { conversationId }, (",[273,619,620],{"class":414},"ack",[273,622,418],{"class":283},[273,624,382],{"class":279},[273,626,488],{"class":283},[273,628,629],{"class":275,"line":297},[273,630,631],{"class":431},"  \u002F\u002F { ok: true }\n",[273,633,634],{"class":275,"line":304},[273,635,357],{"class":283},[273,637,638],{"class":275,"line":330},[273,639,301],{"emptyLinePlaceholder":300},[273,641,642],{"class":275,"line":342},[273,643,644],{"class":431},"\u002F\u002F later\n",[273,646,647,649,651,653,656],{"class":275,"line":354},[273,648,368],{"class":283},[273,650,609],{"class":317},[273,652,321],{"class":283},[273,654,655],{"class":290},"'unsubscribe:conversation'",[273,657,658],{"class":283},", { conversationId });\n",[197,660,661,662,665],{},"Subscribing to a conversation you cannot see fails with ",[51,663,664],{},"conversation not found"," — the same answer as one that does not exist.",[252,667,669],{"id":668},"typing-and-read-receipts","Typing and read receipts",[197,671,672],{},"These are relayed between agents, so your team can see each other working. They are not sent to the contact.",[264,674,676],{"className":266,"code":675,"language":268,"meta":269,"style":269},"socket.emit('typing:start', { conversationId });\nsocket.emit('typing:stop',  { conversationId });\n\nsocket.emit('read:up_to', { conversationId, messageId });\n",[51,677,678,691,705,709],{"__ignoreMap":269},[273,679,680,682,684,686,689],{"class":275,"line":276},[273,681,368],{"class":283},[273,683,609],{"class":317},[273,685,321],{"class":283},[273,687,688],{"class":290},"'typing:start'",[273,690,658],{"class":283},[273,692,693,695,697,699,702],{"class":275,"line":297},[273,694,368],{"class":283},[273,696,609],{"class":317},[273,698,321],{"class":283},[273,700,701],{"class":290},"'typing:stop'",[273,703,704],{"class":283},",  { conversationId });\n",[273,706,707],{"class":275,"line":304},[273,708,301],{"emptyLinePlaceholder":300},[273,710,711,713,715,717,720],{"class":275,"line":330},[273,712,368],{"class":283},[273,714,609],{"class":317},[273,716,321],{"class":283},[273,718,719],{"class":290},"'read:up_to'",[273,721,722],{"class":283},", { conversationId, messageId });\n",[197,724,725],{},"And on the receiving side:",[264,727,729],{"className":266,"code":728,"language":268,"meta":269,"style":269},"socket.on('typing:start', ({ conversationId, userId }) => { \u002F* ... *\u002F });\nsocket.on('typing:stop',  ({ conversationId, userId }) => { \u002F* ... *\u002F });\nsocket.on('read:up_to',   ({ conversationId, userId, messageId }) => { \u002F* ... *\u002F });\n",[51,730,731,765,794],{"__ignoreMap":269},[273,732,733,735,737,739,741,744,747,749,751,754,756,759,762],{"class":275,"line":276},[273,734,368],{"class":283},[273,736,371],{"class":317},[273,738,321],{"class":283},[273,740,688],{"class":290},[273,742,743],{"class":283},", ({ ",[273,745,746],{"class":414},"conversationId",[273,748,570],{"class":283},[273,750,573],{"class":414},[273,752,753],{"class":283}," }) ",[273,755,382],{"class":279},[273,757,758],{"class":283}," { ",[273,760,761],{"class":431},"\u002F* ... *\u002F",[273,763,764],{"class":283}," });\n",[273,766,767,769,771,773,775,778,780,782,784,786,788,790,792],{"class":275,"line":297},[273,768,368],{"class":283},[273,770,371],{"class":317},[273,772,321],{"class":283},[273,774,701],{"class":290},[273,776,777],{"class":283},",  ({ ",[273,779,746],{"class":414},[273,781,570],{"class":283},[273,783,573],{"class":414},[273,785,753],{"class":283},[273,787,382],{"class":279},[273,789,758],{"class":283},[273,791,761],{"class":431},[273,793,764],{"class":283},[273,795,796,798,800,802,804,807,809,811,813,815,818,820,822,824,826],{"class":275,"line":304},[273,797,368],{"class":283},[273,799,371],{"class":317},[273,801,321],{"class":283},[273,803,719],{"class":290},[273,805,806],{"class":283},",   ({ ",[273,808,746],{"class":414},[273,810,570],{"class":283},[273,812,573],{"class":414},[273,814,570],{"class":283},[273,816,817],{"class":414},"messageId",[273,819,753],{"class":283},[273,821,382],{"class":279},[273,823,758],{"class":283},[273,825,761],{"class":431},[273,827,764],{"class":283},[197,829,830],{},"You never receive your own typing events back.",[252,832,834],{"id":833},"presence","Presence",[197,836,837,838,841],{},"Presence is a heartbeat. Send one every ",[231,839,840],{},"20 seconds"," while the agent is active:",[264,843,845],{"className":266,"code":844,"language":268,"meta":269,"style":269},"setInterval(() => socket.emit('presence:online'), 20_000);\n",[51,846,847],{"__ignoreMap":269},[273,848,849,852,855,857,860,862,864,867,870,873],{"class":275,"line":276},[273,850,851],{"class":317},"setInterval",[273,853,854],{"class":283},"(() ",[273,856,382],{"class":279},[273,858,859],{"class":283}," socket.",[273,861,609],{"class":317},[273,863,321],{"class":283},[273,865,866],{"class":290},"'presence:online'",[273,868,869],{"class":283},"), ",[273,871,872],{"class":310},"20_000",[273,874,875],{"class":283},");\n",[197,877,878],{},"Stop sending it and the agent decays to offline on their own — a page reload or a brief disconnect does not flicker them offline, which is exactly what you want.",[197,880,881],{},"The workspace snapshot arrives on connect and again whenever anyone's status changes:",[264,883,885],{"className":266,"code":884,"language":268,"meta":269,"style":269},"socket.on('presence.update', ({ users }) => {\n  \u002F\u002F { \"0195f3a0-...\": \"online\", \"0195f3b1-...\": \"busy\", ... }\n});\n",[51,886,887,909,914],{"__ignoreMap":269},[273,888,889,891,893,895,898,900,903,905,907],{"class":275,"line":276},[273,890,368],{"class":283},[273,892,371],{"class":317},[273,894,321],{"class":283},[273,896,897],{"class":290},"'presence.update'",[273,899,743],{"class":283},[273,901,902],{"class":414},"users",[273,904,753],{"class":283},[273,906,382],{"class":279},[273,908,488],{"class":283},[273,910,911],{"class":275,"line":297},[273,912,913],{"class":431},"  \u002F\u002F { \"0195f3a0-...\": \"online\", \"0195f3b1-...\": \"busy\", ... }\n",[273,915,916],{"class":275,"line":304},[273,917,357],{"class":283},[197,919,920,921,570,924,927,928,931,932,443],{},"An agent is ",[51,922,923],{},"online",[51,925,926],{},"busy"," or ",[51,929,930],{},"offline",". They set it themselves with ",[51,933,934],{},"PATCH \u002Fv3\u002Fhelpdesk\u002Fprofile\u002Favailability",[936,937,938],"note",{},[197,939,940,941,943,944,946,947,949],{},"Presence controls round-robin when there are two or more eligible agents: only agents who are ",[51,942,923],{}," participate, while ",[51,945,926],{}," and ",[51,948,930],{}," agents are skipped. With exactly one eligible inbox member, that agent is assigned even while offline. With no inbox members and no team restriction, assignment falls back to the workspace Owner; a team-restricted conversation has no Owner fallback.",[252,951,953],{"id":952},"a-worked-example","A worked example",[197,955,956],{},"Keeping a conversation list live, end to end:",[264,958,960],{"className":266,"code":959,"language":268,"meta":269,"style":269},"const socket = io('https:\u002F\u002Fapi.pingonotify.com\u002Fhelpdesk', {\n  path: '\u002Fws',\n  query: { apikey: process.env.PINGO_TOKEN },\n});\n\n\u002F\u002F A new conversation arrived in one of my inboxes.\nsocket.on('helpdesk.conversation.created', (e) => list.prepend(e.conversationId));\n\n\u002F\u002F Its preview line changed.\nsocket.on('helpdesk.message.created', (e) => list.updatePreview(e.conversationId, e.message));\n\n\u002F\u002F Someone resolved it, or it moved owner.\nsocket.on('helpdesk.conversation.status_changed',   (e) => list.setStatus(e.conversationId, e.toStatus));\nsocket.on('helpdesk.conversation.assignee_changed', (e) => list.setOwner(e.conversationId, e.toAssigneeUserId));\n\n\u002F\u002F A message I sent got delivered or failed.\nsocket.on('helpdesk.message.status_changed', (e) => {\n  timeline.setStatus(e.messageId, e.toStatus, e.externalError);\n});\n",[51,961,962,978,986,996,1000,1004,1009,1038,1042,1047,1074,1079,1085,1114,1141,1146,1152,1174,1185],{"__ignoreMap":269},[273,963,964,966,968,970,972,974,976],{"class":275,"line":276},[273,965,307],{"class":279},[273,967,311],{"class":310},[273,969,314],{"class":279},[273,971,318],{"class":317},[273,973,321],{"class":283},[273,975,324],{"class":290},[273,977,327],{"class":283},[273,979,980,982,984],{"class":275,"line":297},[273,981,333],{"class":283},[273,983,336],{"class":290},[273,985,339],{"class":283},[273,987,988,991,994],{"class":275,"line":304},[273,989,990],{"class":283},"  query: { apikey: process.env.",[273,992,993],{"class":310},"PINGO_TOKEN",[273,995,351],{"class":283},[273,997,998],{"class":275,"line":330},[273,999,357],{"class":283},[273,1001,1002],{"class":275,"line":342},[273,1003,301],{"emptyLinePlaceholder":300},[273,1005,1006],{"class":275,"line":354},[273,1007,1008],{"class":431},"\u002F\u002F A new conversation arrived in one of my inboxes.\n",[273,1010,1011,1013,1015,1017,1020,1022,1025,1027,1029,1032,1035],{"class":275,"line":360},[273,1012,368],{"class":283},[273,1014,371],{"class":317},[273,1016,321],{"class":283},[273,1018,1019],{"class":290},"'helpdesk.conversation.created'",[273,1021,411],{"class":283},[273,1023,1024],{"class":414},"e",[273,1026,418],{"class":283},[273,1028,382],{"class":279},[273,1030,1031],{"class":283}," list.",[273,1033,1034],{"class":317},"prepend",[273,1036,1037],{"class":283},"(e.conversationId));\n",[273,1039,1040],{"class":275,"line":365},[273,1041,301],{"emptyLinePlaceholder":300},[273,1043,1044],{"class":275,"line":399},[273,1045,1046],{"class":431},"\u002F\u002F Its preview line changed.\n",[273,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1071],{"class":275,"line":1049},10,[273,1051,368],{"class":283},[273,1053,371],{"class":317},[273,1055,321],{"class":283},[273,1057,476],{"class":290},[273,1059,411],{"class":283},[273,1061,1024],{"class":414},[273,1063,418],{"class":283},[273,1065,382],{"class":279},[273,1067,1031],{"class":283},[273,1069,1070],{"class":317},"updatePreview",[273,1072,1073],{"class":283},"(e.conversationId, e.message));\n",[273,1075,1077],{"class":275,"line":1076},11,[273,1078,301],{"emptyLinePlaceholder":300},[273,1080,1082],{"class":275,"line":1081},12,[273,1083,1084],{"class":431},"\u002F\u002F Someone resolved it, or it moved owner.\n",[273,1086,1088,1090,1092,1094,1097,1100,1102,1104,1106,1108,1111],{"class":275,"line":1087},13,[273,1089,368],{"class":283},[273,1091,371],{"class":317},[273,1093,321],{"class":283},[273,1095,1096],{"class":290},"'helpdesk.conversation.status_changed'",[273,1098,1099],{"class":283},",   (",[273,1101,1024],{"class":414},[273,1103,418],{"class":283},[273,1105,382],{"class":279},[273,1107,1031],{"class":283},[273,1109,1110],{"class":317},"setStatus",[273,1112,1113],{"class":283},"(e.conversationId, e.toStatus));\n",[273,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135,1138],{"class":275,"line":1116},14,[273,1118,368],{"class":283},[273,1120,371],{"class":317},[273,1122,321],{"class":283},[273,1124,520],{"class":290},[273,1126,411],{"class":283},[273,1128,1024],{"class":414},[273,1130,418],{"class":283},[273,1132,382],{"class":279},[273,1134,1031],{"class":283},[273,1136,1137],{"class":317},"setOwner",[273,1139,1140],{"class":283},"(e.conversationId, e.toAssigneeUserId));\n",[273,1142,1144],{"class":275,"line":1143},15,[273,1145,301],{"emptyLinePlaceholder":300},[273,1147,1149],{"class":275,"line":1148},16,[273,1150,1151],{"class":431},"\u002F\u002F A message I sent got delivered or failed.\n",[273,1153,1155,1157,1159,1161,1164,1166,1168,1170,1172],{"class":275,"line":1154},17,[273,1156,368],{"class":283},[273,1158,371],{"class":317},[273,1160,321],{"class":283},[273,1162,1163],{"class":290},"'helpdesk.message.status_changed'",[273,1165,411],{"class":283},[273,1167,1024],{"class":414},[273,1169,418],{"class":283},[273,1171,382],{"class":279},[273,1173,488],{"class":283},[273,1175,1177,1180,1182],{"class":275,"line":1176},18,[273,1178,1179],{"class":283},"  timeline.",[273,1181,1110],{"class":317},[273,1183,1184],{"class":283},"(e.messageId, e.toStatus, e.externalError);\n",[273,1186,1188],{"class":275,"line":1187},19,[273,1189,357],{"class":283},[197,1191,1192,1193,1196,1197,1200,1201,570,1204,570,1207,1210,1211,1214,1215,1218],{},"Note the last one. When you send a message the REST call returns immediately with ",[51,1194,1195],{},"status: PENDING"," — delivery happens asynchronously. ",[51,1198,1199],{},"helpdesk.message.status_changed"," is how you learn it became ",[51,1202,1203],{},"SENT",[51,1205,1206],{},"DELIVERED",[51,1208,1209],{},"READ",", or ",[51,1212,1213],{},"FAILED"," (in which case ",[51,1216,1217],{},"externalError"," tells you why).",[1220,1221,1222],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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}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);}",{"title":269,"searchDepth":304,"depth":304,"links":1224},[1225,1226,1227,1228,1229,1230],{"id":254,"depth":297,"text":255},{"id":446,"depth":297,"text":447},{"id":593,"depth":297,"text":594},{"id":668,"depth":297,"text":669},{"id":833,"depth":297,"text":834},{"id":952,"depth":297,"text":953},"md",{},{"title":32,"description":33},"en\u002Fapi-reference\u002Fv3\u002Frealtime","FA-t1kPYo-_wFji0TfA9oPAJ6rddiRQb65cFnZTM_ps",{"left":143,"top":143,"width":149,"height":149,"rotate":143,"vFlip":145,"hFlip":145,"body":1237},"\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":1239},"\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>",{"left":143,"top":143,"width":144,"height":144,"rotate":143,"vFlip":145,"hFlip":145,"body":1241},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m15 18l-6-6l6-6\"\u002F>",1787698191579]