[{"data":1,"prerenderedAt":1189},["ShallowReactive",2],{"navigation":3,"\u002Fmodules\u002Fwebhooks":246,"\u002Fmodules\u002Fwebhooks-surround":1184},[4,30,61,96,136,171,196,226],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":29},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Add Clarify","\u002Fgetting-started\u002Fadd-clarify","1.getting-started\u002F2.add-clarify","i-lucide-bot",{"title":21,"path":22,"stem":23,"icon":24},"Dashboard tour","\u002Fgetting-started\u002Fdashboard-tour","1.getting-started\u002F3.dashboard-tour","i-lucide-compass",{"title":26,"path":27,"stem":28,"icon":6},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F4.quickstart",false,{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":29},"Core concepts","i-lucide-lightbulb","\u002Fconcepts","2.concepts",[36,41,46,51,56],{"title":37,"path":38,"stem":39,"icon":40},"How Clarify works","\u002Fconcepts\u002Fhow-clarify-works","2.concepts\u002F1.how-clarify-works","i-lucide-git-compare-arrows",{"title":42,"path":43,"stem":44,"icon":45},"Tickets & delivery modes","\u002Fconcepts\u002Ftickets-and-modes","2.concepts\u002F2.tickets-and-modes","i-lucide-ticket",{"title":47,"path":48,"stem":49,"icon":50},"Categories & ticket fields","\u002Fconcepts\u002Fcategories-and-inputs","2.concepts\u002F3.categories-and-inputs","i-lucide-tags",{"title":52,"path":53,"stem":54,"icon":55},"Cards & placeholders","\u002Fconcepts\u002Fcards-and-placeholders","2.concepts\u002F4.cards-and-placeholders","i-lucide-layout-panel-left",{"title":57,"path":58,"stem":59,"icon":60},"Roles & permissions","\u002Fconcepts\u002Froles-and-permissions","2.concepts\u002F5.roles-and-permissions","i-lucide-user-cog",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":29},"Configuration","i-lucide-sliders-horizontal","\u002Fconfiguration","3.configuration",[67,72,77,81,86,91],{"title":68,"path":69,"stem":70,"icon":71},"Onboarding","\u002Fconfiguration\u002Fonboarding","3.configuration\u002F1.onboarding","i-lucide-wand-sparkles",{"title":73,"path":74,"stem":75,"icon":76},"General settings","\u002Fconfiguration\u002Fgeneral-settings","3.configuration\u002F2.general-settings","i-lucide-settings",{"title":78,"path":79,"stem":80,"icon":50},"Categories","\u002Fconfiguration\u002Fcategories","3.configuration\u002F3.categories",{"title":82,"path":83,"stem":84,"icon":85},"Ticket inputs","\u002Fconfiguration\u002Fticket-inputs","3.configuration\u002F4.ticket-inputs","i-lucide-form-input",{"title":87,"path":88,"stem":89,"icon":90},"Panels","\u002Fconfiguration\u002Fpanels","3.configuration\u002F5.panels","i-lucide-panel-top",{"title":92,"path":93,"stem":94,"icon":95},"White label (your own bot)","\u002Fconfiguration\u002Fwhite-label","3.configuration\u002F6.white-label","i-lucide-badge-check",{"title":97,"icon":98,"path":99,"stem":100,"children":101,"page":29},"Modules","i-lucide-blocks","\u002Fmodules","4.modules",[102,106,111,116,121,126,131],{"title":103,"path":104,"stem":105,"icon":98},"Modules overview","\u002Fmodules\u002Foverview","4.modules\u002F1.overview",{"title":107,"path":108,"stem":109,"icon":110},"Transcripts","\u002Fmodules\u002Ftranscripts","4.modules\u002F2.transcripts","i-lucide-file-text",{"title":112,"path":113,"stem":114,"icon":115},"Feedback","\u002Fmodules\u002Ffeedback","4.modules\u002F3.feedback","i-lucide-star",{"title":117,"path":118,"stem":119,"icon":120},"Escalation","\u002Fmodules\u002Fescalation","4.modules\u002F4.escalation","i-lucide-siren",{"title":122,"path":123,"stem":124,"icon":125},"Opening hours","\u002Fmodules\u002Fopening-hours","4.modules\u002F5.opening-hours","i-lucide-clock",{"title":127,"path":128,"stem":129,"icon":130},"Webhooks","\u002Fmodules\u002Fwebhooks","4.modules\u002F6.webhooks","i-lucide-webhook",{"title":132,"path":133,"stem":134,"icon":135},"Assignment","\u002Fmodules\u002Fassignment","4.modules\u002F7.assignment","i-lucide-user-check",{"title":137,"icon":138,"path":139,"stem":140,"children":141,"page":29},"Integrations","i-lucide-plug","\u002Fintegrations","5.integrations",[142,146,151,156,161,166],{"title":143,"path":144,"stem":145,"icon":138},"Integrations overview","\u002Fintegrations\u002Foverview","5.integrations\u002F1.overview",{"title":147,"path":148,"stem":149,"icon":150},"Stripe","\u002Fintegrations\u002Fstripe","5.integrations\u002F2.stripe","i-simple-icons-stripe",{"title":152,"path":153,"stem":154,"icon":155},"PayPal","\u002Fintegrations\u002Fpaypal","5.integrations\u002F3.paypal","i-simple-icons-paypal",{"title":157,"path":158,"stem":159,"icon":160},"Tebex","\u002Fintegrations\u002Ftebex","5.integrations\u002F4.tebex","i-lucide-shopping-cart",{"title":162,"path":163,"stem":164,"icon":165},"Patreon","\u002Fintegrations\u002Fpatreon","5.integrations\u002F5.patreon","i-simple-icons-patreon",{"title":167,"path":168,"stem":169,"icon":170},"GitHub","\u002Fintegrations\u002Fgithub","5.integrations\u002F6.github","i-simple-icons-github",{"title":172,"icon":173,"path":174,"stem":175,"children":176,"page":29},"Data connectors","i-lucide-share-2","\u002Fdata-connectors","6.data-connectors",[177,181,186,191],{"title":178,"path":179,"stem":180,"icon":173},"Data connectors overview","\u002Fdata-connectors\u002Foverview","6.data-connectors\u002F1.overview",{"title":182,"path":183,"stem":184,"icon":185},"Build a connector","\u002Fdata-connectors\u002Fbuild-a-connector","6.data-connectors\u002F2.build-a-connector","i-lucide-wrench",{"title":187,"path":188,"stem":189,"icon":190},"Discord auto-detect","\u002Fdata-connectors\u002Fdiscord-auto-detect","6.data-connectors\u002F3.discord-auto-detect","i-lucide-scan-face",{"title":192,"path":193,"stem":194,"icon":195},"Connector security","\u002Fdata-connectors\u002Fsecurity","6.data-connectors\u002F4.security","i-lucide-shield",{"title":197,"icon":198,"path":199,"stem":200,"children":201,"page":29},"Security & trust","i-lucide-shield-check","\u002Fsecurity","7.security",[202,206,211,216,221],{"title":203,"path":204,"stem":205,"icon":198},"Security overview","\u002Fsecurity\u002Foverview","7.security\u002F1.overview",{"title":207,"path":208,"stem":209,"icon":210},"Encryption & secrets","\u002Fsecurity\u002Fencryption","7.security\u002F2.encryption","i-lucide-lock",{"title":212,"path":213,"stem":214,"icon":215},"The relay & your privacy","\u002Fsecurity\u002Fthe-middleman","7.security\u002F3.the-middleman","i-lucide-eye-off",{"title":217,"path":218,"stem":219,"icon":220},"Access & permissions","\u002Fsecurity\u002Faccess-control","7.security\u002F4.access-control","i-lucide-key-round",{"title":222,"path":223,"stem":224,"icon":225},"Data & retention","\u002Fsecurity\u002Fdata-and-retention","7.security\u002F5.data-and-retention","i-lucide-database",{"title":227,"icon":228,"path":229,"stem":230,"children":231,"page":29},"Reference","i-lucide-book-open","\u002Freference","8.reference",[232,237,241],{"title":233,"path":234,"stem":235,"icon":236},"FAQ","\u002Freference\u002Ffaq","8.reference\u002F1.faq","i-lucide-circle-help",{"title":238,"path":239,"stem":240,"icon":185},"Troubleshooting","\u002Freference\u002Ftroubleshooting","8.reference\u002F2.troubleshooting",{"title":242,"path":243,"stem":244,"icon":245},"Glossary","\u002Freference\u002Fglossary","8.reference\u002F3.glossary","i-lucide-book-a",{"id":247,"title":127,"body":248,"description":1177,"extension":1178,"links":1179,"meta":1180,"navigation":1181,"path":128,"seo":1182,"stem":129,"__hash__":1183},"docs\u002F4.modules\u002F6.webhooks.md",{"type":249,"value":250,"toc":1167},"minimark",[251,260,263,277,282,294,297,301,338,342,412,451,455,472,476,517,758,787,791,806,1076,1079,1083,1113,1131,1135,1163],[252,253,254,255,259],"p",{},"The ",[256,257,258],"strong",{},"Webhook"," integration sends a request to your own web address every time something happens to a ticket — a ticket is created, closed, reopened, assigned, escalated, rated, and more. Your system receives the event and can do whatever you like with it: log it, sync it to a CRM, post it somewhere, or kick off an automation.",[252,261,262],{},"You need somewhere to receive the events — a URL your team controls. Everything on the Clarify side is point-and-click, and it costs no feature token.",[264,265,266],"note",{},[252,267,268,269,272,273,276],{},"A webhook is a one-way notification: ",[256,270,271],{},"Clarify → your endpoint",". Clarify sends events to you; it does not read anything back. You find it under ",[256,274,275],{},"Integrations → Webhook"," in the dashboard.",[278,279,281],"h2",{"id":280},"how-it-works","How it works",[252,283,284,285,289,290,293],{},"When a selected event happens, Clarify sends an HTTPS ",[286,287,288],"code",{},"POST"," to your URL with the event and the ticket in the body. Every request is ",[256,291,292],{},"signed with your secret",", so your server can confirm it came from Clarify and was not altered on the way. Clarify tries up to three times (10 seconds each, with a short pause between attempts) before giving up on a delivery.",[252,295,296],{},"Requests are sent through Clarify's delivery relay, so do not filter by IP address — verify the signature instead.",[278,298,300],{"id":299},"destination","Destination",[302,303,304,324],"field-group",{},[305,306,309],"field",{"name":307,"type":308},"url","text",[252,310,311,312,315,316,319,320,323],{},"The web address Clarify sends events to. ",[256,313,314],{},"Required."," Must start with ",[286,317,318],{},"https:\u002F\u002F"," — plain ",[286,321,322],{},"http:\u002F\u002F"," is not accepted.",[305,325,327],{"name":326,"type":326},"secret",[252,328,329,330,333,334,337],{},"A signing secret shared between Clarify and your server, at least 8 characters. ",[256,331,332],{},"Required at setup."," Click ",[256,335,336],{},"Generate"," to get a strong random secret, copy it and store it where your endpoint reads it from. It is encrypted at rest and never shown back to you; when editing later, leave the field blank to keep the current secret, or generate a new one to replace it — then update your endpoint too.",[278,339,341],{"id":340},"events","Events",[302,343,344],{},[305,345,348,354],{"name":346,"type":347},"trigger","checkbox",[252,349,350,351],{},"Only selected events are sent. ",[256,352,353],{},"Default: Ticket created and Ticket closed.",[355,356,357,364,370,376,382,388,394,400,406],"ul",{},[358,359,360,363],"li",{},[256,361,362],{},"Ticket created"," — A new ticket has been opened.",[358,365,366,369],{},[256,367,368],{},"Ticket reopened"," — A closed ticket was opened again.",[358,371,372,375],{},[256,373,374],{},"Ticket closed"," — A ticket was marked as resolved.",[358,377,378,381],{},[256,379,380],{},"Agent assigned"," — An agent was assigned to a ticket.",[358,383,384,387],{},[256,385,386],{},"Agent unassigned"," — An agent was removed from a ticket.",[358,389,390,393],{},[256,391,392],{},"Member added"," — Someone was added to a ticket.",[358,395,396,399],{},[256,397,398],{},"Member removed"," — Someone was removed from a ticket.",[358,401,402,405],{},[256,403,404],{},"Ticket rated"," — The customer left a rating.",[358,407,408,411],{},[256,409,410],{},"Ticket escalated"," — A ticket was moved to another support tier.",[252,413,254,414,417,418,421,422,425,426,425,429,425,432,425,435,425,438,425,441,425,444,425,447,450],{},[286,415,416],{},"X-Clarify-Event"," header and ",[286,419,420],{},"event.type"," in the body carry the event name: ",[286,423,424],{},"created",", ",[286,427,428],{},"opened",[286,430,431],{},"closed",[286,433,434],{},"assigned",[286,436,437],{},"unassigned",[286,439,440],{},"added",[286,442,443],{},"removed",[286,445,446],{},"rated",[286,448,449],{},"escalated",".",[278,452,454],{"id":453},"custom-headers","Custom headers",[302,456,457],{},[305,458,461],{"name":459,"type":460},"headers","keyvalue",[252,462,463,464,467,468,471],{},"Extra HTTP headers sent with every request, as name\u002Fvalue pairs — for example an ",[286,465,466],{},"Authorization: Bearer …"," header your endpoint expects. ",[256,469,470],{},"Optional."," Your headers are added after Clarify's own, so a header with the same name overrides it.",[278,473,475],{"id":474},"what-a-request-looks-like","What a request looks like",[477,478,483],"pre",{"className":479,"code":480,"language":481,"meta":482,"style":482},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST \u002Fhooks\u002Fclarify HTTP\u002F1.1\nContent-Type: application\u002Fjson\nX-Clarify-Event: closed\nX-Clarify-Timestamp: 1758000000\nX-Clarify-Signature: sha256=3f7a…\n","http","",[286,484,485,493,499,505,511],{"__ignoreMap":482},[486,487,490],"span",{"class":488,"line":489},"line",1,[486,491,492],{},"POST \u002Fhooks\u002Fclarify HTTP\u002F1.1\n",[486,494,496],{"class":488,"line":495},2,[486,497,498],{},"Content-Type: application\u002Fjson\n",[486,500,502],{"class":488,"line":501},3,[486,503,504],{},"X-Clarify-Event: closed\n",[486,506,508],{"class":488,"line":507},4,[486,509,510],{},"X-Clarify-Timestamp: 1758000000\n",[486,512,514],{"class":488,"line":513},5,[486,515,516],{},"X-Clarify-Signature: sha256=3f7a…\n",[477,518,522],{"className":519,"code":520,"language":521,"meta":482,"style":482},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"event\": {\n    \"type\": \"closed\",\n    \"timestamp\": 1758000000000,\n    \"serverId\": \"123456789012345678\",\n    \"ticketId\": \"…\",\n    \"executor\": { \"id\": \"…\", \"username\": \"alex\", \"avatarUrl\": \"…\" }\n  },\n  \"ticket\": { \"…\": \"the full ticket record — participants, messages, inputs, assignees, routing\" },\n  \"review\": null\n}\n","json",[286,523,524,530,548,572,589,609,630,699,705,737,752],{"__ignoreMap":482},[486,525,526],{"class":488,"line":489},[486,527,529],{"class":528},"sMK4o","{\n",[486,531,532,535,539,542,545],{"class":488,"line":495},[486,533,534],{"class":528},"  \"",[486,536,538],{"class":537},"spNyl","event",[486,540,541],{"class":528},"\"",[486,543,544],{"class":528},":",[486,546,547],{"class":528}," {\n",[486,549,550,553,557,559,561,564,567,569],{"class":488,"line":501},[486,551,552],{"class":528},"    \"",[486,554,556],{"class":555},"sBMFI","type",[486,558,541],{"class":528},[486,560,544],{"class":528},[486,562,563],{"class":528}," \"",[486,565,431],{"class":566},"sfazB",[486,568,541],{"class":528},[486,570,571],{"class":528},",\n",[486,573,574,576,579,581,583,587],{"class":488,"line":507},[486,575,552],{"class":528},[486,577,578],{"class":555},"timestamp",[486,580,541],{"class":528},[486,582,544],{"class":528},[486,584,586],{"class":585},"sbssI"," 1758000000000",[486,588,571],{"class":528},[486,590,591,593,596,598,600,602,605,607],{"class":488,"line":513},[486,592,552],{"class":528},[486,594,595],{"class":555},"serverId",[486,597,541],{"class":528},[486,599,544],{"class":528},[486,601,563],{"class":528},[486,603,604],{"class":566},"123456789012345678",[486,606,541],{"class":528},[486,608,571],{"class":528},[486,610,612,614,617,619,621,623,626,628],{"class":488,"line":611},6,[486,613,552],{"class":528},[486,615,616],{"class":555},"ticketId",[486,618,541],{"class":528},[486,620,544],{"class":528},[486,622,563],{"class":528},[486,624,625],{"class":566},"…",[486,627,541],{"class":528},[486,629,571],{"class":528},[486,631,633,635,638,640,642,645,647,650,652,654,656,658,660,663,665,668,670,672,674,677,679,681,683,686,688,690,692,694,696],{"class":488,"line":632},7,[486,634,552],{"class":528},[486,636,637],{"class":555},"executor",[486,639,541],{"class":528},[486,641,544],{"class":528},[486,643,644],{"class":528}," {",[486,646,563],{"class":528},[486,648,649],{"class":585},"id",[486,651,541],{"class":528},[486,653,544],{"class":528},[486,655,563],{"class":528},[486,657,625],{"class":566},[486,659,541],{"class":528},[486,661,662],{"class":528},",",[486,664,563],{"class":528},[486,666,667],{"class":585},"username",[486,669,541],{"class":528},[486,671,544],{"class":528},[486,673,563],{"class":528},[486,675,676],{"class":566},"alex",[486,678,541],{"class":528},[486,680,662],{"class":528},[486,682,563],{"class":528},[486,684,685],{"class":585},"avatarUrl",[486,687,541],{"class":528},[486,689,544],{"class":528},[486,691,563],{"class":528},[486,693,625],{"class":566},[486,695,541],{"class":528},[486,697,698],{"class":528}," }\n",[486,700,702],{"class":488,"line":701},8,[486,703,704],{"class":528},"  },\n",[486,706,708,710,713,715,717,719,721,723,725,727,729,732,734],{"class":488,"line":707},9,[486,709,534],{"class":528},[486,711,712],{"class":537},"ticket",[486,714,541],{"class":528},[486,716,544],{"class":528},[486,718,644],{"class":528},[486,720,563],{"class":528},[486,722,625],{"class":555},[486,724,541],{"class":528},[486,726,544],{"class":528},[486,728,563],{"class":528},[486,730,731],{"class":566},"the full ticket record — participants, messages, inputs, assignees, routing",[486,733,541],{"class":528},[486,735,736],{"class":528}," },\n",[486,738,740,742,745,747,749],{"class":488,"line":739},10,[486,741,534],{"class":528},[486,743,744],{"class":537},"review",[486,746,541],{"class":528},[486,748,544],{"class":528},[486,750,751],{"class":528}," null\n",[486,753,755],{"class":488,"line":754},11,[486,756,757],{"class":528},"}\n",[355,759,760,770,779],{},[358,761,762,765,766,769],{},[286,763,764],{},"event.timestamp"," is in milliseconds; the ",[286,767,768],{},"X-Clarify-Timestamp"," header is in seconds.",[358,771,772,774,775,778],{},[286,773,712],{}," is the complete ticket as Clarify stores it, ",[256,776,777],{},"including its messages and the answers to its inputs",". Treat your endpoint as confidential as the tickets themselves.",[358,780,781,783,784,450],{},[286,782,744],{}," holds the customer's rating and comment once the ticket has been rated, on every later event too; before that it is ",[286,785,786],{},"null",[278,788,790],{"id":789},"verifying-the-signature","Verifying the signature",[252,792,793,794,797,798,801,802,805],{},"Clarify signs ",[286,795,796],{},"\"\u003CX-Clarify-Timestamp>.\u003Craw request body>\""," with ",[256,799,800],{},"HMAC-SHA256"," using your secret and sends the hex digest as ",[286,803,804],{},"X-Clarify-Signature: sha256=…",". Recreate it and compare:",[477,807,811],{"className":808,"code":809,"language":810,"meta":482,"style":482},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createHmac, timingSafeEqual } from 'node:crypto'\n\nfunction verify(rawBody, headers, secret) {\n  const expected = 'sha256=' + createHmac('sha256', secret)\n    .update(`${headers['x-clarify-timestamp']}.${rawBody}`)\n    .digest('hex')\n  const given = headers['x-clarify-signature'] ?? ''\n  return given.length === expected.length && timingSafeEqual(Buffer.from(given), Buffer.from(expected))\n}\n","js",[286,812,813,845,851,882,923,964,982,1012,1072],{"__ignoreMap":482},[486,814,815,819,821,825,827,830,833,836,839,842],{"class":488,"line":489},[486,816,818],{"class":817},"s7zQu","import",[486,820,644],{"class":528},[486,822,824],{"class":823},"sTEyZ"," createHmac",[486,826,662],{"class":528},[486,828,829],{"class":823}," timingSafeEqual",[486,831,832],{"class":528}," }",[486,834,835],{"class":817}," from",[486,837,838],{"class":528}," '",[486,840,841],{"class":566},"node:crypto",[486,843,844],{"class":528},"'\n",[486,846,847],{"class":488,"line":495},[486,848,850],{"emptyLinePlaceholder":849},true,"\n",[486,852,853,856,860,863,867,869,872,874,877,880],{"class":488,"line":501},[486,854,855],{"class":537},"function",[486,857,859],{"class":858},"s2Zo4"," verify",[486,861,862],{"class":528},"(",[486,864,866],{"class":865},"sHdIc","rawBody",[486,868,662],{"class":528},[486,870,871],{"class":865}," headers",[486,873,662],{"class":528},[486,875,876],{"class":865}," secret",[486,878,879],{"class":528},")",[486,881,547],{"class":528},[486,883,884,887,890,893,895,898,901,904,906,909,911,914,916,918,920],{"class":488,"line":507},[486,885,886],{"class":537},"  const",[486,888,889],{"class":823}," expected",[486,891,892],{"class":528}," =",[486,894,838],{"class":528},[486,896,897],{"class":566},"sha256=",[486,899,900],{"class":528},"'",[486,902,903],{"class":528}," +",[486,905,824],{"class":858},[486,907,862],{"class":908},"swJcz",[486,910,900],{"class":528},[486,912,913],{"class":566},"sha256",[486,915,900],{"class":528},[486,917,662],{"class":528},[486,919,876],{"class":823},[486,921,922],{"class":908},")\n",[486,924,925,928,931,933,936,939,941,944,946,949,952,954,957,959,962],{"class":488,"line":513},[486,926,927],{"class":528},"    .",[486,929,930],{"class":858},"update",[486,932,862],{"class":908},[486,934,935],{"class":528},"`${",[486,937,938],{"class":823},"headers[",[486,940,900],{"class":528},[486,942,943],{"class":566},"x-clarify-timestamp",[486,945,900],{"class":528},[486,947,948],{"class":823},"]",[486,950,951],{"class":528},"}",[486,953,450],{"class":566},[486,955,956],{"class":528},"${",[486,958,866],{"class":823},[486,960,961],{"class":528},"}`",[486,963,922],{"class":908},[486,965,966,968,971,973,975,978,980],{"class":488,"line":611},[486,967,927],{"class":528},[486,969,970],{"class":858},"digest",[486,972,862],{"class":908},[486,974,900],{"class":528},[486,976,977],{"class":566},"hex",[486,979,900],{"class":528},[486,981,922],{"class":908},[486,983,984,986,989,991,993,996,998,1001,1003,1006,1009],{"class":488,"line":632},[486,985,886],{"class":537},[486,987,988],{"class":823}," given",[486,990,892],{"class":528},[486,992,871],{"class":823},[486,994,995],{"class":908},"[",[486,997,900],{"class":528},[486,999,1000],{"class":566},"x-clarify-signature",[486,1002,900],{"class":528},[486,1004,1005],{"class":908},"] ",[486,1007,1008],{"class":528},"??",[486,1010,1011],{"class":528}," ''\n",[486,1013,1014,1017,1019,1021,1024,1027,1029,1031,1033,1036,1038,1040,1043,1045,1048,1050,1053,1055,1057,1060,1062,1064,1066,1069],{"class":488,"line":701},[486,1015,1016],{"class":817},"  return",[486,1018,988],{"class":823},[486,1020,450],{"class":528},[486,1022,1023],{"class":823},"length",[486,1025,1026],{"class":528}," ===",[486,1028,889],{"class":823},[486,1030,450],{"class":528},[486,1032,1023],{"class":823},[486,1034,1035],{"class":528}," &&",[486,1037,829],{"class":858},[486,1039,862],{"class":908},[486,1041,1042],{"class":823},"Buffer",[486,1044,450],{"class":528},[486,1046,1047],{"class":858},"from",[486,1049,862],{"class":908},[486,1051,1052],{"class":823},"given",[486,1054,879],{"class":908},[486,1056,662],{"class":528},[486,1058,1059],{"class":823}," Buffer",[486,1061,450],{"class":528},[486,1063,1047],{"class":858},[486,1065,862],{"class":908},[486,1067,1068],{"class":823},"expected",[486,1070,1071],{"class":908},"))\n",[486,1073,1074],{"class":488,"line":707},[486,1075,757],{"class":528},[252,1077,1078],{},"Use the raw body bytes, not a re-serialised object. Reject requests whose timestamp is far from now if you want protection against replays.",[278,1080,1082],{"id":1081},"turning-it-on-and-testing","Turning it on and testing",[1084,1085,1087,1092,1099,1103],"steps",{"level":1086},"3",[1088,1089,1091],"h3",{"id":1090},"set-it-active","Set it Active",[252,1093,1094,1095,1098],{},"Use the ",[256,1096,1097],{},"Active \u002F Inactive"," toggle on the Webhook page. While inactive, Clarify keeps your settings and sends nothing — handy for pausing during maintenance.",[1088,1100,1102],{"id":1101},"send-a-test","Send a test",[252,1104,1105,1108,1109,1112],{},[256,1106,1107],{},"Send test"," fires a sample request at your URL right away — a small fake ticket with the first event you selected — and shows the HTTP status and how long it took. The page also remembers the outcome of the ",[256,1110,1111],{},"last real delivery"," so you can see whether events are getting through.",[1114,1115,1116],"caution",{},[252,1117,1118,1119,1122,1123,1126,1127,1130],{},"A non-",[286,1120,1121],{},"2xx"," status or a timeout means your endpoint did not accept the request. Check that the URL is public, that any required ",[256,1124,1125],{},"custom headers"," are set, and that your verification uses the exact secret you saved. See ",[1128,1129,238],"a",{"href":239}," if it persists.",[278,1132,1134],{"id":1133},"related","Related",[1136,1137,1138,1147,1152,1157],"card-group",{},[1139,1140,1141],"card",{"icon":115,"title":112,"to":113},[252,1142,1143,1144,1146],{},"Where the ",[286,1145,446],{}," event comes from.",[1139,1148,1149],{"icon":173,"title":172,"to":179},[252,1150,1151],{},"Pull data from your own systems into a ticket, rather than pushing events out.",[1139,1153,1154],{"icon":198,"title":203,"to":204},[252,1155,1156],{},"How your secrets are encrypted and what data leaves Discord.",[1139,1158,1160],{"icon":138,"title":1159,"to":144},"All integrations",[252,1161,1162],{},"Payment providers and GitHub, connected to your tickets.",[1164,1165,1166],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":482,"searchDepth":489,"depth":495,"links":1168},[1169,1170,1171,1172,1173,1174,1175,1176],{"id":280,"depth":495,"text":281},{"id":299,"depth":495,"text":300},{"id":340,"depth":495,"text":341},{"id":453,"depth":495,"text":454},{"id":474,"depth":495,"text":475},{"id":789,"depth":495,"text":790},{"id":1081,"depth":495,"text":1082},{"id":1133,"depth":495,"text":1134},"Send signed ticket events from Clarify to your own HTTPS endpoint, so your systems react in real time.","md",null,{},{"icon":130},{"title":127,"description":1177},"9ibt12PwzERaPE9Meye8IntzidVZpAb4t7d6F6z9jAI",[1185,1187],{"title":122,"path":123,"stem":124,"description":1186,"icon":125,"children":-1},"Tell members when your team is around — per ticket category — and decide whether a ticket opened outside those hours is created with a notice, blocked, or opened after a warning.",{"title":132,"path":133,"stem":134,"description":1188,"icon":135,"children":-1},"Let supporters claim tickets or assign each other, distribute new tickets automatically per category, and show who owns a ticket right in Discord.",1792666275601]