[{"data":1,"prerenderedAt":3425},["ShallowReactive",2],{"content-query-hVGw70Q0Ro":3,"content-query-W4RtfFQaoh":3207,"content-query-yP1cWMns5L":3232,"content-query-eJ9XWy0CGH":3236,"content-query-M5aWdXgQKx":3249,"content-query-UP87PRcOMw":3256,"content-query-7VgBfxLOWV":3260,"content-query-Z6fTkbgt1D":3282,"content-query-j8GGVgf9na":3295,"content-query-9giMhwHrGj":3308,"content-query-G03kJtQzJS":3315,"content-query-IVhcXRs1sR":3337,"content-query-1mvwAKmUBq":3347,"content-query-zRSmsuVl55":3372,"content-query-No6iPTj4EO":3376,"content-query-MsdmgXewTK":3386,"content-query-BMhIInEJl2":3393},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"intro":10,"type":11,"section":5,"level":12,"layout":13,"tags":14,"body":18,"_type":3200,"_id":3201,"_source":3202,"_file":3203,"_stem":3204,"_extension":3205,"sitemap":3206},"/docs/webhooks/functions/alerting","functions",false,"","Alerting from functions","Inspect webhook requests and delivery responses in Webhook Relay functions, and POST an alert to any URL when something looks wrong.","Use a request function to validate the payload before delivery, and a response function to check what the destination returned. When validation fails, send an HTTP alert to any URL.","example","beginner","doc",[15,16,17],"Functions","Webhook Forwarding","Alerting",{"type":19,"children":20,"toc":3194},"root",[21,44,49,88,111,136,143,171,2014,2020,2038,2976,3011,3017,3086,3092,3188],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26,29,35,37,42],{"type":27,"value":28},"text","Functions can do more than reshape payloads — they can ",{"type":22,"tag":30,"props":31,"children":32},"strong",{},[33],{"type":27,"value":34},"inspect",{"type":27,"value":36}," the request or the delivery response and ",{"type":22,"tag":30,"props":38,"children":39},{},[40],{"type":27,"value":41},"alert",{"type":27,"value":43}," an external system when something is off.",{"type":22,"tag":23,"props":45,"children":46},{},[47],{"type":27,"value":48},"Two common patterns:",{"type":22,"tag":50,"props":51,"children":52},"ol",{},[53,72],{"type":22,"tag":54,"props":55,"children":56},"li",{},[57,62,64,70],{"type":22,"tag":30,"props":58,"children":59},{},[60],{"type":27,"value":61},"Request function",{"type":27,"value":63}," (runs ",{"type":22,"tag":65,"props":66,"children":67},"em",{},[68],{"type":27,"value":69},"before",{"type":27,"value":71}," delivery) — parse the body; if it is not valid JSON (or a required field is missing), POST an alert to a URL.",{"type":22,"tag":54,"props":73,"children":74},{},[75,80,81,86],{"type":22,"tag":30,"props":76,"children":77},{},[78],{"type":27,"value":79},"Response function",{"type":27,"value":63},{"type":22,"tag":65,"props":82,"children":83},{},[84],{"type":27,"value":85},"after",{"type":27,"value":87}," delivery) — if the destination returned an empty body, POST an alert to a URL.",{"type":22,"tag":23,"props":89,"children":90},{},[91,93,100,102,109],{"type":27,"value":92},"Set ",{"type":22,"tag":94,"props":95,"children":97},"code",{"className":96},[],[98],{"type":27,"value":99},"alert_webhook_url",{"type":27,"value":101}," as a ",{"type":22,"tag":103,"props":104,"children":106},"a",{"href":105},"/docs/webhooks/functions/modify-request#getting-configuration-values",[107],{"type":27,"value":108},"config variable",{"type":27,"value":110}," on the function so the alert endpoint is not hard-coded in the source.",{"type":22,"tag":112,"props":113,"children":114},"blockquote",{},[115],{"type":22,"tag":23,"props":116,"children":117},{},[118,120,126,128,134],{"type":27,"value":119},"For built-in delivery-failure incidents (policies, Slack/email destinations, auto-resolve), see ",{"type":22,"tag":103,"props":121,"children":123},{"href":122},"/docs/webhooks/alerts",[124],{"type":27,"value":125},"Alerts",{"type":27,"value":127},". For a deeper look at post-delivery hooks, status codes, and rewriting the recorded response, see ",{"type":22,"tag":103,"props":129,"children":131},{"href":130},"/docs/webhooks/functions/response-functions",[132],{"type":27,"value":133},"Response (post-delivery) functions",{"type":27,"value":135},".",{"type":22,"tag":137,"props":138,"children":140},"h2",{"id":139},"example-1-alert-when-the-request-is-not-valid-json",[141],{"type":27,"value":142},"Example 1: alert when the request is not valid JSON",{"type":22,"tag":23,"props":144,"children":145},{},[146,148,153,155,161,163,169],{"type":27,"value":147},"Attach this as a ",{"type":22,"tag":30,"props":149,"children":150},{},[151],{"type":27,"value":152},"request",{"type":27,"value":154}," function (before delivery). It tries to parse ",{"type":22,"tag":94,"props":156,"children":158},{"className":157},[],[159],{"type":27,"value":160},"r.body",{"type":27,"value":162}," as JSON. If parsing fails, it posts an alert to your URL and ",{"type":22,"tag":103,"props":164,"children":166},{"href":165},"/docs/webhooks/functions/modify-request#filtering-requests",[167],{"type":27,"value":168},"stops forwarding",{"type":27,"value":170}," so a bad payload never reaches the destination.",{"type":22,"tag":172,"props":173,"children":174},"code-switcher",{},[175,1047],{"type":22,"tag":176,"props":177,"children":178},"template",{"v-slot:javascript":7},[179],{"type":22,"tag":180,"props":181,"children":185},"pre",{"className":182,"code":183,"language":184,"meta":7,"style":7},"language-javascript shiki shiki-themes github-dark","// Request function — runs BEFORE delivery.\n// Alert if the body is missing or is not valid JSON.\n\nvar url = cfg.get(\"alert_webhook_url\");\n\nif (!r.body || r.body.trim() === \"\") {\n  if (url) {\n    http.post(url, JSON.stringify({\n      type: \"invalid_request\",\n      reason: \"empty body\",\n      output: r.metadata[\"output_name\"],\n      path: r.path\n    }), { headers: { \"Content-Type\": \"application/json\" } });\n  }\n  r.stopForwarding();\n  return;\n}\n\nvar payload;\ntry {\n  payload = JSON.parse(r.body);\n} catch (e) {\n  if (url) {\n    http.post(url, JSON.stringify({\n      type: \"invalid_request\",\n      reason: \"body is not valid JSON\",\n      error: String(e),\n      output: r.metadata[\"output_name\"],\n      path: r.path\n    }), { headers: { \"Content-Type\": \"application/json\" } });\n  }\n  r.stopForwarding();\n  return;\n}\n\n// Optional: also require a field\nif (!payload || payload.id == null) {\n  if (url) {\n    http.post(url, JSON.stringify({\n      type: \"invalid_request\",\n      reason: \"missing required field: id\",\n      output: r.metadata[\"output_name\"]\n    }), { headers: { \"Content-Type\": \"application/json\" } });\n  }\n  r.stopForwarding();\n  return;\n}\n\n// Body looks fine — continue delivery as-is (or call r.setBody(...) to reshape it).\n","javascript",[186],{"type":22,"tag":94,"props":187,"children":188},{"__ignoreMap":7},[189,201,210,220,268,276,335,349,388,407,425,444,453,482,491,510,524,533,541,554,568,600,619,631,663,679,696,715,731,739,763,771,787,799,807,815,824,868,880,912,928,945,962,986,994,1010,1022,1030,1038],{"type":22,"tag":190,"props":191,"children":194},"span",{"class":192,"line":193},"line",1,[195],{"type":22,"tag":190,"props":196,"children":198},{"style":197},"--shiki-default:#6A737D",[199],{"type":27,"value":200},"// Request function — runs BEFORE delivery.\n",{"type":22,"tag":190,"props":202,"children":204},{"class":192,"line":203},2,[205],{"type":22,"tag":190,"props":206,"children":207},{"style":197},[208],{"type":27,"value":209},"// Alert if the body is missing or is not valid JSON.\n",{"type":22,"tag":190,"props":211,"children":213},{"class":192,"line":212},3,[214],{"type":22,"tag":190,"props":215,"children":217},{"emptyLinePlaceholder":216},true,[218],{"type":27,"value":219},"\n",{"type":22,"tag":190,"props":221,"children":223},{"class":192,"line":222},4,[224,230,236,241,246,252,257,263],{"type":22,"tag":190,"props":225,"children":227},{"style":226},"--shiki-default:#F97583",[228],{"type":27,"value":229},"var",{"type":22,"tag":190,"props":231,"children":233},{"style":232},"--shiki-default:#E1E4E8",[234],{"type":27,"value":235}," url ",{"type":22,"tag":190,"props":237,"children":238},{"style":226},[239],{"type":27,"value":240},"=",{"type":22,"tag":190,"props":242,"children":243},{"style":232},[244],{"type":27,"value":245}," cfg.",{"type":22,"tag":190,"props":247,"children":249},{"style":248},"--shiki-default:#B392F0",[250],{"type":27,"value":251},"get",{"type":22,"tag":190,"props":253,"children":254},{"style":232},[255],{"type":27,"value":256},"(",{"type":22,"tag":190,"props":258,"children":260},{"style":259},"--shiki-default:#9ECBFF",[261],{"type":27,"value":262},"\"alert_webhook_url\"",{"type":22,"tag":190,"props":264,"children":265},{"style":232},[266],{"type":27,"value":267},");\n",{"type":22,"tag":190,"props":269,"children":271},{"class":192,"line":270},5,[272],{"type":22,"tag":190,"props":273,"children":274},{"emptyLinePlaceholder":216},[275],{"type":27,"value":219},{"type":22,"tag":190,"props":277,"children":279},{"class":192,"line":278},6,[280,285,290,295,300,305,310,315,320,325,330],{"type":22,"tag":190,"props":281,"children":282},{"style":226},[283],{"type":27,"value":284},"if",{"type":22,"tag":190,"props":286,"children":287},{"style":232},[288],{"type":27,"value":289}," (",{"type":22,"tag":190,"props":291,"children":292},{"style":226},[293],{"type":27,"value":294},"!",{"type":22,"tag":190,"props":296,"children":297},{"style":232},[298],{"type":27,"value":299},"r.body ",{"type":22,"tag":190,"props":301,"children":302},{"style":226},[303],{"type":27,"value":304},"||",{"type":22,"tag":190,"props":306,"children":307},{"style":232},[308],{"type":27,"value":309}," r.body.",{"type":22,"tag":190,"props":311,"children":312},{"style":248},[313],{"type":27,"value":314},"trim",{"type":22,"tag":190,"props":316,"children":317},{"style":232},[318],{"type":27,"value":319},"() ",{"type":22,"tag":190,"props":321,"children":322},{"style":226},[323],{"type":27,"value":324},"===",{"type":22,"tag":190,"props":326,"children":327},{"style":259},[328],{"type":27,"value":329}," \"\"",{"type":22,"tag":190,"props":331,"children":332},{"style":232},[333],{"type":27,"value":334},") {\n",{"type":22,"tag":190,"props":336,"children":338},{"class":192,"line":337},7,[339,344],{"type":22,"tag":190,"props":340,"children":341},{"style":226},[342],{"type":27,"value":343},"  if",{"type":22,"tag":190,"props":345,"children":346},{"style":232},[347],{"type":27,"value":348}," (url) {\n",{"type":22,"tag":190,"props":350,"children":352},{"class":192,"line":351},8,[353,358,363,368,374,378,383],{"type":22,"tag":190,"props":354,"children":355},{"style":232},[356],{"type":27,"value":357},"    http.",{"type":22,"tag":190,"props":359,"children":360},{"style":248},[361],{"type":27,"value":362},"post",{"type":22,"tag":190,"props":364,"children":365},{"style":232},[366],{"type":27,"value":367},"(url, ",{"type":22,"tag":190,"props":369,"children":371},{"style":370},"--shiki-default:#79B8FF",[372],{"type":27,"value":373},"JSON",{"type":22,"tag":190,"props":375,"children":376},{"style":232},[377],{"type":27,"value":135},{"type":22,"tag":190,"props":379,"children":380},{"style":248},[381],{"type":27,"value":382},"stringify",{"type":22,"tag":190,"props":384,"children":385},{"style":232},[386],{"type":27,"value":387},"({\n",{"type":22,"tag":190,"props":389,"children":391},{"class":192,"line":390},9,[392,397,402],{"type":22,"tag":190,"props":393,"children":394},{"style":232},[395],{"type":27,"value":396},"      type: ",{"type":22,"tag":190,"props":398,"children":399},{"style":259},[400],{"type":27,"value":401},"\"invalid_request\"",{"type":22,"tag":190,"props":403,"children":404},{"style":232},[405],{"type":27,"value":406},",\n",{"type":22,"tag":190,"props":408,"children":410},{"class":192,"line":409},10,[411,416,421],{"type":22,"tag":190,"props":412,"children":413},{"style":232},[414],{"type":27,"value":415},"      reason: ",{"type":22,"tag":190,"props":417,"children":418},{"style":259},[419],{"type":27,"value":420},"\"empty body\"",{"type":22,"tag":190,"props":422,"children":423},{"style":232},[424],{"type":27,"value":406},{"type":22,"tag":190,"props":426,"children":428},{"class":192,"line":427},11,[429,434,439],{"type":22,"tag":190,"props":430,"children":431},{"style":232},[432],{"type":27,"value":433},"      output: r.metadata[",{"type":22,"tag":190,"props":435,"children":436},{"style":259},[437],{"type":27,"value":438},"\"output_name\"",{"type":22,"tag":190,"props":440,"children":441},{"style":232},[442],{"type":27,"value":443},"],\n",{"type":22,"tag":190,"props":445,"children":447},{"class":192,"line":446},12,[448],{"type":22,"tag":190,"props":449,"children":450},{"style":232},[451],{"type":27,"value":452},"      path: r.path\n",{"type":22,"tag":190,"props":454,"children":456},{"class":192,"line":455},13,[457,462,467,472,477],{"type":22,"tag":190,"props":458,"children":459},{"style":232},[460],{"type":27,"value":461},"    }), { headers: { ",{"type":22,"tag":190,"props":463,"children":464},{"style":259},[465],{"type":27,"value":466},"\"Content-Type\"",{"type":22,"tag":190,"props":468,"children":469},{"style":232},[470],{"type":27,"value":471},": ",{"type":22,"tag":190,"props":473,"children":474},{"style":259},[475],{"type":27,"value":476},"\"application/json\"",{"type":22,"tag":190,"props":478,"children":479},{"style":232},[480],{"type":27,"value":481}," } });\n",{"type":22,"tag":190,"props":483,"children":485},{"class":192,"line":484},14,[486],{"type":22,"tag":190,"props":487,"children":488},{"style":232},[489],{"type":27,"value":490},"  }\n",{"type":22,"tag":190,"props":492,"children":494},{"class":192,"line":493},15,[495,500,505],{"type":22,"tag":190,"props":496,"children":497},{"style":232},[498],{"type":27,"value":499},"  r.",{"type":22,"tag":190,"props":501,"children":502},{"style":248},[503],{"type":27,"value":504},"stopForwarding",{"type":22,"tag":190,"props":506,"children":507},{"style":232},[508],{"type":27,"value":509},"();\n",{"type":22,"tag":190,"props":511,"children":513},{"class":192,"line":512},16,[514,519],{"type":22,"tag":190,"props":515,"children":516},{"style":226},[517],{"type":27,"value":518},"  return",{"type":22,"tag":190,"props":520,"children":521},{"style":232},[522],{"type":27,"value":523},";\n",{"type":22,"tag":190,"props":525,"children":527},{"class":192,"line":526},17,[528],{"type":22,"tag":190,"props":529,"children":530},{"style":232},[531],{"type":27,"value":532},"}\n",{"type":22,"tag":190,"props":534,"children":536},{"class":192,"line":535},18,[537],{"type":22,"tag":190,"props":538,"children":539},{"emptyLinePlaceholder":216},[540],{"type":27,"value":219},{"type":22,"tag":190,"props":542,"children":544},{"class":192,"line":543},19,[545,549],{"type":22,"tag":190,"props":546,"children":547},{"style":226},[548],{"type":27,"value":229},{"type":22,"tag":190,"props":550,"children":551},{"style":232},[552],{"type":27,"value":553}," payload;\n",{"type":22,"tag":190,"props":555,"children":557},{"class":192,"line":556},20,[558,563],{"type":22,"tag":190,"props":559,"children":560},{"style":226},[561],{"type":27,"value":562},"try",{"type":22,"tag":190,"props":564,"children":565},{"style":232},[566],{"type":27,"value":567}," {\n",{"type":22,"tag":190,"props":569,"children":571},{"class":192,"line":570},21,[572,577,581,586,590,595],{"type":22,"tag":190,"props":573,"children":574},{"style":232},[575],{"type":27,"value":576},"  payload ",{"type":22,"tag":190,"props":578,"children":579},{"style":226},[580],{"type":27,"value":240},{"type":22,"tag":190,"props":582,"children":583},{"style":370},[584],{"type":27,"value":585}," JSON",{"type":22,"tag":190,"props":587,"children":588},{"style":232},[589],{"type":27,"value":135},{"type":22,"tag":190,"props":591,"children":592},{"style":248},[593],{"type":27,"value":594},"parse",{"type":22,"tag":190,"props":596,"children":597},{"style":232},[598],{"type":27,"value":599},"(r.body);\n",{"type":22,"tag":190,"props":601,"children":603},{"class":192,"line":602},22,[604,609,614],{"type":22,"tag":190,"props":605,"children":606},{"style":232},[607],{"type":27,"value":608},"} ",{"type":22,"tag":190,"props":610,"children":611},{"style":226},[612],{"type":27,"value":613},"catch",{"type":22,"tag":190,"props":615,"children":616},{"style":232},[617],{"type":27,"value":618}," (e) {\n",{"type":22,"tag":190,"props":620,"children":622},{"class":192,"line":621},23,[623,627],{"type":22,"tag":190,"props":624,"children":625},{"style":226},[626],{"type":27,"value":343},{"type":22,"tag":190,"props":628,"children":629},{"style":232},[630],{"type":27,"value":348},{"type":22,"tag":190,"props":632,"children":634},{"class":192,"line":633},24,[635,639,643,647,651,655,659],{"type":22,"tag":190,"props":636,"children":637},{"style":232},[638],{"type":27,"value":357},{"type":22,"tag":190,"props":640,"children":641},{"style":248},[642],{"type":27,"value":362},{"type":22,"tag":190,"props":644,"children":645},{"style":232},[646],{"type":27,"value":367},{"type":22,"tag":190,"props":648,"children":649},{"style":370},[650],{"type":27,"value":373},{"type":22,"tag":190,"props":652,"children":653},{"style":232},[654],{"type":27,"value":135},{"type":22,"tag":190,"props":656,"children":657},{"style":248},[658],{"type":27,"value":382},{"type":22,"tag":190,"props":660,"children":661},{"style":232},[662],{"type":27,"value":387},{"type":22,"tag":190,"props":664,"children":666},{"class":192,"line":665},25,[667,671,675],{"type":22,"tag":190,"props":668,"children":669},{"style":232},[670],{"type":27,"value":396},{"type":22,"tag":190,"props":672,"children":673},{"style":259},[674],{"type":27,"value":401},{"type":22,"tag":190,"props":676,"children":677},{"style":232},[678],{"type":27,"value":406},{"type":22,"tag":190,"props":680,"children":682},{"class":192,"line":681},26,[683,687,692],{"type":22,"tag":190,"props":684,"children":685},{"style":232},[686],{"type":27,"value":415},{"type":22,"tag":190,"props":688,"children":689},{"style":259},[690],{"type":27,"value":691},"\"body is not valid JSON\"",{"type":22,"tag":190,"props":693,"children":694},{"style":232},[695],{"type":27,"value":406},{"type":22,"tag":190,"props":697,"children":699},{"class":192,"line":698},27,[700,705,710],{"type":22,"tag":190,"props":701,"children":702},{"style":232},[703],{"type":27,"value":704},"      error: ",{"type":22,"tag":190,"props":706,"children":707},{"style":248},[708],{"type":27,"value":709},"String",{"type":22,"tag":190,"props":711,"children":712},{"style":232},[713],{"type":27,"value":714},"(e),\n",{"type":22,"tag":190,"props":716,"children":718},{"class":192,"line":717},28,[719,723,727],{"type":22,"tag":190,"props":720,"children":721},{"style":232},[722],{"type":27,"value":433},{"type":22,"tag":190,"props":724,"children":725},{"style":259},[726],{"type":27,"value":438},{"type":22,"tag":190,"props":728,"children":729},{"style":232},[730],{"type":27,"value":443},{"type":22,"tag":190,"props":732,"children":734},{"class":192,"line":733},29,[735],{"type":22,"tag":190,"props":736,"children":737},{"style":232},[738],{"type":27,"value":452},{"type":22,"tag":190,"props":740,"children":742},{"class":192,"line":741},30,[743,747,751,755,759],{"type":22,"tag":190,"props":744,"children":745},{"style":232},[746],{"type":27,"value":461},{"type":22,"tag":190,"props":748,"children":749},{"style":259},[750],{"type":27,"value":466},{"type":22,"tag":190,"props":752,"children":753},{"style":232},[754],{"type":27,"value":471},{"type":22,"tag":190,"props":756,"children":757},{"style":259},[758],{"type":27,"value":476},{"type":22,"tag":190,"props":760,"children":761},{"style":232},[762],{"type":27,"value":481},{"type":22,"tag":190,"props":764,"children":766},{"class":192,"line":765},31,[767],{"type":22,"tag":190,"props":768,"children":769},{"style":232},[770],{"type":27,"value":490},{"type":22,"tag":190,"props":772,"children":774},{"class":192,"line":773},32,[775,779,783],{"type":22,"tag":190,"props":776,"children":777},{"style":232},[778],{"type":27,"value":499},{"type":22,"tag":190,"props":780,"children":781},{"style":248},[782],{"type":27,"value":504},{"type":22,"tag":190,"props":784,"children":785},{"style":232},[786],{"type":27,"value":509},{"type":22,"tag":190,"props":788,"children":790},{"class":192,"line":789},33,[791,795],{"type":22,"tag":190,"props":792,"children":793},{"style":226},[794],{"type":27,"value":518},{"type":22,"tag":190,"props":796,"children":797},{"style":232},[798],{"type":27,"value":523},{"type":22,"tag":190,"props":800,"children":802},{"class":192,"line":801},34,[803],{"type":22,"tag":190,"props":804,"children":805},{"style":232},[806],{"type":27,"value":532},{"type":22,"tag":190,"props":808,"children":810},{"class":192,"line":809},35,[811],{"type":22,"tag":190,"props":812,"children":813},{"emptyLinePlaceholder":216},[814],{"type":27,"value":219},{"type":22,"tag":190,"props":816,"children":818},{"class":192,"line":817},36,[819],{"type":22,"tag":190,"props":820,"children":821},{"style":197},[822],{"type":27,"value":823},"// Optional: also require a field\n",{"type":22,"tag":190,"props":825,"children":827},{"class":192,"line":826},37,[828,832,836,840,845,849,854,859,864],{"type":22,"tag":190,"props":829,"children":830},{"style":226},[831],{"type":27,"value":284},{"type":22,"tag":190,"props":833,"children":834},{"style":232},[835],{"type":27,"value":289},{"type":22,"tag":190,"props":837,"children":838},{"style":226},[839],{"type":27,"value":294},{"type":22,"tag":190,"props":841,"children":842},{"style":232},[843],{"type":27,"value":844},"payload ",{"type":22,"tag":190,"props":846,"children":847},{"style":226},[848],{"type":27,"value":304},{"type":22,"tag":190,"props":850,"children":851},{"style":232},[852],{"type":27,"value":853}," payload.id ",{"type":22,"tag":190,"props":855,"children":856},{"style":226},[857],{"type":27,"value":858},"==",{"type":22,"tag":190,"props":860,"children":861},{"style":370},[862],{"type":27,"value":863}," null",{"type":22,"tag":190,"props":865,"children":866},{"style":232},[867],{"type":27,"value":334},{"type":22,"tag":190,"props":869,"children":871},{"class":192,"line":870},38,[872,876],{"type":22,"tag":190,"props":873,"children":874},{"style":226},[875],{"type":27,"value":343},{"type":22,"tag":190,"props":877,"children":878},{"style":232},[879],{"type":27,"value":348},{"type":22,"tag":190,"props":881,"children":883},{"class":192,"line":882},39,[884,888,892,896,900,904,908],{"type":22,"tag":190,"props":885,"children":886},{"style":232},[887],{"type":27,"value":357},{"type":22,"tag":190,"props":889,"children":890},{"style":248},[891],{"type":27,"value":362},{"type":22,"tag":190,"props":893,"children":894},{"style":232},[895],{"type":27,"value":367},{"type":22,"tag":190,"props":897,"children":898},{"style":370},[899],{"type":27,"value":373},{"type":22,"tag":190,"props":901,"children":902},{"style":232},[903],{"type":27,"value":135},{"type":22,"tag":190,"props":905,"children":906},{"style":248},[907],{"type":27,"value":382},{"type":22,"tag":190,"props":909,"children":910},{"style":232},[911],{"type":27,"value":387},{"type":22,"tag":190,"props":913,"children":915},{"class":192,"line":914},40,[916,920,924],{"type":22,"tag":190,"props":917,"children":918},{"style":232},[919],{"type":27,"value":396},{"type":22,"tag":190,"props":921,"children":922},{"style":259},[923],{"type":27,"value":401},{"type":22,"tag":190,"props":925,"children":926},{"style":232},[927],{"type":27,"value":406},{"type":22,"tag":190,"props":929,"children":931},{"class":192,"line":930},41,[932,936,941],{"type":22,"tag":190,"props":933,"children":934},{"style":232},[935],{"type":27,"value":415},{"type":22,"tag":190,"props":937,"children":938},{"style":259},[939],{"type":27,"value":940},"\"missing required field: id\"",{"type":22,"tag":190,"props":942,"children":943},{"style":232},[944],{"type":27,"value":406},{"type":22,"tag":190,"props":946,"children":948},{"class":192,"line":947},42,[949,953,957],{"type":22,"tag":190,"props":950,"children":951},{"style":232},[952],{"type":27,"value":433},{"type":22,"tag":190,"props":954,"children":955},{"style":259},[956],{"type":27,"value":438},{"type":22,"tag":190,"props":958,"children":959},{"style":232},[960],{"type":27,"value":961},"]\n",{"type":22,"tag":190,"props":963,"children":965},{"class":192,"line":964},43,[966,970,974,978,982],{"type":22,"tag":190,"props":967,"children":968},{"style":232},[969],{"type":27,"value":461},{"type":22,"tag":190,"props":971,"children":972},{"style":259},[973],{"type":27,"value":466},{"type":22,"tag":190,"props":975,"children":976},{"style":232},[977],{"type":27,"value":471},{"type":22,"tag":190,"props":979,"children":980},{"style":259},[981],{"type":27,"value":476},{"type":22,"tag":190,"props":983,"children":984},{"style":232},[985],{"type":27,"value":481},{"type":22,"tag":190,"props":987,"children":989},{"class":192,"line":988},44,[990],{"type":22,"tag":190,"props":991,"children":992},{"style":232},[993],{"type":27,"value":490},{"type":22,"tag":190,"props":995,"children":997},{"class":192,"line":996},45,[998,1002,1006],{"type":22,"tag":190,"props":999,"children":1000},{"style":232},[1001],{"type":27,"value":499},{"type":22,"tag":190,"props":1003,"children":1004},{"style":248},[1005],{"type":27,"value":504},{"type":22,"tag":190,"props":1007,"children":1008},{"style":232},[1009],{"type":27,"value":509},{"type":22,"tag":190,"props":1011,"children":1013},{"class":192,"line":1012},46,[1014,1018],{"type":22,"tag":190,"props":1015,"children":1016},{"style":226},[1017],{"type":27,"value":518},{"type":22,"tag":190,"props":1019,"children":1020},{"style":232},[1021],{"type":27,"value":523},{"type":22,"tag":190,"props":1023,"children":1025},{"class":192,"line":1024},47,[1026],{"type":22,"tag":190,"props":1027,"children":1028},{"style":232},[1029],{"type":27,"value":532},{"type":22,"tag":190,"props":1031,"children":1033},{"class":192,"line":1032},48,[1034],{"type":22,"tag":190,"props":1035,"children":1036},{"emptyLinePlaceholder":216},[1037],{"type":27,"value":219},{"type":22,"tag":190,"props":1039,"children":1041},{"class":192,"line":1040},49,[1042],{"type":22,"tag":190,"props":1043,"children":1044},{"style":197},[1045],{"type":27,"value":1046},"// Body looks fine — continue delivery as-is (or call r.setBody(...) to reshape it).\n",{"type":22,"tag":176,"props":1048,"children":1049},{"v-slot:lua":7},[1050],{"type":22,"tag":180,"props":1051,"children":1055},{"className":1052,"code":1053,"language":1054,"meta":7,"style":7},"language-lua shiki shiki-themes github-dark","-- Request function — runs BEFORE delivery.\n-- Alert if the body is missing or is not valid JSON.\n\nlocal http = require(\"http\")\nlocal json = require(\"json\")\n\nlocal url = cfg:GetValue(\"alert_webhook_url\")\n\nlocal function alert(reason, extra)\n  if url == \"\" then return end\n  local body = {\n    type = \"invalid_request\",\n    reason = reason,\n    output = r.metadata[\"output_name\"] or \"\",\n    path = r.RequestPath or \"\"\n  }\n  if extra then\n    for k, v in pairs(extra) do body[k] = v end\n  end\n  local payload, err = json.encode(body)\n  if err then error(err) end\n  http.request(\"POST\", url, {\n    headers = { [\"Content-Type\"] = \"application/json\" },\n    body = payload\n  })\nend\n\nif r.RequestBody == nil or r.RequestBody == \"\" then\n  alert(\"empty body\")\n  r:StopForwarding()\n  return\nend\n\nlocal payload, err = json.decode(r.RequestBody)\nif err then\n  alert(\"body is not valid JSON\", { error = tostring(err) })\n  r:StopForwarding()\n  return\nend\n\nif payload == nil or payload.id == nil then\n  alert(\"missing required field: id\")\n  r:StopForwarding()\n  return\nend\n\n-- Body looks fine — continue delivery as-is\n-- (or call r:SetRequestBody(...) to reshape it).\n","lua",[1056],{"type":22,"tag":94,"props":1057,"children":1058},{"__ignoreMap":7},[1059,1067,1075,1082,1118,1151,1158,1200,1207,1229,1264,1285,1306,1323,1372,1403,1410,1427,1479,1487,1518,1548,1574,1613,1630,1638,1645,1652,1702,1722,1744,1752,1759,1766,1803,1818,1852,1871,1878,1885,1892,1939,1958,1977,1984,1991,1998,2006],{"type":22,"tag":190,"props":1060,"children":1061},{"class":192,"line":193},[1062],{"type":22,"tag":190,"props":1063,"children":1064},{"style":197},[1065],{"type":27,"value":1066},"-- Request function — runs BEFORE delivery.\n",{"type":22,"tag":190,"props":1068,"children":1069},{"class":192,"line":203},[1070],{"type":22,"tag":190,"props":1071,"children":1072},{"style":197},[1073],{"type":27,"value":1074},"-- Alert if the body is missing or is not valid JSON.\n",{"type":22,"tag":190,"props":1076,"children":1077},{"class":192,"line":212},[1078],{"type":22,"tag":190,"props":1079,"children":1080},{"emptyLinePlaceholder":216},[1081],{"type":27,"value":219},{"type":22,"tag":190,"props":1083,"children":1084},{"class":192,"line":222},[1085,1090,1095,1099,1104,1108,1113],{"type":22,"tag":190,"props":1086,"children":1087},{"style":226},[1088],{"type":27,"value":1089},"local",{"type":22,"tag":190,"props":1091,"children":1092},{"style":232},[1093],{"type":27,"value":1094}," http ",{"type":22,"tag":190,"props":1096,"children":1097},{"style":226},[1098],{"type":27,"value":240},{"type":22,"tag":190,"props":1100,"children":1101},{"style":370},[1102],{"type":27,"value":1103}," require",{"type":22,"tag":190,"props":1105,"children":1106},{"style":232},[1107],{"type":27,"value":256},{"type":22,"tag":190,"props":1109,"children":1110},{"style":259},[1111],{"type":27,"value":1112},"\"http\"",{"type":22,"tag":190,"props":1114,"children":1115},{"style":232},[1116],{"type":27,"value":1117},")\n",{"type":22,"tag":190,"props":1119,"children":1120},{"class":192,"line":270},[1121,1125,1130,1134,1138,1142,1147],{"type":22,"tag":190,"props":1122,"children":1123},{"style":226},[1124],{"type":27,"value":1089},{"type":22,"tag":190,"props":1126,"children":1127},{"style":232},[1128],{"type":27,"value":1129}," json ",{"type":22,"tag":190,"props":1131,"children":1132},{"style":226},[1133],{"type":27,"value":240},{"type":22,"tag":190,"props":1135,"children":1136},{"style":370},[1137],{"type":27,"value":1103},{"type":22,"tag":190,"props":1139,"children":1140},{"style":232},[1141],{"type":27,"value":256},{"type":22,"tag":190,"props":1143,"children":1144},{"style":259},[1145],{"type":27,"value":1146},"\"json\"",{"type":22,"tag":190,"props":1148,"children":1149},{"style":232},[1150],{"type":27,"value":1117},{"type":22,"tag":190,"props":1152,"children":1153},{"class":192,"line":278},[1154],{"type":22,"tag":190,"props":1155,"children":1156},{"emptyLinePlaceholder":216},[1157],{"type":27,"value":219},{"type":22,"tag":190,"props":1159,"children":1160},{"class":192,"line":337},[1161,1165,1169,1173,1178,1183,1188,1192,1196],{"type":22,"tag":190,"props":1162,"children":1163},{"style":226},[1164],{"type":27,"value":1089},{"type":22,"tag":190,"props":1166,"children":1167},{"style":232},[1168],{"type":27,"value":235},{"type":22,"tag":190,"props":1170,"children":1171},{"style":226},[1172],{"type":27,"value":240},{"type":22,"tag":190,"props":1174,"children":1175},{"style":248},[1176],{"type":27,"value":1177}," cfg",{"type":22,"tag":190,"props":1179,"children":1180},{"style":232},[1181],{"type":27,"value":1182},":",{"type":22,"tag":190,"props":1184,"children":1185},{"style":370},[1186],{"type":27,"value":1187},"GetValue",{"type":22,"tag":190,"props":1189,"children":1190},{"style":232},[1191],{"type":27,"value":256},{"type":22,"tag":190,"props":1193,"children":1194},{"style":259},[1195],{"type":27,"value":262},{"type":22,"tag":190,"props":1197,"children":1198},{"style":232},[1199],{"type":27,"value":1117},{"type":22,"tag":190,"props":1201,"children":1202},{"class":192,"line":351},[1203],{"type":22,"tag":190,"props":1204,"children":1205},{"emptyLinePlaceholder":216},[1206],{"type":27,"value":219},{"type":22,"tag":190,"props":1208,"children":1209},{"class":192,"line":390},[1210,1214,1219,1224],{"type":22,"tag":190,"props":1211,"children":1212},{"style":226},[1213],{"type":27,"value":1089},{"type":22,"tag":190,"props":1215,"children":1216},{"style":226},[1217],{"type":27,"value":1218}," function",{"type":22,"tag":190,"props":1220,"children":1221},{"style":248},[1222],{"type":27,"value":1223}," alert",{"type":22,"tag":190,"props":1225,"children":1226},{"style":232},[1227],{"type":27,"value":1228},"(reason, extra)\n",{"type":22,"tag":190,"props":1230,"children":1231},{"class":192,"line":409},[1232,1236,1240,1244,1249,1254,1259],{"type":22,"tag":190,"props":1233,"children":1234},{"style":226},[1235],{"type":27,"value":343},{"type":22,"tag":190,"props":1237,"children":1238},{"style":232},[1239],{"type":27,"value":235},{"type":22,"tag":190,"props":1241,"children":1242},{"style":226},[1243],{"type":27,"value":858},{"type":22,"tag":190,"props":1245,"children":1246},{"style":259},[1247],{"type":27,"value":1248}," \"\" ",{"type":22,"tag":190,"props":1250,"children":1251},{"style":226},[1252],{"type":27,"value":1253},"then",{"type":22,"tag":190,"props":1255,"children":1256},{"style":226},[1257],{"type":27,"value":1258}," return",{"type":22,"tag":190,"props":1260,"children":1261},{"style":226},[1262],{"type":27,"value":1263}," end\n",{"type":22,"tag":190,"props":1265,"children":1266},{"class":192,"line":427},[1267,1272,1277,1281],{"type":22,"tag":190,"props":1268,"children":1269},{"style":226},[1270],{"type":27,"value":1271},"  local",{"type":22,"tag":190,"props":1273,"children":1274},{"style":232},[1275],{"type":27,"value":1276}," body ",{"type":22,"tag":190,"props":1278,"children":1279},{"style":226},[1280],{"type":27,"value":240},{"type":22,"tag":190,"props":1282,"children":1283},{"style":232},[1284],{"type":27,"value":567},{"type":22,"tag":190,"props":1286,"children":1287},{"class":192,"line":446},[1288,1293,1297,1302],{"type":22,"tag":190,"props":1289,"children":1290},{"style":232},[1291],{"type":27,"value":1292},"    type ",{"type":22,"tag":190,"props":1294,"children":1295},{"style":226},[1296],{"type":27,"value":240},{"type":22,"tag":190,"props":1298,"children":1299},{"style":259},[1300],{"type":27,"value":1301}," \"invalid_request\"",{"type":22,"tag":190,"props":1303,"children":1304},{"style":232},[1305],{"type":27,"value":406},{"type":22,"tag":190,"props":1307,"children":1308},{"class":192,"line":455},[1309,1314,1318],{"type":22,"tag":190,"props":1310,"children":1311},{"style":232},[1312],{"type":27,"value":1313},"    reason ",{"type":22,"tag":190,"props":1315,"children":1316},{"style":226},[1317],{"type":27,"value":240},{"type":22,"tag":190,"props":1319,"children":1320},{"style":232},[1321],{"type":27,"value":1322}," reason,\n",{"type":22,"tag":190,"props":1324,"children":1325},{"class":192,"line":484},[1326,1331,1335,1340,1345,1350,1354,1359,1364,1368],{"type":22,"tag":190,"props":1327,"children":1328},{"style":232},[1329],{"type":27,"value":1330},"    output ",{"type":22,"tag":190,"props":1332,"children":1333},{"style":226},[1334],{"type":27,"value":240},{"type":22,"tag":190,"props":1336,"children":1337},{"style":232},[1338],{"type":27,"value":1339}," r.",{"type":22,"tag":190,"props":1341,"children":1342},{"style":248},[1343],{"type":27,"value":1344},"metadata",{"type":22,"tag":190,"props":1346,"children":1347},{"style":232},[1348],{"type":27,"value":1349},"[",{"type":22,"tag":190,"props":1351,"children":1352},{"style":259},[1353],{"type":27,"value":438},{"type":22,"tag":190,"props":1355,"children":1356},{"style":232},[1357],{"type":27,"value":1358},"] ",{"type":22,"tag":190,"props":1360,"children":1361},{"style":226},[1362],{"type":27,"value":1363},"or",{"type":22,"tag":190,"props":1365,"children":1366},{"style":259},[1367],{"type":27,"value":329},{"type":22,"tag":190,"props":1369,"children":1370},{"style":232},[1371],{"type":27,"value":406},{"type":22,"tag":190,"props":1373,"children":1374},{"class":192,"line":493},[1375,1380,1384,1388,1393,1398],{"type":22,"tag":190,"props":1376,"children":1377},{"style":232},[1378],{"type":27,"value":1379},"    path ",{"type":22,"tag":190,"props":1381,"children":1382},{"style":226},[1383],{"type":27,"value":240},{"type":22,"tag":190,"props":1385,"children":1386},{"style":232},[1387],{"type":27,"value":1339},{"type":22,"tag":190,"props":1389,"children":1390},{"style":248},[1391],{"type":27,"value":1392},"RequestPath",{"type":22,"tag":190,"props":1394,"children":1395},{"style":226},[1396],{"type":27,"value":1397}," or",{"type":22,"tag":190,"props":1399,"children":1400},{"style":259},[1401],{"type":27,"value":1402}," \"\"\n",{"type":22,"tag":190,"props":1404,"children":1405},{"class":192,"line":512},[1406],{"type":22,"tag":190,"props":1407,"children":1408},{"style":232},[1409],{"type":27,"value":490},{"type":22,"tag":190,"props":1411,"children":1412},{"class":192,"line":526},[1413,1417,1422],{"type":22,"tag":190,"props":1414,"children":1415},{"style":226},[1416],{"type":27,"value":343},{"type":22,"tag":190,"props":1418,"children":1419},{"style":232},[1420],{"type":27,"value":1421}," extra ",{"type":22,"tag":190,"props":1423,"children":1424},{"style":226},[1425],{"type":27,"value":1426},"then\n",{"type":22,"tag":190,"props":1428,"children":1429},{"class":192,"line":535},[1430,1435,1440,1445,1450,1455,1460,1465,1469,1474],{"type":22,"tag":190,"props":1431,"children":1432},{"style":226},[1433],{"type":27,"value":1434},"    for",{"type":22,"tag":190,"props":1436,"children":1437},{"style":232},[1438],{"type":27,"value":1439}," k, v ",{"type":22,"tag":190,"props":1441,"children":1442},{"style":226},[1443],{"type":27,"value":1444},"in",{"type":22,"tag":190,"props":1446,"children":1447},{"style":370},[1448],{"type":27,"value":1449}," pairs",{"type":22,"tag":190,"props":1451,"children":1452},{"style":232},[1453],{"type":27,"value":1454},"(extra) ",{"type":22,"tag":190,"props":1456,"children":1457},{"style":226},[1458],{"type":27,"value":1459},"do",{"type":22,"tag":190,"props":1461,"children":1462},{"style":232},[1463],{"type":27,"value":1464}," body[k] ",{"type":22,"tag":190,"props":1466,"children":1467},{"style":226},[1468],{"type":27,"value":240},{"type":22,"tag":190,"props":1470,"children":1471},{"style":232},[1472],{"type":27,"value":1473}," v ",{"type":22,"tag":190,"props":1475,"children":1476},{"style":226},[1477],{"type":27,"value":1478},"end\n",{"type":22,"tag":190,"props":1480,"children":1481},{"class":192,"line":543},[1482],{"type":22,"tag":190,"props":1483,"children":1484},{"style":226},[1485],{"type":27,"value":1486},"  end\n",{"type":22,"tag":190,"props":1488,"children":1489},{"class":192,"line":556},[1490,1494,1499,1503,1508,1513],{"type":22,"tag":190,"props":1491,"children":1492},{"style":226},[1493],{"type":27,"value":1271},{"type":22,"tag":190,"props":1495,"children":1496},{"style":232},[1497],{"type":27,"value":1498}," payload, err ",{"type":22,"tag":190,"props":1500,"children":1501},{"style":226},[1502],{"type":27,"value":240},{"type":22,"tag":190,"props":1504,"children":1505},{"style":232},[1506],{"type":27,"value":1507}," json.",{"type":22,"tag":190,"props":1509,"children":1510},{"style":370},[1511],{"type":27,"value":1512},"encode",{"type":22,"tag":190,"props":1514,"children":1515},{"style":232},[1516],{"type":27,"value":1517},"(body)\n",{"type":22,"tag":190,"props":1519,"children":1520},{"class":192,"line":570},[1521,1525,1530,1534,1539,1544],{"type":22,"tag":190,"props":1522,"children":1523},{"style":226},[1524],{"type":27,"value":343},{"type":22,"tag":190,"props":1526,"children":1527},{"style":232},[1528],{"type":27,"value":1529}," err ",{"type":22,"tag":190,"props":1531,"children":1532},{"style":226},[1533],{"type":27,"value":1253},{"type":22,"tag":190,"props":1535,"children":1536},{"style":370},[1537],{"type":27,"value":1538}," error",{"type":22,"tag":190,"props":1540,"children":1541},{"style":232},[1542],{"type":27,"value":1543},"(err) ",{"type":22,"tag":190,"props":1545,"children":1546},{"style":226},[1547],{"type":27,"value":1478},{"type":22,"tag":190,"props":1549,"children":1550},{"class":192,"line":602},[1551,1556,1560,1564,1569],{"type":22,"tag":190,"props":1552,"children":1553},{"style":232},[1554],{"type":27,"value":1555},"  http.",{"type":22,"tag":190,"props":1557,"children":1558},{"style":370},[1559],{"type":27,"value":152},{"type":22,"tag":190,"props":1561,"children":1562},{"style":232},[1563],{"type":27,"value":256},{"type":22,"tag":190,"props":1565,"children":1566},{"style":259},[1567],{"type":27,"value":1568},"\"POST\"",{"type":22,"tag":190,"props":1570,"children":1571},{"style":232},[1572],{"type":27,"value":1573},", url, {\n",{"type":22,"tag":190,"props":1575,"children":1576},{"class":192,"line":621},[1577,1582,1586,1591,1595,1599,1603,1608],{"type":22,"tag":190,"props":1578,"children":1579},{"style":232},[1580],{"type":27,"value":1581},"    headers ",{"type":22,"tag":190,"props":1583,"children":1584},{"style":226},[1585],{"type":27,"value":240},{"type":22,"tag":190,"props":1587,"children":1588},{"style":232},[1589],{"type":27,"value":1590}," { [",{"type":22,"tag":190,"props":1592,"children":1593},{"style":259},[1594],{"type":27,"value":466},{"type":22,"tag":190,"props":1596,"children":1597},{"style":232},[1598],{"type":27,"value":1358},{"type":22,"tag":190,"props":1600,"children":1601},{"style":226},[1602],{"type":27,"value":240},{"type":22,"tag":190,"props":1604,"children":1605},{"style":259},[1606],{"type":27,"value":1607}," \"application/json\" ",{"type":22,"tag":190,"props":1609,"children":1610},{"style":232},[1611],{"type":27,"value":1612},"},\n",{"type":22,"tag":190,"props":1614,"children":1615},{"class":192,"line":633},[1616,1621,1625],{"type":22,"tag":190,"props":1617,"children":1618},{"style":232},[1619],{"type":27,"value":1620},"    body ",{"type":22,"tag":190,"props":1622,"children":1623},{"style":226},[1624],{"type":27,"value":240},{"type":22,"tag":190,"props":1626,"children":1627},{"style":232},[1628],{"type":27,"value":1629}," payload\n",{"type":22,"tag":190,"props":1631,"children":1632},{"class":192,"line":665},[1633],{"type":22,"tag":190,"props":1634,"children":1635},{"style":232},[1636],{"type":27,"value":1637},"  })\n",{"type":22,"tag":190,"props":1639,"children":1640},{"class":192,"line":681},[1641],{"type":22,"tag":190,"props":1642,"children":1643},{"style":226},[1644],{"type":27,"value":1478},{"type":22,"tag":190,"props":1646,"children":1647},{"class":192,"line":698},[1648],{"type":22,"tag":190,"props":1649,"children":1650},{"emptyLinePlaceholder":216},[1651],{"type":27,"value":219},{"type":22,"tag":190,"props":1653,"children":1654},{"class":192,"line":717},[1655,1659,1663,1668,1673,1678,1682,1686,1690,1694,1698],{"type":22,"tag":190,"props":1656,"children":1657},{"style":226},[1658],{"type":27,"value":284},{"type":22,"tag":190,"props":1660,"children":1661},{"style":232},[1662],{"type":27,"value":1339},{"type":22,"tag":190,"props":1664,"children":1665},{"style":248},[1666],{"type":27,"value":1667},"RequestBody",{"type":22,"tag":190,"props":1669,"children":1670},{"style":226},[1671],{"type":27,"value":1672}," ==",{"type":22,"tag":190,"props":1674,"children":1675},{"style":370},[1676],{"type":27,"value":1677}," nil",{"type":22,"tag":190,"props":1679,"children":1680},{"style":226},[1681],{"type":27,"value":1397},{"type":22,"tag":190,"props":1683,"children":1684},{"style":232},[1685],{"type":27,"value":1339},{"type":22,"tag":190,"props":1687,"children":1688},{"style":248},[1689],{"type":27,"value":1667},{"type":22,"tag":190,"props":1691,"children":1692},{"style":226},[1693],{"type":27,"value":1672},{"type":22,"tag":190,"props":1695,"children":1696},{"style":259},[1697],{"type":27,"value":1248},{"type":22,"tag":190,"props":1699,"children":1700},{"style":226},[1701],{"type":27,"value":1426},{"type":22,"tag":190,"props":1703,"children":1704},{"class":192,"line":733},[1705,1710,1714,1718],{"type":22,"tag":190,"props":1706,"children":1707},{"style":370},[1708],{"type":27,"value":1709},"  alert",{"type":22,"tag":190,"props":1711,"children":1712},{"style":232},[1713],{"type":27,"value":256},{"type":22,"tag":190,"props":1715,"children":1716},{"style":259},[1717],{"type":27,"value":420},{"type":22,"tag":190,"props":1719,"children":1720},{"style":232},[1721],{"type":27,"value":1117},{"type":22,"tag":190,"props":1723,"children":1724},{"class":192,"line":741},[1725,1730,1734,1739],{"type":22,"tag":190,"props":1726,"children":1727},{"style":248},[1728],{"type":27,"value":1729},"  r",{"type":22,"tag":190,"props":1731,"children":1732},{"style":232},[1733],{"type":27,"value":1182},{"type":22,"tag":190,"props":1735,"children":1736},{"style":370},[1737],{"type":27,"value":1738},"StopForwarding",{"type":22,"tag":190,"props":1740,"children":1741},{"style":232},[1742],{"type":27,"value":1743},"()\n",{"type":22,"tag":190,"props":1745,"children":1746},{"class":192,"line":765},[1747],{"type":22,"tag":190,"props":1748,"children":1749},{"style":226},[1750],{"type":27,"value":1751},"  return\n",{"type":22,"tag":190,"props":1753,"children":1754},{"class":192,"line":773},[1755],{"type":22,"tag":190,"props":1756,"children":1757},{"style":226},[1758],{"type":27,"value":1478},{"type":22,"tag":190,"props":1760,"children":1761},{"class":192,"line":789},[1762],{"type":22,"tag":190,"props":1763,"children":1764},{"emptyLinePlaceholder":216},[1765],{"type":27,"value":219},{"type":22,"tag":190,"props":1767,"children":1768},{"class":192,"line":801},[1769,1773,1777,1781,1785,1790,1795,1799],{"type":22,"tag":190,"props":1770,"children":1771},{"style":226},[1772],{"type":27,"value":1089},{"type":22,"tag":190,"props":1774,"children":1775},{"style":232},[1776],{"type":27,"value":1498},{"type":22,"tag":190,"props":1778,"children":1779},{"style":226},[1780],{"type":27,"value":240},{"type":22,"tag":190,"props":1782,"children":1783},{"style":232},[1784],{"type":27,"value":1507},{"type":22,"tag":190,"props":1786,"children":1787},{"style":370},[1788],{"type":27,"value":1789},"decode",{"type":22,"tag":190,"props":1791,"children":1792},{"style":232},[1793],{"type":27,"value":1794},"(r.",{"type":22,"tag":190,"props":1796,"children":1797},{"style":248},[1798],{"type":27,"value":1667},{"type":22,"tag":190,"props":1800,"children":1801},{"style":232},[1802],{"type":27,"value":1117},{"type":22,"tag":190,"props":1804,"children":1805},{"class":192,"line":809},[1806,1810,1814],{"type":22,"tag":190,"props":1807,"children":1808},{"style":226},[1809],{"type":27,"value":284},{"type":22,"tag":190,"props":1811,"children":1812},{"style":232},[1813],{"type":27,"value":1529},{"type":22,"tag":190,"props":1815,"children":1816},{"style":226},[1817],{"type":27,"value":1426},{"type":22,"tag":190,"props":1819,"children":1820},{"class":192,"line":817},[1821,1825,1829,1833,1838,1842,1847],{"type":22,"tag":190,"props":1822,"children":1823},{"style":370},[1824],{"type":27,"value":1709},{"type":22,"tag":190,"props":1826,"children":1827},{"style":232},[1828],{"type":27,"value":256},{"type":22,"tag":190,"props":1830,"children":1831},{"style":259},[1832],{"type":27,"value":691},{"type":22,"tag":190,"props":1834,"children":1835},{"style":232},[1836],{"type":27,"value":1837},", { error ",{"type":22,"tag":190,"props":1839,"children":1840},{"style":226},[1841],{"type":27,"value":240},{"type":22,"tag":190,"props":1843,"children":1844},{"style":370},[1845],{"type":27,"value":1846}," tostring",{"type":22,"tag":190,"props":1848,"children":1849},{"style":232},[1850],{"type":27,"value":1851},"(err) })\n",{"type":22,"tag":190,"props":1853,"children":1854},{"class":192,"line":826},[1855,1859,1863,1867],{"type":22,"tag":190,"props":1856,"children":1857},{"style":248},[1858],{"type":27,"value":1729},{"type":22,"tag":190,"props":1860,"children":1861},{"style":232},[1862],{"type":27,"value":1182},{"type":22,"tag":190,"props":1864,"children":1865},{"style":370},[1866],{"type":27,"value":1738},{"type":22,"tag":190,"props":1868,"children":1869},{"style":232},[1870],{"type":27,"value":1743},{"type":22,"tag":190,"props":1872,"children":1873},{"class":192,"line":870},[1874],{"type":22,"tag":190,"props":1875,"children":1876},{"style":226},[1877],{"type":27,"value":1751},{"type":22,"tag":190,"props":1879,"children":1880},{"class":192,"line":882},[1881],{"type":22,"tag":190,"props":1882,"children":1883},{"style":226},[1884],{"type":27,"value":1478},{"type":22,"tag":190,"props":1886,"children":1887},{"class":192,"line":914},[1888],{"type":22,"tag":190,"props":1889,"children":1890},{"emptyLinePlaceholder":216},[1891],{"type":27,"value":219},{"type":22,"tag":190,"props":1893,"children":1894},{"class":192,"line":930},[1895,1899,1904,1908,1912,1916,1921,1926,1930,1934],{"type":22,"tag":190,"props":1896,"children":1897},{"style":226},[1898],{"type":27,"value":284},{"type":22,"tag":190,"props":1900,"children":1901},{"style":232},[1902],{"type":27,"value":1903}," payload ",{"type":22,"tag":190,"props":1905,"children":1906},{"style":226},[1907],{"type":27,"value":858},{"type":22,"tag":190,"props":1909,"children":1910},{"style":370},[1911],{"type":27,"value":1677},{"type":22,"tag":190,"props":1913,"children":1914},{"style":226},[1915],{"type":27,"value":1397},{"type":22,"tag":190,"props":1917,"children":1918},{"style":232},[1919],{"type":27,"value":1920}," payload.",{"type":22,"tag":190,"props":1922,"children":1923},{"style":248},[1924],{"type":27,"value":1925},"id",{"type":22,"tag":190,"props":1927,"children":1928},{"style":226},[1929],{"type":27,"value":1672},{"type":22,"tag":190,"props":1931,"children":1932},{"style":370},[1933],{"type":27,"value":1677},{"type":22,"tag":190,"props":1935,"children":1936},{"style":226},[1937],{"type":27,"value":1938}," then\n",{"type":22,"tag":190,"props":1940,"children":1941},{"class":192,"line":947},[1942,1946,1950,1954],{"type":22,"tag":190,"props":1943,"children":1944},{"style":370},[1945],{"type":27,"value":1709},{"type":22,"tag":190,"props":1947,"children":1948},{"style":232},[1949],{"type":27,"value":256},{"type":22,"tag":190,"props":1951,"children":1952},{"style":259},[1953],{"type":27,"value":940},{"type":22,"tag":190,"props":1955,"children":1956},{"style":232},[1957],{"type":27,"value":1117},{"type":22,"tag":190,"props":1959,"children":1960},{"class":192,"line":964},[1961,1965,1969,1973],{"type":22,"tag":190,"props":1962,"children":1963},{"style":248},[1964],{"type":27,"value":1729},{"type":22,"tag":190,"props":1966,"children":1967},{"style":232},[1968],{"type":27,"value":1182},{"type":22,"tag":190,"props":1970,"children":1971},{"style":370},[1972],{"type":27,"value":1738},{"type":22,"tag":190,"props":1974,"children":1975},{"style":232},[1976],{"type":27,"value":1743},{"type":22,"tag":190,"props":1978,"children":1979},{"class":192,"line":988},[1980],{"type":22,"tag":190,"props":1981,"children":1982},{"style":226},[1983],{"type":27,"value":1751},{"type":22,"tag":190,"props":1985,"children":1986},{"class":192,"line":996},[1987],{"type":22,"tag":190,"props":1988,"children":1989},{"style":226},[1990],{"type":27,"value":1478},{"type":22,"tag":190,"props":1992,"children":1993},{"class":192,"line":1012},[1994],{"type":22,"tag":190,"props":1995,"children":1996},{"emptyLinePlaceholder":216},[1997],{"type":27,"value":219},{"type":22,"tag":190,"props":1999,"children":2000},{"class":192,"line":1024},[2001],{"type":22,"tag":190,"props":2002,"children":2003},{"style":197},[2004],{"type":27,"value":2005},"-- Body looks fine — continue delivery as-is\n",{"type":22,"tag":190,"props":2007,"children":2008},{"class":192,"line":1032},[2009],{"type":22,"tag":190,"props":2010,"children":2011},{"style":197},[2012],{"type":27,"value":2013},"-- (or call r:SetRequestBody(...) to reshape it).\n",{"type":22,"tag":137,"props":2015,"children":2017},{"id":2016},"example-2-alert-when-the-response-body-is-empty",[2018],{"type":27,"value":2019},"Example 2: alert when the response body is empty",{"type":22,"tag":23,"props":2021,"children":2022},{},[2023,2024,2029,2031,2036],{"type":27,"value":147},{"type":22,"tag":30,"props":2025,"children":2026},{},[2027],{"type":27,"value":2028},"response",{"type":27,"value":2030}," function (after delivery). When the destination answers with a success status but an ",{"type":22,"tag":30,"props":2032,"children":2033},{},[2034],{"type":27,"value":2035},"empty",{"type":27,"value":2037}," body — a common silent-failure pattern — post an alert to your URL.",{"type":22,"tag":172,"props":2039,"children":2040},{},[2041,2391],{"type":22,"tag":176,"props":2042,"children":2043},{"v-slot:javascript":7},[2044],{"type":22,"tag":180,"props":2045,"children":2047},{"className":182,"code":2046,"language":184,"meta":7,"style":7},"// Response function — runs AFTER delivery.\n// Alert if the destination returned an empty body.\n\nvar empty = !r.responseBody || r.responseBody.trim() === \"\";\nif (!empty) {\n  return; // body present — nothing to do\n}\n\nvar url = cfg.get(\"alert_webhook_url\");\nif (!url) {\n  return;\n}\n\nhttp.post(url, JSON.stringify({\n  type: \"empty_response\",\n  reason: \"destination returned an empty body\",\n  status: r.responseStatus,\n  output: r.metadata[\"output_name\"],\n  destination: r.metadata[\"output_url\"]\n}), { headers: { \"Content-Type\": \"application/json\" } });\n",[2048],{"type":22,"tag":94,"props":2049,"children":2050},{"__ignoreMap":7},[2051,2059,2067,2074,2129,2149,2166,2173,2180,2215,2235,2246,2253,2260,2292,2309,2326,2334,2350,2367],{"type":22,"tag":190,"props":2052,"children":2053},{"class":192,"line":193},[2054],{"type":22,"tag":190,"props":2055,"children":2056},{"style":197},[2057],{"type":27,"value":2058},"// Response function — runs AFTER delivery.\n",{"type":22,"tag":190,"props":2060,"children":2061},{"class":192,"line":203},[2062],{"type":22,"tag":190,"props":2063,"children":2064},{"style":197},[2065],{"type":27,"value":2066},"// Alert if the destination returned an empty body.\n",{"type":22,"tag":190,"props":2068,"children":2069},{"class":192,"line":212},[2070],{"type":22,"tag":190,"props":2071,"children":2072},{"emptyLinePlaceholder":216},[2073],{"type":27,"value":219},{"type":22,"tag":190,"props":2075,"children":2076},{"class":192,"line":222},[2077,2081,2086,2090,2095,2100,2104,2109,2113,2117,2121,2125],{"type":22,"tag":190,"props":2078,"children":2079},{"style":226},[2080],{"type":27,"value":229},{"type":22,"tag":190,"props":2082,"children":2083},{"style":232},[2084],{"type":27,"value":2085}," empty ",{"type":22,"tag":190,"props":2087,"children":2088},{"style":226},[2089],{"type":27,"value":240},{"type":22,"tag":190,"props":2091,"children":2092},{"style":226},[2093],{"type":27,"value":2094}," !",{"type":22,"tag":190,"props":2096,"children":2097},{"style":232},[2098],{"type":27,"value":2099},"r.responseBody ",{"type":22,"tag":190,"props":2101,"children":2102},{"style":226},[2103],{"type":27,"value":304},{"type":22,"tag":190,"props":2105,"children":2106},{"style":232},[2107],{"type":27,"value":2108}," r.responseBody.",{"type":22,"tag":190,"props":2110,"children":2111},{"style":248},[2112],{"type":27,"value":314},{"type":22,"tag":190,"props":2114,"children":2115},{"style":232},[2116],{"type":27,"value":319},{"type":22,"tag":190,"props":2118,"children":2119},{"style":226},[2120],{"type":27,"value":324},{"type":22,"tag":190,"props":2122,"children":2123},{"style":259},[2124],{"type":27,"value":329},{"type":22,"tag":190,"props":2126,"children":2127},{"style":232},[2128],{"type":27,"value":523},{"type":22,"tag":190,"props":2130,"children":2131},{"class":192,"line":270},[2132,2136,2140,2144],{"type":22,"tag":190,"props":2133,"children":2134},{"style":226},[2135],{"type":27,"value":284},{"type":22,"tag":190,"props":2137,"children":2138},{"style":232},[2139],{"type":27,"value":289},{"type":22,"tag":190,"props":2141,"children":2142},{"style":226},[2143],{"type":27,"value":294},{"type":22,"tag":190,"props":2145,"children":2146},{"style":232},[2147],{"type":27,"value":2148},"empty) {\n",{"type":22,"tag":190,"props":2150,"children":2151},{"class":192,"line":278},[2152,2156,2161],{"type":22,"tag":190,"props":2153,"children":2154},{"style":226},[2155],{"type":27,"value":518},{"type":22,"tag":190,"props":2157,"children":2158},{"style":232},[2159],{"type":27,"value":2160},"; ",{"type":22,"tag":190,"props":2162,"children":2163},{"style":197},[2164],{"type":27,"value":2165},"// body present — nothing to do\n",{"type":22,"tag":190,"props":2167,"children":2168},{"class":192,"line":337},[2169],{"type":22,"tag":190,"props":2170,"children":2171},{"style":232},[2172],{"type":27,"value":532},{"type":22,"tag":190,"props":2174,"children":2175},{"class":192,"line":351},[2176],{"type":22,"tag":190,"props":2177,"children":2178},{"emptyLinePlaceholder":216},[2179],{"type":27,"value":219},{"type":22,"tag":190,"props":2181,"children":2182},{"class":192,"line":390},[2183,2187,2191,2195,2199,2203,2207,2211],{"type":22,"tag":190,"props":2184,"children":2185},{"style":226},[2186],{"type":27,"value":229},{"type":22,"tag":190,"props":2188,"children":2189},{"style":232},[2190],{"type":27,"value":235},{"type":22,"tag":190,"props":2192,"children":2193},{"style":226},[2194],{"type":27,"value":240},{"type":22,"tag":190,"props":2196,"children":2197},{"style":232},[2198],{"type":27,"value":245},{"type":22,"tag":190,"props":2200,"children":2201},{"style":248},[2202],{"type":27,"value":251},{"type":22,"tag":190,"props":2204,"children":2205},{"style":232},[2206],{"type":27,"value":256},{"type":22,"tag":190,"props":2208,"children":2209},{"style":259},[2210],{"type":27,"value":262},{"type":22,"tag":190,"props":2212,"children":2213},{"style":232},[2214],{"type":27,"value":267},{"type":22,"tag":190,"props":2216,"children":2217},{"class":192,"line":409},[2218,2222,2226,2230],{"type":22,"tag":190,"props":2219,"children":2220},{"style":226},[2221],{"type":27,"value":284},{"type":22,"tag":190,"props":2223,"children":2224},{"style":232},[2225],{"type":27,"value":289},{"type":22,"tag":190,"props":2227,"children":2228},{"style":226},[2229],{"type":27,"value":294},{"type":22,"tag":190,"props":2231,"children":2232},{"style":232},[2233],{"type":27,"value":2234},"url) {\n",{"type":22,"tag":190,"props":2236,"children":2237},{"class":192,"line":427},[2238,2242],{"type":22,"tag":190,"props":2239,"children":2240},{"style":226},[2241],{"type":27,"value":518},{"type":22,"tag":190,"props":2243,"children":2244},{"style":232},[2245],{"type":27,"value":523},{"type":22,"tag":190,"props":2247,"children":2248},{"class":192,"line":446},[2249],{"type":22,"tag":190,"props":2250,"children":2251},{"style":232},[2252],{"type":27,"value":532},{"type":22,"tag":190,"props":2254,"children":2255},{"class":192,"line":455},[2256],{"type":22,"tag":190,"props":2257,"children":2258},{"emptyLinePlaceholder":216},[2259],{"type":27,"value":219},{"type":22,"tag":190,"props":2261,"children":2262},{"class":192,"line":484},[2263,2268,2272,2276,2280,2284,2288],{"type":22,"tag":190,"props":2264,"children":2265},{"style":232},[2266],{"type":27,"value":2267},"http.",{"type":22,"tag":190,"props":2269,"children":2270},{"style":248},[2271],{"type":27,"value":362},{"type":22,"tag":190,"props":2273,"children":2274},{"style":232},[2275],{"type":27,"value":367},{"type":22,"tag":190,"props":2277,"children":2278},{"style":370},[2279],{"type":27,"value":373},{"type":22,"tag":190,"props":2281,"children":2282},{"style":232},[2283],{"type":27,"value":135},{"type":22,"tag":190,"props":2285,"children":2286},{"style":248},[2287],{"type":27,"value":382},{"type":22,"tag":190,"props":2289,"children":2290},{"style":232},[2291],{"type":27,"value":387},{"type":22,"tag":190,"props":2293,"children":2294},{"class":192,"line":493},[2295,2300,2305],{"type":22,"tag":190,"props":2296,"children":2297},{"style":232},[2298],{"type":27,"value":2299},"  type: ",{"type":22,"tag":190,"props":2301,"children":2302},{"style":259},[2303],{"type":27,"value":2304},"\"empty_response\"",{"type":22,"tag":190,"props":2306,"children":2307},{"style":232},[2308],{"type":27,"value":406},{"type":22,"tag":190,"props":2310,"children":2311},{"class":192,"line":512},[2312,2317,2322],{"type":22,"tag":190,"props":2313,"children":2314},{"style":232},[2315],{"type":27,"value":2316},"  reason: ",{"type":22,"tag":190,"props":2318,"children":2319},{"style":259},[2320],{"type":27,"value":2321},"\"destination returned an empty body\"",{"type":22,"tag":190,"props":2323,"children":2324},{"style":232},[2325],{"type":27,"value":406},{"type":22,"tag":190,"props":2327,"children":2328},{"class":192,"line":526},[2329],{"type":22,"tag":190,"props":2330,"children":2331},{"style":232},[2332],{"type":27,"value":2333},"  status: r.responseStatus,\n",{"type":22,"tag":190,"props":2335,"children":2336},{"class":192,"line":535},[2337,2342,2346],{"type":22,"tag":190,"props":2338,"children":2339},{"style":232},[2340],{"type":27,"value":2341},"  output: r.metadata[",{"type":22,"tag":190,"props":2343,"children":2344},{"style":259},[2345],{"type":27,"value":438},{"type":22,"tag":190,"props":2347,"children":2348},{"style":232},[2349],{"type":27,"value":443},{"type":22,"tag":190,"props":2351,"children":2352},{"class":192,"line":543},[2353,2358,2363],{"type":22,"tag":190,"props":2354,"children":2355},{"style":232},[2356],{"type":27,"value":2357},"  destination: r.metadata[",{"type":22,"tag":190,"props":2359,"children":2360},{"style":259},[2361],{"type":27,"value":2362},"\"output_url\"",{"type":22,"tag":190,"props":2364,"children":2365},{"style":232},[2366],{"type":27,"value":961},{"type":22,"tag":190,"props":2368,"children":2369},{"class":192,"line":556},[2370,2375,2379,2383,2387],{"type":22,"tag":190,"props":2371,"children":2372},{"style":232},[2373],{"type":27,"value":2374},"}), { headers: { ",{"type":22,"tag":190,"props":2376,"children":2377},{"style":259},[2378],{"type":27,"value":466},{"type":22,"tag":190,"props":2380,"children":2381},{"style":232},[2382],{"type":27,"value":471},{"type":22,"tag":190,"props":2384,"children":2385},{"style":259},[2386],{"type":27,"value":476},{"type":22,"tag":190,"props":2388,"children":2389},{"style":232},[2390],{"type":27,"value":481},{"type":22,"tag":176,"props":2392,"children":2393},{"v-slot:lua":7},[2394],{"type":22,"tag":180,"props":2395,"children":2397},{"className":1052,"code":2396,"language":1054,"meta":7,"style":7},"-- Response function — runs AFTER delivery.\n-- Alert if the destination returned an empty body.\n\nlocal http = require(\"http\")\nlocal json = require(\"json\")\n\nlocal empty = r.ResponseBody == nil or r.ResponseBody == \"\"\nif not empty then\n  return -- body present — nothing to do\nend\n\nlocal url = cfg:GetValue(\"alert_webhook_url\")\nif url == \"\" then\n  return\nend\n\nlocal payload, err = json.encode({\n  type = \"empty_response\",\n  reason = \"destination returned an empty body\",\n  status = r.ResponseStatus,\n  output = r.metadata[\"output_name\"] or \"\",\n  destination = r.metadata[\"output_url\"] or \"\"\n})\nif err then error(err) end\n\nhttp.request(\"POST\", url, {\n  headers = { [\"Content-Type\"] = \"application/json\" },\n  body = payload\n})\n",[2398],{"type":22,"tag":94,"props":2399,"children":2400},{"__ignoreMap":7},[2401,2409,2417,2424,2455,2486,2493,2545,2565,2577,2584,2591,2630,2653,2660,2667,2674,2701,2722,2743,2768,2812,2852,2860,2887,2894,2917,2953,2969],{"type":22,"tag":190,"props":2402,"children":2403},{"class":192,"line":193},[2404],{"type":22,"tag":190,"props":2405,"children":2406},{"style":197},[2407],{"type":27,"value":2408},"-- Response function — runs AFTER delivery.\n",{"type":22,"tag":190,"props":2410,"children":2411},{"class":192,"line":203},[2412],{"type":22,"tag":190,"props":2413,"children":2414},{"style":197},[2415],{"type":27,"value":2416},"-- Alert if the destination returned an empty body.\n",{"type":22,"tag":190,"props":2418,"children":2419},{"class":192,"line":212},[2420],{"type":22,"tag":190,"props":2421,"children":2422},{"emptyLinePlaceholder":216},[2423],{"type":27,"value":219},{"type":22,"tag":190,"props":2425,"children":2426},{"class":192,"line":222},[2427,2431,2435,2439,2443,2447,2451],{"type":22,"tag":190,"props":2428,"children":2429},{"style":226},[2430],{"type":27,"value":1089},{"type":22,"tag":190,"props":2432,"children":2433},{"style":232},[2434],{"type":27,"value":1094},{"type":22,"tag":190,"props":2436,"children":2437},{"style":226},[2438],{"type":27,"value":240},{"type":22,"tag":190,"props":2440,"children":2441},{"style":370},[2442],{"type":27,"value":1103},{"type":22,"tag":190,"props":2444,"children":2445},{"style":232},[2446],{"type":27,"value":256},{"type":22,"tag":190,"props":2448,"children":2449},{"style":259},[2450],{"type":27,"value":1112},{"type":22,"tag":190,"props":2452,"children":2453},{"style":232},[2454],{"type":27,"value":1117},{"type":22,"tag":190,"props":2456,"children":2457},{"class":192,"line":270},[2458,2462,2466,2470,2474,2478,2482],{"type":22,"tag":190,"props":2459,"children":2460},{"style":226},[2461],{"type":27,"value":1089},{"type":22,"tag":190,"props":2463,"children":2464},{"style":232},[2465],{"type":27,"value":1129},{"type":22,"tag":190,"props":2467,"children":2468},{"style":226},[2469],{"type":27,"value":240},{"type":22,"tag":190,"props":2471,"children":2472},{"style":370},[2473],{"type":27,"value":1103},{"type":22,"tag":190,"props":2475,"children":2476},{"style":232},[2477],{"type":27,"value":256},{"type":22,"tag":190,"props":2479,"children":2480},{"style":259},[2481],{"type":27,"value":1146},{"type":22,"tag":190,"props":2483,"children":2484},{"style":232},[2485],{"type":27,"value":1117},{"type":22,"tag":190,"props":2487,"children":2488},{"class":192,"line":278},[2489],{"type":22,"tag":190,"props":2490,"children":2491},{"emptyLinePlaceholder":216},[2492],{"type":27,"value":219},{"type":22,"tag":190,"props":2494,"children":2495},{"class":192,"line":337},[2496,2500,2504,2508,2512,2517,2521,2525,2529,2533,2537,2541],{"type":22,"tag":190,"props":2497,"children":2498},{"style":226},[2499],{"type":27,"value":1089},{"type":22,"tag":190,"props":2501,"children":2502},{"style":232},[2503],{"type":27,"value":2085},{"type":22,"tag":190,"props":2505,"children":2506},{"style":226},[2507],{"type":27,"value":240},{"type":22,"tag":190,"props":2509,"children":2510},{"style":232},[2511],{"type":27,"value":1339},{"type":22,"tag":190,"props":2513,"children":2514},{"style":248},[2515],{"type":27,"value":2516},"ResponseBody",{"type":22,"tag":190,"props":2518,"children":2519},{"style":226},[2520],{"type":27,"value":1672},{"type":22,"tag":190,"props":2522,"children":2523},{"style":370},[2524],{"type":27,"value":1677},{"type":22,"tag":190,"props":2526,"children":2527},{"style":226},[2528],{"type":27,"value":1397},{"type":22,"tag":190,"props":2530,"children":2531},{"style":232},[2532],{"type":27,"value":1339},{"type":22,"tag":190,"props":2534,"children":2535},{"style":248},[2536],{"type":27,"value":2516},{"type":22,"tag":190,"props":2538,"children":2539},{"style":226},[2540],{"type":27,"value":1672},{"type":22,"tag":190,"props":2542,"children":2543},{"style":259},[2544],{"type":27,"value":1402},{"type":22,"tag":190,"props":2546,"children":2547},{"class":192,"line":351},[2548,2552,2557,2561],{"type":22,"tag":190,"props":2549,"children":2550},{"style":226},[2551],{"type":27,"value":284},{"type":22,"tag":190,"props":2553,"children":2554},{"style":226},[2555],{"type":27,"value":2556}," not",{"type":22,"tag":190,"props":2558,"children":2559},{"style":232},[2560],{"type":27,"value":2085},{"type":22,"tag":190,"props":2562,"children":2563},{"style":226},[2564],{"type":27,"value":1426},{"type":22,"tag":190,"props":2566,"children":2567},{"class":192,"line":390},[2568,2572],{"type":22,"tag":190,"props":2569,"children":2570},{"style":226},[2571],{"type":27,"value":518},{"type":22,"tag":190,"props":2573,"children":2574},{"style":197},[2575],{"type":27,"value":2576}," -- body present — nothing to do\n",{"type":22,"tag":190,"props":2578,"children":2579},{"class":192,"line":409},[2580],{"type":22,"tag":190,"props":2581,"children":2582},{"style":226},[2583],{"type":27,"value":1478},{"type":22,"tag":190,"props":2585,"children":2586},{"class":192,"line":427},[2587],{"type":22,"tag":190,"props":2588,"children":2589},{"emptyLinePlaceholder":216},[2590],{"type":27,"value":219},{"type":22,"tag":190,"props":2592,"children":2593},{"class":192,"line":446},[2594,2598,2602,2606,2610,2614,2618,2622,2626],{"type":22,"tag":190,"props":2595,"children":2596},{"style":226},[2597],{"type":27,"value":1089},{"type":22,"tag":190,"props":2599,"children":2600},{"style":232},[2601],{"type":27,"value":235},{"type":22,"tag":190,"props":2603,"children":2604},{"style":226},[2605],{"type":27,"value":240},{"type":22,"tag":190,"props":2607,"children":2608},{"style":248},[2609],{"type":27,"value":1177},{"type":22,"tag":190,"props":2611,"children":2612},{"style":232},[2613],{"type":27,"value":1182},{"type":22,"tag":190,"props":2615,"children":2616},{"style":370},[2617],{"type":27,"value":1187},{"type":22,"tag":190,"props":2619,"children":2620},{"style":232},[2621],{"type":27,"value":256},{"type":22,"tag":190,"props":2623,"children":2624},{"style":259},[2625],{"type":27,"value":262},{"type":22,"tag":190,"props":2627,"children":2628},{"style":232},[2629],{"type":27,"value":1117},{"type":22,"tag":190,"props":2631,"children":2632},{"class":192,"line":455},[2633,2637,2641,2645,2649],{"type":22,"tag":190,"props":2634,"children":2635},{"style":226},[2636],{"type":27,"value":284},{"type":22,"tag":190,"props":2638,"children":2639},{"style":232},[2640],{"type":27,"value":235},{"type":22,"tag":190,"props":2642,"children":2643},{"style":226},[2644],{"type":27,"value":858},{"type":22,"tag":190,"props":2646,"children":2647},{"style":259},[2648],{"type":27,"value":1248},{"type":22,"tag":190,"props":2650,"children":2651},{"style":226},[2652],{"type":27,"value":1426},{"type":22,"tag":190,"props":2654,"children":2655},{"class":192,"line":484},[2656],{"type":22,"tag":190,"props":2657,"children":2658},{"style":226},[2659],{"type":27,"value":1751},{"type":22,"tag":190,"props":2661,"children":2662},{"class":192,"line":493},[2663],{"type":22,"tag":190,"props":2664,"children":2665},{"style":226},[2666],{"type":27,"value":1478},{"type":22,"tag":190,"props":2668,"children":2669},{"class":192,"line":512},[2670],{"type":22,"tag":190,"props":2671,"children":2672},{"emptyLinePlaceholder":216},[2673],{"type":27,"value":219},{"type":22,"tag":190,"props":2675,"children":2676},{"class":192,"line":526},[2677,2681,2685,2689,2693,2697],{"type":22,"tag":190,"props":2678,"children":2679},{"style":226},[2680],{"type":27,"value":1089},{"type":22,"tag":190,"props":2682,"children":2683},{"style":232},[2684],{"type":27,"value":1498},{"type":22,"tag":190,"props":2686,"children":2687},{"style":226},[2688],{"type":27,"value":240},{"type":22,"tag":190,"props":2690,"children":2691},{"style":232},[2692],{"type":27,"value":1507},{"type":22,"tag":190,"props":2694,"children":2695},{"style":370},[2696],{"type":27,"value":1512},{"type":22,"tag":190,"props":2698,"children":2699},{"style":232},[2700],{"type":27,"value":387},{"type":22,"tag":190,"props":2702,"children":2703},{"class":192,"line":535},[2704,2709,2713,2718],{"type":22,"tag":190,"props":2705,"children":2706},{"style":232},[2707],{"type":27,"value":2708},"  type ",{"type":22,"tag":190,"props":2710,"children":2711},{"style":226},[2712],{"type":27,"value":240},{"type":22,"tag":190,"props":2714,"children":2715},{"style":259},[2716],{"type":27,"value":2717}," \"empty_response\"",{"type":22,"tag":190,"props":2719,"children":2720},{"style":232},[2721],{"type":27,"value":406},{"type":22,"tag":190,"props":2723,"children":2724},{"class":192,"line":543},[2725,2730,2734,2739],{"type":22,"tag":190,"props":2726,"children":2727},{"style":232},[2728],{"type":27,"value":2729},"  reason ",{"type":22,"tag":190,"props":2731,"children":2732},{"style":226},[2733],{"type":27,"value":240},{"type":22,"tag":190,"props":2735,"children":2736},{"style":259},[2737],{"type":27,"value":2738}," \"destination returned an empty body\"",{"type":22,"tag":190,"props":2740,"children":2741},{"style":232},[2742],{"type":27,"value":406},{"type":22,"tag":190,"props":2744,"children":2745},{"class":192,"line":556},[2746,2751,2755,2759,2764],{"type":22,"tag":190,"props":2747,"children":2748},{"style":232},[2749],{"type":27,"value":2750},"  status ",{"type":22,"tag":190,"props":2752,"children":2753},{"style":226},[2754],{"type":27,"value":240},{"type":22,"tag":190,"props":2756,"children":2757},{"style":232},[2758],{"type":27,"value":1339},{"type":22,"tag":190,"props":2760,"children":2761},{"style":248},[2762],{"type":27,"value":2763},"ResponseStatus",{"type":22,"tag":190,"props":2765,"children":2766},{"style":232},[2767],{"type":27,"value":406},{"type":22,"tag":190,"props":2769,"children":2770},{"class":192,"line":570},[2771,2776,2780,2784,2788,2792,2796,2800,2804,2808],{"type":22,"tag":190,"props":2772,"children":2773},{"style":232},[2774],{"type":27,"value":2775},"  output ",{"type":22,"tag":190,"props":2777,"children":2778},{"style":226},[2779],{"type":27,"value":240},{"type":22,"tag":190,"props":2781,"children":2782},{"style":232},[2783],{"type":27,"value":1339},{"type":22,"tag":190,"props":2785,"children":2786},{"style":248},[2787],{"type":27,"value":1344},{"type":22,"tag":190,"props":2789,"children":2790},{"style":232},[2791],{"type":27,"value":1349},{"type":22,"tag":190,"props":2793,"children":2794},{"style":259},[2795],{"type":27,"value":438},{"type":22,"tag":190,"props":2797,"children":2798},{"style":232},[2799],{"type":27,"value":1358},{"type":22,"tag":190,"props":2801,"children":2802},{"style":226},[2803],{"type":27,"value":1363},{"type":22,"tag":190,"props":2805,"children":2806},{"style":259},[2807],{"type":27,"value":329},{"type":22,"tag":190,"props":2809,"children":2810},{"style":232},[2811],{"type":27,"value":406},{"type":22,"tag":190,"props":2813,"children":2814},{"class":192,"line":602},[2815,2820,2824,2828,2832,2836,2840,2844,2848],{"type":22,"tag":190,"props":2816,"children":2817},{"style":232},[2818],{"type":27,"value":2819},"  destination ",{"type":22,"tag":190,"props":2821,"children":2822},{"style":226},[2823],{"type":27,"value":240},{"type":22,"tag":190,"props":2825,"children":2826},{"style":232},[2827],{"type":27,"value":1339},{"type":22,"tag":190,"props":2829,"children":2830},{"style":248},[2831],{"type":27,"value":1344},{"type":22,"tag":190,"props":2833,"children":2834},{"style":232},[2835],{"type":27,"value":1349},{"type":22,"tag":190,"props":2837,"children":2838},{"style":259},[2839],{"type":27,"value":2362},{"type":22,"tag":190,"props":2841,"children":2842},{"style":232},[2843],{"type":27,"value":1358},{"type":22,"tag":190,"props":2845,"children":2846},{"style":226},[2847],{"type":27,"value":1363},{"type":22,"tag":190,"props":2849,"children":2850},{"style":259},[2851],{"type":27,"value":1402},{"type":22,"tag":190,"props":2853,"children":2854},{"class":192,"line":621},[2855],{"type":22,"tag":190,"props":2856,"children":2857},{"style":232},[2858],{"type":27,"value":2859},"})\n",{"type":22,"tag":190,"props":2861,"children":2862},{"class":192,"line":633},[2863,2867,2871,2875,2879,2883],{"type":22,"tag":190,"props":2864,"children":2865},{"style":226},[2866],{"type":27,"value":284},{"type":22,"tag":190,"props":2868,"children":2869},{"style":232},[2870],{"type":27,"value":1529},{"type":22,"tag":190,"props":2872,"children":2873},{"style":226},[2874],{"type":27,"value":1253},{"type":22,"tag":190,"props":2876,"children":2877},{"style":370},[2878],{"type":27,"value":1538},{"type":22,"tag":190,"props":2880,"children":2881},{"style":232},[2882],{"type":27,"value":1543},{"type":22,"tag":190,"props":2884,"children":2885},{"style":226},[2886],{"type":27,"value":1478},{"type":22,"tag":190,"props":2888,"children":2889},{"class":192,"line":665},[2890],{"type":22,"tag":190,"props":2891,"children":2892},{"emptyLinePlaceholder":216},[2893],{"type":27,"value":219},{"type":22,"tag":190,"props":2895,"children":2896},{"class":192,"line":681},[2897,2901,2905,2909,2913],{"type":22,"tag":190,"props":2898,"children":2899},{"style":232},[2900],{"type":27,"value":2267},{"type":22,"tag":190,"props":2902,"children":2903},{"style":370},[2904],{"type":27,"value":152},{"type":22,"tag":190,"props":2906,"children":2907},{"style":232},[2908],{"type":27,"value":256},{"type":22,"tag":190,"props":2910,"children":2911},{"style":259},[2912],{"type":27,"value":1568},{"type":22,"tag":190,"props":2914,"children":2915},{"style":232},[2916],{"type":27,"value":1573},{"type":22,"tag":190,"props":2918,"children":2919},{"class":192,"line":698},[2920,2925,2929,2933,2937,2941,2945,2949],{"type":22,"tag":190,"props":2921,"children":2922},{"style":232},[2923],{"type":27,"value":2924},"  headers ",{"type":22,"tag":190,"props":2926,"children":2927},{"style":226},[2928],{"type":27,"value":240},{"type":22,"tag":190,"props":2930,"children":2931},{"style":232},[2932],{"type":27,"value":1590},{"type":22,"tag":190,"props":2934,"children":2935},{"style":259},[2936],{"type":27,"value":466},{"type":22,"tag":190,"props":2938,"children":2939},{"style":232},[2940],{"type":27,"value":1358},{"type":22,"tag":190,"props":2942,"children":2943},{"style":226},[2944],{"type":27,"value":240},{"type":22,"tag":190,"props":2946,"children":2947},{"style":259},[2948],{"type":27,"value":1607},{"type":22,"tag":190,"props":2950,"children":2951},{"style":232},[2952],{"type":27,"value":1612},{"type":22,"tag":190,"props":2954,"children":2955},{"class":192,"line":717},[2956,2961,2965],{"type":22,"tag":190,"props":2957,"children":2958},{"style":232},[2959],{"type":27,"value":2960},"  body ",{"type":22,"tag":190,"props":2962,"children":2963},{"style":226},[2964],{"type":27,"value":240},{"type":22,"tag":190,"props":2966,"children":2967},{"style":232},[2968],{"type":27,"value":1629},{"type":22,"tag":190,"props":2970,"children":2971},{"class":192,"line":733},[2972],{"type":22,"tag":190,"props":2973,"children":2974},{"style":232},[2975],{"type":27,"value":2859},{"type":22,"tag":23,"props":2977,"children":2978},{},[2979,2981,2987,2989,2995,2997,3001,3003,3009],{"type":27,"value":2980},"You can combine this with a status check (",{"type":22,"tag":94,"props":2982,"children":2984},{"className":2983},[],[2985],{"type":27,"value":2986},"r.responseStatus === 0",{"type":27,"value":2988}," or ",{"type":22,"tag":94,"props":2990,"children":2992},{"className":2991},[],[2993],{"type":27,"value":2994},">= 400",{"type":27,"value":2996},") if you also want alerts on timeouts and HTTP errors. See ",{"type":22,"tag":103,"props":2998,"children":2999},{"href":130},[3000],{"type":27,"value":133},{"type":27,"value":3002}," for failure-status examples and for rewriting the recorded response when a ",{"type":22,"tag":94,"props":3004,"children":3006},{"className":3005},[],[3007],{"type":27,"value":3008},"200",{"type":27,"value":3010}," should count as failed.",{"type":22,"tag":137,"props":3012,"children":3014},{"id":3013},"setup-checklist",[3015],{"type":27,"value":3016},"Setup checklist",{"type":22,"tag":50,"props":3018,"children":3019},{},[3020,3039,3051],{"type":22,"tag":54,"props":3021,"children":3022},{},[3023,3025,3030,3032,3037],{"type":27,"value":3024},"Create a function in the dashboard (use the ",{"type":22,"tag":30,"props":3026,"children":3027},{},[3028],{"type":27,"value":3029},"REQUEST",{"type":27,"value":3031}," tab for example 1, ",{"type":22,"tag":30,"props":3033,"children":3034},{},[3035],{"type":27,"value":3036},"RESPONSE",{"type":27,"value":3038}," tab for example 2).",{"type":22,"tag":54,"props":3040,"children":3041},{},[3042,3044,3049],{"type":27,"value":3043},"Add a config variable ",{"type":22,"tag":94,"props":3045,"children":3047},{"className":3046},[],[3048],{"type":27,"value":99},{"type":27,"value":3050}," pointing at your Slack incoming webhook, PagerDuty, Discord, or any HTTP endpoint that accepts POST JSON.",{"type":22,"tag":54,"props":3052,"children":3053},{},[3054,3056],{"type":27,"value":3055},"Attach the function to an output:\n",{"type":22,"tag":3057,"props":3058,"children":3059},"ul",{},[3060,3073],{"type":22,"tag":54,"props":3061,"children":3062},{},[3063,3065,3071],{"type":27,"value":3064},"Request function → ",{"type":22,"tag":94,"props":3066,"children":3068},{"className":3067},[],[3069],{"type":27,"value":3070},"function_id",{"type":27,"value":3072}," (before delivery)",{"type":22,"tag":54,"props":3074,"children":3075},{},[3076,3078,3084],{"type":27,"value":3077},"Response function → ",{"type":22,"tag":94,"props":3079,"children":3081},{"className":3080},[],[3082],{"type":27,"value":3083},"response_function_id",{"type":27,"value":3085}," (after delivery)",{"type":22,"tag":137,"props":3087,"children":3089},{"id":3088},"related",[3090],{"type":27,"value":3091},"Related",{"type":22,"tag":3057,"props":3093,"children":3094},{},[3095,3128,3154,3163],{"type":22,"tag":54,"props":3096,"children":3097},{},[3098,3104,3106,3111,3113,3119,3120,3126],{"type":22,"tag":103,"props":3099,"children":3101},{"href":3100},"/docs/webhooks/functions/modify-request",[3102],{"type":27,"value":3103},"Read, write request data",{"type":27,"value":3105}," — ",{"type":22,"tag":94,"props":3107,"children":3109},{"className":3108},[],[3110],{"type":27,"value":160},{"type":27,"value":3112},", ",{"type":22,"tag":94,"props":3114,"children":3116},{"className":3115},[],[3117],{"type":27,"value":3118},"r.setBody",{"type":27,"value":3112},{"type":22,"tag":94,"props":3121,"children":3123},{"className":3122},[],[3124],{"type":27,"value":3125},"r.stopForwarding",{"type":27,"value":3127},", config variables.",{"type":22,"tag":54,"props":3129,"children":3130},{},[3131,3137,3138,3144,3146,3152],{"type":22,"tag":103,"props":3132,"children":3134},{"href":3133},"/docs/webhooks/functions/make-http-request",[3135],{"type":27,"value":3136},"Make HTTP requests",{"type":27,"value":3105},{"type":22,"tag":94,"props":3139,"children":3141},{"className":3140},[],[3142],{"type":27,"value":3143},"http.post",{"type":27,"value":3145}," / ",{"type":22,"tag":94,"props":3147,"children":3149},{"className":3148},[],[3150],{"type":27,"value":3151},"http.request",{"type":27,"value":3153}," used to send the alert.",{"type":22,"tag":54,"props":3155,"children":3156},{},[3157,3161],{"type":22,"tag":103,"props":3158,"children":3159},{"href":130},[3160],{"type":27,"value":133},{"type":27,"value":3162}," — full response API, empty-200 handling, flagging the recorded response.",{"type":22,"tag":54,"props":3164,"children":3165},{},[3166,3172,3173,3179,3180,3186],{"type":22,"tag":103,"props":3167,"children":3169},{"href":3168},"/docs/webhooks/functions/accessing-metadata",[3170],{"type":27,"value":3171},"Accessing metadata",{"type":27,"value":3105},{"type":22,"tag":94,"props":3174,"children":3176},{"className":3175},[],[3177],{"type":27,"value":3178},"output_name",{"type":27,"value":3112},{"type":22,"tag":94,"props":3181,"children":3183},{"className":3182},[],[3184],{"type":27,"value":3185},"output_url",{"type":27,"value":3187},", and other fields useful in alerts.",{"type":22,"tag":3189,"props":3190,"children":3191},"style",{},[3192],{"type":27,"value":3193},"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":212,"depth":212,"links":3195},[3196,3197,3198,3199],{"id":139,"depth":203,"text":142},{"id":2016,"depth":203,"text":2019},{"id":3013,"depth":203,"text":3016},{"id":3088,"depth":203,"text":3091},"markdown","content:docs:webhooks:functions:14.alerting.md","content","docs/webhooks/functions/14.alerting.md","docs/webhooks/functions/14.alerting","md",{"loc":4},[3208,3211,3214,3217,3220,3223,3226,3229],{"_path":3209,"title":3210},"/docs/installation/cli","CLI",{"_path":3212,"title":3213},"/docs/installation/docker","Docker container",{"_path":3215,"title":3216},"/docs/installation/docker-compose","Docker Compose",{"_path":3218,"title":3219},"/docs/installation/kubernetes","Kubernetes",{"_path":3221,"title":3222},"/docs/installation/autostart-windows","Autostart (Windows)",{"_path":3224,"title":3225},"/docs/installation/autostart-linux","Autostart (Linux)",{"_path":3227,"title":3228},"/docs/installation/autostart-macos","Autostart (MacOS)",{"_path":3230,"title":3231},"/docs/installation/behind-proxy","HTTP proxy configuration",[3233],{"_path":3234,"title":3235},"/docs/webhooks/internal/localhost","Receiving webhooks on localhost",[3237,3240,3243,3246],{"_path":3238,"title":3239},"/docs/webhooks/auth/username-password","Username and password",{"_path":3241,"title":3242},"/docs/webhooks/auth/hmac","HMAC",{"_path":3244,"title":3245},"/docs/webhooks/auth/jwt","JWT authentication",{"_path":3247,"title":3248},"/docs/webhooks/auth/http-method","Auth using request method",[3250,3253],{"_path":3251,"title":3252},"/docs/webhooks/public/public-destination","Forward to public URL",{"_path":3254,"title":3255},"/docs/webhooks/public/multiple-destination-urls","Multiple destinations",[3257],{"_path":3258,"title":3259},"/docs/webhooks/cron/using-cron-webhooks","Schedule recurring webhooks",[3261,3264,3267,3270,3273,3276,3279],{"_path":3262,"title":3263},"/docs/service-connections","Service Connections",{"_path":3265,"title":3266},"/docs/service-connections/aws_s3","AWS S3",{"_path":3268,"title":3269},"/docs/service-connections/aws_sns","AWS SNS",{"_path":3271,"title":3272},"/docs/service-connections/aws_sqs","AWS SQS",{"_path":3274,"title":3275},"/docs/service-connections/azure","Azure",{"_path":3277,"title":3278},"/docs/service-connections/gcp_gcs","GCP Cloud Storage",{"_path":3280,"title":3281},"/docs/service-connections/gcp_pubsub","GCP Pub/Sub",[3283,3286,3289,3292],{"_path":3284,"title":3285},"/docs/email","Receive emails as webhooks",{"_path":3287,"title":3288},"/docs/email/payload","Email webhook payload",{"_path":3290,"title":3291},"/docs/email/filtering-and-policy","Sender filtering & policy",{"_path":3293,"title":3294},"/docs/email/cli","Create & poll email addresses from the CLI",[3296,3299,3302,3305],{"_path":3297,"title":3298},"/docs/account/account-management","Account management",{"_path":3300,"title":3301},"/docs/account/mfa","Multi-factor authentication (MFA)",{"_path":3303,"title":3304},"/docs/account/team","Teams and sub-accounts",{"_path":3306,"title":3307},"/docs/account/billing-and-subscriptions","Billing & subscriptions",[3309,3312],{"_path":3310,"title":3311},"/docs/tunnels/demoing-your-website","Demoing your website",{"_path":3313,"title":3314},"/docs/tunnels/regions","Regions",[3316,3319,3322,3325,3328,3331,3334],{"_path":3317,"title":3318},"/docs/tutorials/cicd/jenkins-bitbucket","Jenkins and Bitbucket",{"_path":3320,"title":3321},"/docs/tutorials/cicd/jenkins-github","Jenkins and GitHub",{"_path":3323,"title":3324},"/docs/tutorials/cicd/jenkins-plugin","Jenkins Plugin",{"_path":3326,"title":3327},"/docs/tutorials/cicd/jenkins-plugin-multibranch","Jenkins Multibranch Pipelines",{"_path":3329,"title":3330},"/docs/tutorials/cicd/kubernetes-operator","Kubernetes Operator",{"_path":3332,"title":3333},"/docs/tutorials/cicd/terraform-atlantis","Terraform Atlantis",{"_path":3335,"title":3336},"/docs/tutorials/cicd/webhook-exec","Execute scripts on webhook",[3338,3341,3344],{"_path":3339,"title":3340},"/docs/tutorials/n8n/email-trigger","n8n Email Trigger (Inbound Email)",{"_path":3342,"title":3343},"/docs/tutorials/n8n/webhook-trigger","n8n Webhook Trigger (No Public IP)",{"_path":3345,"title":3346},"/docs/tutorials/n8n/whatsapp-cloud-api-webhook","n8n WhatsApp Cloud API Webhook Setup",[3348,3351,3354,3357,3360,3363,3366,3369],{"_path":3349,"title":3350},"/docs/tutorials/email/airtable","Email to Airtable",{"_path":3352,"title":3353},"/docs/tutorials/email/api","Email to API",{"_path":3355,"title":3356},"/docs/tutorials/email/database","Email to Database",{"_path":3358,"title":3359},"/docs/tutorials/email/discord","Email to Discord",{"_path":3361,"title":3362},"/docs/tutorials/email/google-sheets","Email to Google Sheets",{"_path":3364,"title":3365},"/docs/tutorials/email/microsoft-teams","Email to Microsoft Teams",{"_path":3367,"title":3368},"/docs/tutorials/email/notion","Email to Notion",{"_path":3370,"title":3371},"/docs/tutorials/email/slack","Email to Slack",[3373],{"_path":3374,"title":3375},"/docs/tutorials/warehouse/bigquery","GCP BigQuery",[3377,3380,3383],{"_path":3378,"title":3379},"/docs/tutorials/edge/home-assistant","Home Assistant",{"_path":3381,"title":3382},"/docs/tutorials/edge/javascript-app","JavaScript app",{"_path":3384,"title":3385},"/docs/tutorials/edge/node-red","Node-RED",[3387,3390],{"_path":3388,"title":3389},"/docs/tutorials/transform/docker-to-slack","DockerHub webhook to Slack notification",{"_path":3391,"title":3392},"/docs/tutorials/transform/enrich-webhooks","Enrich webhooks from APIs",[3394,3397,3399,3400,3403,3406,3409,3412,3415,3418,3420,3421,3422,3423],{"_path":3395,"title":3396},"/docs/webhooks/functions/manipulating-json","JSON encoding",{"_path":3133,"title":3398},"Make HTTP request",{"_path":3100,"title":3103},{"_path":3401,"title":3402},"/docs/webhooks/functions/multipart-form-data","Multipart form to JSON",{"_path":3404,"title":3405},"/docs/webhooks/functions/url-encoded-data","URL Encoded Form",{"_path":3407,"title":3408},"/docs/webhooks/functions/working-with-time","Working with time",{"_path":3410,"title":3411},"/docs/webhooks/functions/send-emails","Sending emails",{"_path":3413,"title":3414},"/docs/webhooks/functions/crypto-functions","Base64, encryption",{"_path":3416,"title":3417},"/docs/webhooks/functions/integrate-into-cicd","Integrating into CI/CD",{"_path":3419,"title":3375},"/docs/webhooks/functions/big-query",{"_path":3168,"title":3171},{"_path":130,"title":133},{"_path":4,"title":8},{"_path":3424,"title":15},"/docs/webhooks/functions",1786379812539]