[{"data":1,"prerenderedAt":888},["ShallowReactive",2],{"content-query-vYELpq6BJA":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"layout":10,"author":11,"tags":12,"categories":17,"date":19,"faq":20,"image":33,"body":34,"_type":881,"_id":882,"_source":883,"_file":884,"_stem":885,"_extension":886,"sitemap":887},"/blog/zendesk-webhooks-guide","blog",false,"","Zendesk Webhooks: Setup, Signatures and Payload Examples","Create Zendesk webhooks the right way: triggers vs event subscriptions, the payload format, verifying X-Zendesk-Webhook-Signature, retries, and a fast local dev loop.","post","Karolis Rusenas",[13,14,15,16],"zendesk","webhooks","support","guide",[18],"tutorials","2026-07-07 11:30:00",[21,24,27,30],{"q":22,"a":23},"How do I create a webhook in Zendesk?","Admin Center → Apps and integrations → Webhooks → Create webhook. Choose how it is invoked: connect it to a trigger or automation (classic, fires on business rules), or subscribe it directly to organizational events (e.g. zen:event-type:ticket.status_changed). Then set the endpoint URL, method and auth.",{"q":25,"a":26},"How do I verify a Zendesk webhook signature?","Zendesk sends X-Zendesk-Webhook-Signature (base64 HMAC-SHA256) and X-Zendesk-Webhook-Signature-Timestamp with every delivery. Compute Base64(HMAC-SHA256(timestamp + raw_body, signing_secret)) and compare in constant time. The signing secret is on the webhook's detail page behind 'Reveal secret'.",{"q":28,"a":29},"What is the difference between a Zendesk trigger webhook and an event webhook?","Trigger/automation webhooks fire when a business rule's conditions match and send a payload you define with placeholders (or JSON you author). Event webhooks subscribe to typed events like ticket.status_changed and send a fixed, structured JSON envelope with account_id, type, time and a detail object. Event webhooks are better for machine consumption; trigger webhooks are better for human-shaped notifications.",{"q":31,"a":32},"Does Zendesk retry failed webhook deliveries?","Yes, a limited number of times with backoff, and a webhook that keeps failing is automatically deactivated. Check the webhook's activity log in Admin Center to see attempts and responses, and keep your endpoint fast — acknowledge first, process afterwards.","/images/blog/heroes/route.jpg",{"type":35,"children":36,"toc":873},"root",[37,47,69,76,86,135,147,153,158,504,548,554,559,583,595,703,731,737,749,783,789,824,830,867],{"type":38,"tag":39,"props":40,"children":41},"element","p",{},[42],{"type":38,"tag":43,"props":44,"children":46},"img",{"alt":45,"src":33},"Zendesk webhooks guide",[],{"type":38,"tag":39,"props":48,"children":49},{},[50,53,59,61,67],{"type":51,"value":52},"text","Zendesk's webhooks moved on from the old \"HTTP targets\" years ago — today there is one ",{"type":38,"tag":54,"props":55,"children":56},"strong",{},[57],{"type":51,"value":58},"Webhooks",{"type":51,"value":60}," system in Admin Center that can be wired to business rules ",{"type":38,"tag":62,"props":63,"children":64},"em",{},[65],{"type":51,"value":66},"or",{"type":51,"value":68}," subscribe directly to typed events, with proper HMAC signatures on every delivery. This guide covers choosing between those two invocation styles, what the payloads look like, verifying the signature, and testing against real deliveries.",{"type":38,"tag":70,"props":71,"children":73},"h2",{"id":72},"create-the-webhook",[74],{"type":51,"value":75},"Create the webhook",{"type":38,"tag":39,"props":77,"children":78},{},[79,84],{"type":38,"tag":54,"props":80,"children":81},{},[82],{"type":51,"value":83},"Admin Center → Apps and integrations → Webhooks → Create webhook.",{"type":51,"value":85}," The first decision is how it gets invoked:",{"type":38,"tag":87,"props":88,"children":89},"ul",{},[90,101],{"type":38,"tag":91,"props":92,"children":93},"li",{},[94,99],{"type":38,"tag":54,"props":95,"children":96},{},[97],{"type":51,"value":98},"Trigger or automation",{"type":51,"value":100}," — the webhook fires when a business rule matches (ticket created, priority changed to urgent, SLA about to breach…). The request body is whatever the rule author builds, usually JSON with placeholders. Great when a human designs the notification.",{"type":38,"tag":91,"props":102,"children":103},{},[104,109,111,118,120,126,128,133],{"type":38,"tag":54,"props":105,"children":106},{},[107],{"type":51,"value":108},"Zendesk events",{"type":51,"value":110}," — the webhook subscribes to typed event streams like ",{"type":38,"tag":112,"props":113,"children":115},"code",{"className":114},[],[116],{"type":51,"value":117},"zen:event-type:ticket.status_changed",{"type":51,"value":119},", ",{"type":38,"tag":112,"props":121,"children":123},{"className":122},[],[124],{"type":51,"value":125},"ticket.priority_changed",{"type":51,"value":127},", or user/organization events. The body is a ",{"type":38,"tag":54,"props":129,"children":130},{},[131],{"type":51,"value":132},"fixed envelope",{"type":51,"value":134}," Zendesk defines. This is what you want for programmatic consumers.",{"type":38,"tag":39,"props":136,"children":137},{},[138,140,145],{"type":51,"value":139},"Then set the endpoint URL (public HTTPS), request method, and optional authentication (basic auth, bearer token, or API key header) — this auth is ",{"type":38,"tag":62,"props":141,"children":142},{},[143],{"type":51,"value":144},"outbound",{"type":51,"value":146}," config Zendesk attaches to requests, separate from the signature below.",{"type":38,"tag":70,"props":148,"children":150},{"id":149},"the-payload",[151],{"type":51,"value":152},"The payload",{"type":38,"tag":39,"props":154,"children":155},{},[156],{"type":51,"value":157},"Event-subscription deliveries share a stable envelope:",{"type":38,"tag":159,"props":160,"children":164},"pre",{"className":161,"code":162,"language":163,"meta":7,"style":7},"language-json shiki shiki-themes github-dark","{\n  \"account_id\": 10000001,\n  \"id\": \"01JEXAMPLEEVENT0000000000\",\n  \"subject\": \"zen:ticket:15492\",\n  \"time\": \"2026-01-15T10:30:00Z\",\n  \"type\": \"zen:event-type:ticket.status_changed\",\n  \"zendesk_event_version\": \"2022-11-06\",\n  \"detail\": {\n    \"id\": \"15492\",\n    \"status\": \"open\",\n    \"priority\": \"normal\",\n    \"subject\": \"Cannot reset my password\",\n    \"assignee_id\": \"400000000001\"\n  },\n  \"event\": { \"previous\": \"new\", \"current\": \"open\" }\n}\n","json",[165],{"type":38,"tag":112,"props":166,"children":167},{"__ignoreMap":7},[168,180,205,228,250,272,294,316,330,352,374,396,418,436,445,495],{"type":38,"tag":169,"props":170,"children":173},"span",{"class":171,"line":172},"line",1,[174],{"type":38,"tag":169,"props":175,"children":177},{"style":176},"--shiki-default:#E1E4E8",[178],{"type":51,"value":179},"{\n",{"type":38,"tag":169,"props":181,"children":183},{"class":171,"line":182},2,[184,190,195,200],{"type":38,"tag":169,"props":185,"children":187},{"style":186},"--shiki-default:#79B8FF",[188],{"type":51,"value":189},"  \"account_id\"",{"type":38,"tag":169,"props":191,"children":192},{"style":176},[193],{"type":51,"value":194},": ",{"type":38,"tag":169,"props":196,"children":197},{"style":186},[198],{"type":51,"value":199},"10000001",{"type":38,"tag":169,"props":201,"children":202},{"style":176},[203],{"type":51,"value":204},",\n",{"type":38,"tag":169,"props":206,"children":208},{"class":171,"line":207},3,[209,214,218,224],{"type":38,"tag":169,"props":210,"children":211},{"style":186},[212],{"type":51,"value":213},"  \"id\"",{"type":38,"tag":169,"props":215,"children":216},{"style":176},[217],{"type":51,"value":194},{"type":38,"tag":169,"props":219,"children":221},{"style":220},"--shiki-default:#9ECBFF",[222],{"type":51,"value":223},"\"01JEXAMPLEEVENT0000000000\"",{"type":38,"tag":169,"props":225,"children":226},{"style":176},[227],{"type":51,"value":204},{"type":38,"tag":169,"props":229,"children":231},{"class":171,"line":230},4,[232,237,241,246],{"type":38,"tag":169,"props":233,"children":234},{"style":186},[235],{"type":51,"value":236},"  \"subject\"",{"type":38,"tag":169,"props":238,"children":239},{"style":176},[240],{"type":51,"value":194},{"type":38,"tag":169,"props":242,"children":243},{"style":220},[244],{"type":51,"value":245},"\"zen:ticket:15492\"",{"type":38,"tag":169,"props":247,"children":248},{"style":176},[249],{"type":51,"value":204},{"type":38,"tag":169,"props":251,"children":253},{"class":171,"line":252},5,[254,259,263,268],{"type":38,"tag":169,"props":255,"children":256},{"style":186},[257],{"type":51,"value":258},"  \"time\"",{"type":38,"tag":169,"props":260,"children":261},{"style":176},[262],{"type":51,"value":194},{"type":38,"tag":169,"props":264,"children":265},{"style":220},[266],{"type":51,"value":267},"\"2026-01-15T10:30:00Z\"",{"type":38,"tag":169,"props":269,"children":270},{"style":176},[271],{"type":51,"value":204},{"type":38,"tag":169,"props":273,"children":275},{"class":171,"line":274},6,[276,281,285,290],{"type":38,"tag":169,"props":277,"children":278},{"style":186},[279],{"type":51,"value":280},"  \"type\"",{"type":38,"tag":169,"props":282,"children":283},{"style":176},[284],{"type":51,"value":194},{"type":38,"tag":169,"props":286,"children":287},{"style":220},[288],{"type":51,"value":289},"\"zen:event-type:ticket.status_changed\"",{"type":38,"tag":169,"props":291,"children":292},{"style":176},[293],{"type":51,"value":204},{"type":38,"tag":169,"props":295,"children":297},{"class":171,"line":296},7,[298,303,307,312],{"type":38,"tag":169,"props":299,"children":300},{"style":186},[301],{"type":51,"value":302},"  \"zendesk_event_version\"",{"type":38,"tag":169,"props":304,"children":305},{"style":176},[306],{"type":51,"value":194},{"type":38,"tag":169,"props":308,"children":309},{"style":220},[310],{"type":51,"value":311},"\"2022-11-06\"",{"type":38,"tag":169,"props":313,"children":314},{"style":176},[315],{"type":51,"value":204},{"type":38,"tag":169,"props":317,"children":319},{"class":171,"line":318},8,[320,325],{"type":38,"tag":169,"props":321,"children":322},{"style":186},[323],{"type":51,"value":324},"  \"detail\"",{"type":38,"tag":169,"props":326,"children":327},{"style":176},[328],{"type":51,"value":329},": {\n",{"type":38,"tag":169,"props":331,"children":333},{"class":171,"line":332},9,[334,339,343,348],{"type":38,"tag":169,"props":335,"children":336},{"style":186},[337],{"type":51,"value":338},"    \"id\"",{"type":38,"tag":169,"props":340,"children":341},{"style":176},[342],{"type":51,"value":194},{"type":38,"tag":169,"props":344,"children":345},{"style":220},[346],{"type":51,"value":347},"\"15492\"",{"type":38,"tag":169,"props":349,"children":350},{"style":176},[351],{"type":51,"value":204},{"type":38,"tag":169,"props":353,"children":355},{"class":171,"line":354},10,[356,361,365,370],{"type":38,"tag":169,"props":357,"children":358},{"style":186},[359],{"type":51,"value":360},"    \"status\"",{"type":38,"tag":169,"props":362,"children":363},{"style":176},[364],{"type":51,"value":194},{"type":38,"tag":169,"props":366,"children":367},{"style":220},[368],{"type":51,"value":369},"\"open\"",{"type":38,"tag":169,"props":371,"children":372},{"style":176},[373],{"type":51,"value":204},{"type":38,"tag":169,"props":375,"children":377},{"class":171,"line":376},11,[378,383,387,392],{"type":38,"tag":169,"props":379,"children":380},{"style":186},[381],{"type":51,"value":382},"    \"priority\"",{"type":38,"tag":169,"props":384,"children":385},{"style":176},[386],{"type":51,"value":194},{"type":38,"tag":169,"props":388,"children":389},{"style":220},[390],{"type":51,"value":391},"\"normal\"",{"type":38,"tag":169,"props":393,"children":394},{"style":176},[395],{"type":51,"value":204},{"type":38,"tag":169,"props":397,"children":399},{"class":171,"line":398},12,[400,405,409,414],{"type":38,"tag":169,"props":401,"children":402},{"style":186},[403],{"type":51,"value":404},"    \"subject\"",{"type":38,"tag":169,"props":406,"children":407},{"style":176},[408],{"type":51,"value":194},{"type":38,"tag":169,"props":410,"children":411},{"style":220},[412],{"type":51,"value":413},"\"Cannot reset my password\"",{"type":38,"tag":169,"props":415,"children":416},{"style":176},[417],{"type":51,"value":204},{"type":38,"tag":169,"props":419,"children":421},{"class":171,"line":420},13,[422,427,431],{"type":38,"tag":169,"props":423,"children":424},{"style":186},[425],{"type":51,"value":426},"    \"assignee_id\"",{"type":38,"tag":169,"props":428,"children":429},{"style":176},[430],{"type":51,"value":194},{"type":38,"tag":169,"props":432,"children":433},{"style":220},[434],{"type":51,"value":435},"\"400000000001\"\n",{"type":38,"tag":169,"props":437,"children":439},{"class":171,"line":438},14,[440],{"type":38,"tag":169,"props":441,"children":442},{"style":176},[443],{"type":51,"value":444},"  },\n",{"type":38,"tag":169,"props":446,"children":448},{"class":171,"line":447},15,[449,454,459,464,468,473,477,482,486,490],{"type":38,"tag":169,"props":450,"children":451},{"style":186},[452],{"type":51,"value":453},"  \"event\"",{"type":38,"tag":169,"props":455,"children":456},{"style":176},[457],{"type":51,"value":458},": { ",{"type":38,"tag":169,"props":460,"children":461},{"style":186},[462],{"type":51,"value":463},"\"previous\"",{"type":38,"tag":169,"props":465,"children":466},{"style":176},[467],{"type":51,"value":194},{"type":38,"tag":169,"props":469,"children":470},{"style":220},[471],{"type":51,"value":472},"\"new\"",{"type":38,"tag":169,"props":474,"children":475},{"style":176},[476],{"type":51,"value":119},{"type":38,"tag":169,"props":478,"children":479},{"style":186},[480],{"type":51,"value":481},"\"current\"",{"type":38,"tag":169,"props":483,"children":484},{"style":176},[485],{"type":51,"value":194},{"type":38,"tag":169,"props":487,"children":488},{"style":220},[489],{"type":51,"value":369},{"type":38,"tag":169,"props":491,"children":492},{"style":176},[493],{"type":51,"value":494}," }\n",{"type":38,"tag":169,"props":496,"children":498},{"class":171,"line":497},16,[499],{"type":38,"tag":169,"props":500,"children":501},{"style":176},[502],{"type":51,"value":503},"}\n",{"type":38,"tag":39,"props":505,"children":506},{},[507,513,515,521,523,529,531,538,540,546],{"type":38,"tag":112,"props":508,"children":510},{"className":509},[],[511],{"type":51,"value":512},"type",{"type":51,"value":514}," names the event, ",{"type":38,"tag":112,"props":516,"children":518},{"className":517},[],[519],{"type":51,"value":520},"detail",{"type":51,"value":522}," carries the entity snapshot, and ",{"type":38,"tag":112,"props":524,"children":526},{"className":525},[],[527],{"type":51,"value":528},"event",{"type":51,"value":530}," describes the change itself (previous → current). Trigger-based webhooks look however the rule author shaped them — which is exactly why you should capture a real one before writing parsing code: point the webhook at a free ",{"type":38,"tag":532,"props":533,"children":535},"a",{"href":534},"/webhook-bin",[536],{"type":51,"value":537},"Webhook Bin",{"type":51,"value":539}," for a minute (the bin's sample catalog also has a ready-made ",{"type":38,"tag":112,"props":541,"children":543},{"className":542},[],[544],{"type":51,"value":545},"ticket.status_changed",{"type":51,"value":547}," event with the full header set).",{"type":38,"tag":70,"props":549,"children":551},{"id":550},"verify-the-signature",[552],{"type":51,"value":553},"Verify the signature",{"type":38,"tag":39,"props":555,"children":556},{},[557],{"type":51,"value":558},"Every delivery — regardless of invocation style — carries:",{"type":38,"tag":159,"props":560,"children":563},{"className":561,"code":562,"language":51,"meta":7,"style":7},"language-text shiki shiki-themes github-dark","X-Zendesk-Webhook-Signature: \u003Cbase64 HMAC-SHA256>\nX-Zendesk-Webhook-Signature-Timestamp: 2026-01-15T10:30:00Z\n",[564],{"type":38,"tag":112,"props":565,"children":566},{"__ignoreMap":7},[567,575],{"type":38,"tag":169,"props":568,"children":569},{"class":171,"line":172},[570],{"type":38,"tag":169,"props":571,"children":572},{},[573],{"type":51,"value":574},"X-Zendesk-Webhook-Signature: \u003Cbase64 HMAC-SHA256>\n",{"type":38,"tag":169,"props":576,"children":577},{"class":171,"line":182},[578],{"type":38,"tag":169,"props":579,"children":580},{},[581],{"type":51,"value":582},"X-Zendesk-Webhook-Signature-Timestamp: 2026-01-15T10:30:00Z\n",{"type":38,"tag":39,"props":584,"children":585},{},[586,588,593],{"type":51,"value":587},"The signed string is the ",{"type":38,"tag":54,"props":589,"children":590},{},[591],{"type":51,"value":592},"timestamp concatenated directly with the raw body",{"type":51,"value":594}," (no separator):",{"type":38,"tag":159,"props":596,"children":600},{"className":597,"code":598,"language":599,"meta":7,"style":7},"language-js shiki shiki-themes github-dark","const expected = crypto.createHmac('sha256', secret)\n  .update(timestamp + rawBody)\n  .digest('base64');\n","js",[601],{"type":38,"tag":112,"props":602,"children":603},{"__ignoreMap":7},[604,649,677],{"type":38,"tag":169,"props":605,"children":606},{"class":171,"line":172},[607,613,618,623,628,634,639,644],{"type":38,"tag":169,"props":608,"children":610},{"style":609},"--shiki-default:#F97583",[611],{"type":51,"value":612},"const",{"type":38,"tag":169,"props":614,"children":615},{"style":186},[616],{"type":51,"value":617}," expected",{"type":38,"tag":169,"props":619,"children":620},{"style":609},[621],{"type":51,"value":622}," =",{"type":38,"tag":169,"props":624,"children":625},{"style":176},[626],{"type":51,"value":627}," crypto.",{"type":38,"tag":169,"props":629,"children":631},{"style":630},"--shiki-default:#B392F0",[632],{"type":51,"value":633},"createHmac",{"type":38,"tag":169,"props":635,"children":636},{"style":176},[637],{"type":51,"value":638},"(",{"type":38,"tag":169,"props":640,"children":641},{"style":220},[642],{"type":51,"value":643},"'sha256'",{"type":38,"tag":169,"props":645,"children":646},{"style":176},[647],{"type":51,"value":648},", secret)\n",{"type":38,"tag":169,"props":650,"children":651},{"class":171,"line":182},[652,657,662,667,672],{"type":38,"tag":169,"props":653,"children":654},{"style":176},[655],{"type":51,"value":656},"  .",{"type":38,"tag":169,"props":658,"children":659},{"style":630},[660],{"type":51,"value":661},"update",{"type":38,"tag":169,"props":663,"children":664},{"style":176},[665],{"type":51,"value":666},"(timestamp ",{"type":38,"tag":169,"props":668,"children":669},{"style":609},[670],{"type":51,"value":671},"+",{"type":38,"tag":169,"props":673,"children":674},{"style":176},[675],{"type":51,"value":676}," rawBody)\n",{"type":38,"tag":169,"props":678,"children":679},{"class":171,"line":207},[680,684,689,693,698],{"type":38,"tag":169,"props":681,"children":682},{"style":176},[683],{"type":51,"value":656},{"type":38,"tag":169,"props":685,"children":686},{"style":630},[687],{"type":51,"value":688},"digest",{"type":38,"tag":169,"props":690,"children":691},{"style":176},[692],{"type":51,"value":638},{"type":38,"tag":169,"props":694,"children":695},{"style":220},[696],{"type":51,"value":697},"'base64'",{"type":38,"tag":169,"props":699,"children":700},{"style":176},[701],{"type":51,"value":702},");\n",{"type":38,"tag":39,"props":704,"children":705},{},[706,708,713,715,721,723,729],{"type":51,"value":707},"The signing secret lives on the webhook's detail page (",{"type":38,"tag":54,"props":709,"children":710},{},[711],{"type":51,"value":712},"Reveal secret",{"type":51,"value":714},") or via ",{"type":38,"tag":112,"props":716,"children":718},{"className":717},[],[719],{"type":51,"value":720},"GET /api/v2/webhooks/{id}/signing_secret",{"type":51,"value":722},". Two details that cause most failures: hashing a re-serialized body instead of the raw bytes, and forgetting the timestamp prefix. Check your implementation interactively with our free ",{"type":38,"tag":532,"props":724,"children":726},{"href":725},"/verify-zendesk-webhook-signature",[727],{"type":51,"value":728},"Zendesk webhook signature verifier",{"type":51,"value":730}," — and reject deliveries whose timestamp is stale to block replays.",{"type":38,"tag":70,"props":732,"children":734},{"id":733},"delivery-retries-and-the-activity-log",[735],{"type":51,"value":736},"Delivery, retries and the activity log",{"type":38,"tag":39,"props":738,"children":739},{},[740,742,747],{"type":51,"value":741},"Zendesk expects a fast 2xx. Failed deliveries are retried a limited number of times with backoff, and webhooks that keep failing get ",{"type":38,"tag":54,"props":743,"children":744},{},[745],{"type":51,"value":746},"automatically deactivated",{"type":51,"value":748}," — a surprise you discover days later when tickets stop syncing. Defenses:",{"type":38,"tag":750,"props":751,"children":752},"ol",{},[753,758,770],{"type":38,"tag":91,"props":754,"children":755},{},[756],{"type":51,"value":757},"Acknowledge immediately, process asynchronously.",{"type":38,"tag":91,"props":759,"children":760},{},[761,763,768],{"type":51,"value":762},"Watch the ",{"type":38,"tag":54,"props":764,"children":765},{},[766],{"type":51,"value":767},"activity log",{"type":51,"value":769}," on the webhook's admin page — it records each attempt, response code and latency.",{"type":38,"tag":91,"props":771,"children":772},{},[773,775,781],{"type":51,"value":774},"If your consumer is flaky or occasionally deployed, front it with a stable relay endpoint that stores every event and ",{"type":38,"tag":532,"props":776,"children":778},{"href":777},"/features/durable-retries",[779],{"type":51,"value":780},"keeps retrying towards your side",{"type":51,"value":782}," — Zendesk always sees a healthy 200 and never deactivates the webhook.",{"type":38,"tag":70,"props":784,"children":786},{"id":785},"local-development",[787],{"type":51,"value":788},"Local development",{"type":38,"tag":39,"props":790,"children":791},{},[792,794,800,802,806,808,814,816,822],{"type":51,"value":793},"Zendesk needs a public URL, your handler runs on ",{"type":38,"tag":112,"props":795,"children":797},{"className":796},[],[798],{"type":51,"value":799},"localhost",{"type":51,"value":801}," — the standard bridge applies: inspect in a ",{"type":38,"tag":532,"props":803,"children":804},{"href":534},[805],{"type":51,"value":537},{"type":51,"value":807},", then ",{"type":38,"tag":112,"props":809,"children":811},{"className":810},[],[812],{"type":51,"value":813},"relay forward --bucket zendesk http://localhost:8080/webhook",{"type":51,"value":815},". Full walkthrough: ",{"type":38,"tag":532,"props":817,"children":819},{"href":818},"/blog/receive-zendesk-webhooks-locally",[820],{"type":51,"value":821},"Test Zendesk webhooks locally",{"type":51,"value":823},".",{"type":38,"tag":70,"props":825,"children":827},{"id":826},"related-reading",[828],{"type":51,"value":829},"Related reading",{"type":38,"tag":87,"props":831,"children":832},{},[833,840,849,858],{"type":38,"tag":91,"props":834,"children":835},{},[836],{"type":38,"tag":532,"props":837,"children":838},{"href":818},[839],{"type":51,"value":821},{"type":38,"tag":91,"props":841,"children":842},{},[843,847],{"type":38,"tag":532,"props":844,"children":845},{"href":725},[846],{"type":51,"value":728},{"type":51,"value":848}," — free, in-browser",{"type":38,"tag":91,"props":850,"children":851},{},[852],{"type":38,"tag":532,"props":853,"children":855},{"href":854},"/blog/verify-webhook-signature",[856],{"type":51,"value":857},"Verify a webhook signature",{"type":38,"tag":91,"props":859,"children":860},{},[861],{"type":38,"tag":532,"props":862,"children":864},{"href":863},"/blog/what-is-webhook",[865],{"type":51,"value":866},"What is a webhook",{"type":38,"tag":868,"props":869,"children":870},"style",{},[871],{"type":51,"value":872},"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);}",{"title":7,"searchDepth":207,"depth":207,"links":874},[875,876,877,878,879,880],{"id":72,"depth":182,"text":75},{"id":149,"depth":182,"text":152},{"id":550,"depth":182,"text":553},{"id":733,"depth":182,"text":736},{"id":785,"depth":182,"text":788},{"id":826,"depth":182,"text":829},"markdown","content:blog:zendesk-webhooks-guide.md","content","blog/zendesk-webhooks-guide.md","blog/zendesk-webhooks-guide","md",{"loc":4},1783373261466]