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