[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-en-\u002Fen\u002Fdocs\u002Fapi\u002Fwebhooks":3},{"id":4,"title":5,"body":6,"category":342,"code_examples":1307,"demos":1307,"description":1308,"extension":1309,"meta":1310,"navigation":1307,"order":100,"path":1311,"seo":1312,"sitemap":1315,"stem":1317,"tags":1318,"toc":681,"videos":1307,"__hash__":1322},"docsEn\u002Fen\u002Fdocs\u002Fapi\u002Fwebhooks.md","Webhooks - Real-time Events and Signature Verification",{"type":7,"value":8,"toc":1292},"minimark",[9,14,18,23,26,51,55,58,70,73,80,352,357,535,539,542,564,567,632,641,645,648,1193,1197,1200,1219,1223,1230,1245,1249,1263,1267,1288],[10,11,13],"h1",{"id":12},"webhooks","Webhooks",[15,16,17],"p",{},"Konektor webhooks are sent asynchronously when lead changes occur. Delivery uses queue-based dispatch, so you should assume at-least-once delivery semantics.",[19,20,22],"h2",{"id":21},"webhook-headers","Webhook Headers",[15,24,25],{},"Each webhook request includes:",[27,28,29,36,41,46],"ol",{},[30,31,32],"li",{},[33,34,35],"code",{},"Content-Type: application\u002Fjson",[30,37,38],{},[33,39,40],{},"X-Konektor-Signature: t=\u003Cunix_timestamp>,v1=\u003Chex_hmac_sha256>",[30,42,43],{},[33,44,45],{},"X-Konektor-Event: \u003Cevent_name>",[30,47,48],{},[33,49,50],{},"User-Agent: Konektor-Webhook\u002F1.0",[19,52,54],{"id":53},"emitted-events","Emitted Events",[15,56,57],{},"Lead flow currently emits:",[27,59,60,65],{},[30,61,62],{},[33,63,64],{},"lead.created",[30,66,67],{},[33,68,69],{},"lead.updated",[15,71,72],{},"The HTTP body contains the event payload directly, without an extra wrapper.",[74,75,77,79],"h3",{"id":76},"leadcreated-example",[33,78,64],{}," Example",[81,82,87],"pre",{"className":83,"code":84,"language":85,"meta":86,"style":86},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"lead\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"uniqueCode\": \"API_1A2B3C4D\",\n    \"externalRef\": \"crm-001\",\n    \"firstName\": \"John\",\n    \"email\": \"john@example.com\",\n    \"phone\": \"6281234567890\",\n    \"status\": \"new\",\n    \"priority\": \"medium\",\n    \"city\": null,\n    \"country\": null\n  },\n  \"source\": \"api\"\n}\n","json","",[33,88,89,98,117,143,164,185,206,227,248,269,290,305,320,326,346],{"__ignoreMap":86},[90,91,94],"span",{"class":92,"line":93},"line",1,[90,95,97],{"class":96},"sMK4o","{\n",[90,99,101,104,108,111,114],{"class":92,"line":100},2,[90,102,103],{"class":96},"  \"",[90,105,107],{"class":106},"spNyl","lead",[90,109,110],{"class":96},"\"",[90,112,113],{"class":96},":",[90,115,116],{"class":96}," {\n",[90,118,120,123,127,129,131,134,138,140],{"class":92,"line":119},3,[90,121,122],{"class":96},"    \"",[90,124,126],{"class":125},"sBMFI","id",[90,128,110],{"class":96},[90,130,113],{"class":96},[90,132,133],{"class":96}," \"",[90,135,137],{"class":136},"sfazB","550e8400-e29b-41d4-a716-446655440000",[90,139,110],{"class":96},[90,141,142],{"class":96},",\n",[90,144,146,148,151,153,155,157,160,162],{"class":92,"line":145},4,[90,147,122],{"class":96},[90,149,150],{"class":125},"uniqueCode",[90,152,110],{"class":96},[90,154,113],{"class":96},[90,156,133],{"class":96},[90,158,159],{"class":136},"API_1A2B3C4D",[90,161,110],{"class":96},[90,163,142],{"class":96},[90,165,167,169,172,174,176,178,181,183],{"class":92,"line":166},5,[90,168,122],{"class":96},[90,170,171],{"class":125},"externalRef",[90,173,110],{"class":96},[90,175,113],{"class":96},[90,177,133],{"class":96},[90,179,180],{"class":136},"crm-001",[90,182,110],{"class":96},[90,184,142],{"class":96},[90,186,188,190,193,195,197,199,202,204],{"class":92,"line":187},6,[90,189,122],{"class":96},[90,191,192],{"class":125},"firstName",[90,194,110],{"class":96},[90,196,113],{"class":96},[90,198,133],{"class":96},[90,200,201],{"class":136},"John",[90,203,110],{"class":96},[90,205,142],{"class":96},[90,207,209,211,214,216,218,220,223,225],{"class":92,"line":208},7,[90,210,122],{"class":96},[90,212,213],{"class":125},"email",[90,215,110],{"class":96},[90,217,113],{"class":96},[90,219,133],{"class":96},[90,221,222],{"class":136},"john@example.com",[90,224,110],{"class":96},[90,226,142],{"class":96},[90,228,230,232,235,237,239,241,244,246],{"class":92,"line":229},8,[90,231,122],{"class":96},[90,233,234],{"class":125},"phone",[90,236,110],{"class":96},[90,238,113],{"class":96},[90,240,133],{"class":96},[90,242,243],{"class":136},"6281234567890",[90,245,110],{"class":96},[90,247,142],{"class":96},[90,249,251,253,256,258,260,262,265,267],{"class":92,"line":250},9,[90,252,122],{"class":96},[90,254,255],{"class":125},"status",[90,257,110],{"class":96},[90,259,113],{"class":96},[90,261,133],{"class":96},[90,263,264],{"class":136},"new",[90,266,110],{"class":96},[90,268,142],{"class":96},[90,270,272,274,277,279,281,283,286,288],{"class":92,"line":271},10,[90,273,122],{"class":96},[90,275,276],{"class":125},"priority",[90,278,110],{"class":96},[90,280,113],{"class":96},[90,282,133],{"class":96},[90,284,285],{"class":136},"medium",[90,287,110],{"class":96},[90,289,142],{"class":96},[90,291,293,295,298,300,302],{"class":92,"line":292},11,[90,294,122],{"class":96},[90,296,297],{"class":125},"city",[90,299,110],{"class":96},[90,301,113],{"class":96},[90,303,304],{"class":96}," null,\n",[90,306,308,310,313,315,317],{"class":92,"line":307},12,[90,309,122],{"class":96},[90,311,312],{"class":125},"country",[90,314,110],{"class":96},[90,316,113],{"class":96},[90,318,319],{"class":96}," null\n",[90,321,323],{"class":92,"line":322},13,[90,324,325],{"class":96},"  },\n",[90,327,329,331,334,336,338,340,343],{"class":92,"line":328},14,[90,330,103],{"class":96},[90,332,333],{"class":106},"source",[90,335,110],{"class":96},[90,337,113],{"class":96},[90,339,133],{"class":96},[90,341,342],{"class":136},"api",[90,344,345],{"class":96},"\"\n",[90,347,349],{"class":92,"line":348},15,[90,350,351],{"class":96},"}\n",[74,353,355,79],{"id":354},"leadupdated-example",[33,356,69],{},[81,358,360],{"className":83,"code":359,"language":85,"meta":86,"style":86},"{\n  \"lead\": {\n    \"id\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"uniqueCode\": \"API_1A2B3C4D\",\n    \"status\": \"qualified\"\n  },\n  \"leadId\": \"550e8400-e29b-41d4-a716-446655440000\",\n  \"previousStatus\": \"new\",\n  \"newStatus\": \"qualified\",\n  \"changes\": [\"status\"],\n  \"source\": \"api\"\n}\n",[33,361,362,366,378,396,414,431,435,454,473,492,515,531],{"__ignoreMap":86},[90,363,364],{"class":92,"line":93},[90,365,97],{"class":96},[90,367,368,370,372,374,376],{"class":92,"line":100},[90,369,103],{"class":96},[90,371,107],{"class":106},[90,373,110],{"class":96},[90,375,113],{"class":96},[90,377,116],{"class":96},[90,379,380,382,384,386,388,390,392,394],{"class":92,"line":119},[90,381,122],{"class":96},[90,383,126],{"class":125},[90,385,110],{"class":96},[90,387,113],{"class":96},[90,389,133],{"class":96},[90,391,137],{"class":136},[90,393,110],{"class":96},[90,395,142],{"class":96},[90,397,398,400,402,404,406,408,410,412],{"class":92,"line":145},[90,399,122],{"class":96},[90,401,150],{"class":125},[90,403,110],{"class":96},[90,405,113],{"class":96},[90,407,133],{"class":96},[90,409,159],{"class":136},[90,411,110],{"class":96},[90,413,142],{"class":96},[90,415,416,418,420,422,424,426,429],{"class":92,"line":166},[90,417,122],{"class":96},[90,419,255],{"class":125},[90,421,110],{"class":96},[90,423,113],{"class":96},[90,425,133],{"class":96},[90,427,428],{"class":136},"qualified",[90,430,345],{"class":96},[90,432,433],{"class":92,"line":187},[90,434,325],{"class":96},[90,436,437,439,442,444,446,448,450,452],{"class":92,"line":208},[90,438,103],{"class":96},[90,440,441],{"class":106},"leadId",[90,443,110],{"class":96},[90,445,113],{"class":96},[90,447,133],{"class":96},[90,449,137],{"class":136},[90,451,110],{"class":96},[90,453,142],{"class":96},[90,455,456,458,461,463,465,467,469,471],{"class":92,"line":229},[90,457,103],{"class":96},[90,459,460],{"class":106},"previousStatus",[90,462,110],{"class":96},[90,464,113],{"class":96},[90,466,133],{"class":96},[90,468,264],{"class":136},[90,470,110],{"class":96},[90,472,142],{"class":96},[90,474,475,477,480,482,484,486,488,490],{"class":92,"line":250},[90,476,103],{"class":96},[90,478,479],{"class":106},"newStatus",[90,481,110],{"class":96},[90,483,113],{"class":96},[90,485,133],{"class":96},[90,487,428],{"class":136},[90,489,110],{"class":96},[90,491,142],{"class":96},[90,493,494,496,499,501,503,506,508,510,512],{"class":92,"line":271},[90,495,103],{"class":96},[90,497,498],{"class":106},"changes",[90,500,110],{"class":96},[90,502,113],{"class":96},[90,504,505],{"class":96}," [",[90,507,110],{"class":96},[90,509,255],{"class":136},[90,511,110],{"class":96},[90,513,514],{"class":96},"],\n",[90,516,517,519,521,523,525,527,529],{"class":92,"line":292},[90,518,103],{"class":96},[90,520,333],{"class":106},[90,522,110],{"class":96},[90,524,113],{"class":96},[90,526,133],{"class":96},[90,528,342],{"class":136},[90,530,345],{"class":96},[90,532,533],{"class":92,"line":307},[90,534,351],{"class":96},[19,536,538],{"id":537},"inbox-events","Inbox Events",[15,540,541],{},"Beside the lead events above, the Inbox sends four events through the same webhook:",[27,543,544,549,554,559],{},[30,545,546],{},[33,547,548],{},"inbox.message.received",[30,550,551],{},[33,552,553],{},"inbox.message.sent",[30,555,556],{},[33,557,558],{},"inbox.message.status",[30,560,561],{},[33,562,563],{},"inbox.conversation.owner_changed",[15,565,566],{},"An Inbox event wraps its payload, unlike the lead events above, whose body is the payload alone:",[81,568,570],{"className":83,"code":569,"language":85,"meta":86,"style":86},"{\n  \"event\": \"inbox.message.received\",\n  \"payload\": { \"...\": \"event data\" }\n}\n",[33,571,572,576,595,628],{"__ignoreMap":86},[90,573,574],{"class":92,"line":93},[90,575,97],{"class":96},[90,577,578,580,583,585,587,589,591,593],{"class":92,"line":100},[90,579,103],{"class":96},[90,581,582],{"class":106},"event",[90,584,110],{"class":96},[90,586,113],{"class":96},[90,588,133],{"class":96},[90,590,548],{"class":136},[90,592,110],{"class":96},[90,594,142],{"class":96},[90,596,597,599,602,604,606,609,611,614,616,618,620,623,625],{"class":92,"line":119},[90,598,103],{"class":96},[90,600,601],{"class":106},"payload",[90,603,110],{"class":96},[90,605,113],{"class":96},[90,607,608],{"class":96}," {",[90,610,133],{"class":96},[90,612,613],{"class":125},"...",[90,615,110],{"class":96},[90,617,113],{"class":96},[90,619,133],{"class":96},[90,621,622],{"class":136},"event data",[90,624,110],{"class":96},[90,626,627],{"class":96}," }\n",[90,629,630],{"class":92,"line":145},[90,631,351],{"class":96},[15,633,634,635,640],{},"The headers, signature verification, and idempotency rules on this page apply to Inbox events\ntoo. Read ",[636,637,639],"a",{"href":638},"\u002Fen\u002Fdocs\u002Fapi\u002Finbox-agent-api#webhook-events","Agent Inbox API"," for the full payload of\neach event.",[19,642,644],{"id":643},"signature-verification-timing-safe","Signature Verification (Timing-Safe)",[15,646,647],{},"Always verify using the raw request body. Do not re-stringify parsed JSON before hashing.",[81,649,653],{"className":650,"code":651,"language":652,"meta":86,"style":86},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import crypto from 'node:crypto'\n\nfunction verifyKonektorSignature(rawBody, signatureHeader, secret) {\n  const parts = signatureHeader.split(',')\n  const timestamp = parts.find(p => p.startsWith('t='))?.slice(2)\n  const signature = parts.find(p => p.startsWith('v1='))?.slice(3)\n\n  if (!timestamp || !signature) return false\n\n  const now = Math.floor(Date.now() \u002F 1000)\n  if (Math.abs(now - Number(timestamp)) > 300) return false\n\n  const expected = crypto\n    .createHmac('sha256', secret)\n    .update(`${timestamp}.${rawBody}`)\n    .digest('hex')\n\n  const providedBuf = Buffer.from(signature, 'hex')\n  const expectedBuf = Buffer.from(expected, 'hex')\n\n  if (providedBuf.length !== expectedBuf.length) return false\n  return crypto.timingSafeEqual(providedBuf, expectedBuf)\n}\n","js",[33,654,655,677,683,715,747,804,853,857,890,894,932,975,979,991,1014,1043,1062,1067,1098,1129,1134,1164,1188],{"__ignoreMap":86},[90,656,657,661,665,668,671,674],{"class":92,"line":93},[90,658,660],{"class":659},"s7zQu","import",[90,662,664],{"class":663},"sTEyZ"," crypto ",[90,666,667],{"class":659},"from",[90,669,670],{"class":96}," '",[90,672,673],{"class":136},"node:crypto",[90,675,676],{"class":96},"'\n",[90,678,679],{"class":92,"line":100},[90,680,682],{"emptyLinePlaceholder":681},true,"\n",[90,684,685,688,692,695,699,702,705,707,710,713],{"class":92,"line":119},[90,686,687],{"class":106},"function",[90,689,691],{"class":690},"s2Zo4"," verifyKonektorSignature",[90,693,694],{"class":96},"(",[90,696,698],{"class":697},"sHdIc","rawBody",[90,700,701],{"class":96},",",[90,703,704],{"class":697}," signatureHeader",[90,706,701],{"class":96},[90,708,709],{"class":697}," secret",[90,711,712],{"class":96},")",[90,714,116],{"class":96},[90,716,717,720,723,726,728,731,734,737,740,742,744],{"class":92,"line":145},[90,718,719],{"class":106},"  const",[90,721,722],{"class":663}," parts",[90,724,725],{"class":96}," =",[90,727,704],{"class":663},[90,729,730],{"class":96},".",[90,732,733],{"class":690},"split",[90,735,694],{"class":736},"swJcz",[90,738,739],{"class":96},"'",[90,741,701],{"class":136},[90,743,739],{"class":96},[90,745,746],{"class":736},")\n",[90,748,749,751,754,756,758,760,763,765,767,770,773,775,778,780,782,785,787,790,793,796,798,802],{"class":92,"line":166},[90,750,719],{"class":106},[90,752,753],{"class":663}," timestamp",[90,755,725],{"class":96},[90,757,722],{"class":663},[90,759,730],{"class":96},[90,761,762],{"class":690},"find",[90,764,694],{"class":736},[90,766,15],{"class":697},[90,768,769],{"class":106}," =>",[90,771,772],{"class":663}," p",[90,774,730],{"class":96},[90,776,777],{"class":690},"startsWith",[90,779,694],{"class":736},[90,781,739],{"class":96},[90,783,784],{"class":136},"t=",[90,786,739],{"class":96},[90,788,789],{"class":736},"))",[90,791,792],{"class":96},"?.",[90,794,795],{"class":690},"slice",[90,797,694],{"class":736},[90,799,801],{"class":800},"sbssI","2",[90,803,746],{"class":736},[90,805,806,808,811,813,815,817,819,821,823,825,827,829,831,833,835,838,840,842,844,846,848,851],{"class":92,"line":187},[90,807,719],{"class":106},[90,809,810],{"class":663}," signature",[90,812,725],{"class":96},[90,814,722],{"class":663},[90,816,730],{"class":96},[90,818,762],{"class":690},[90,820,694],{"class":736},[90,822,15],{"class":697},[90,824,769],{"class":106},[90,826,772],{"class":663},[90,828,730],{"class":96},[90,830,777],{"class":690},[90,832,694],{"class":736},[90,834,739],{"class":96},[90,836,837],{"class":136},"v1=",[90,839,739],{"class":96},[90,841,789],{"class":736},[90,843,792],{"class":96},[90,845,795],{"class":690},[90,847,694],{"class":736},[90,849,850],{"class":800},"3",[90,852,746],{"class":736},[90,854,855],{"class":92,"line":208},[90,856,682],{"emptyLinePlaceholder":681},[90,858,859,862,865,868,871,874,877,880,883,886],{"class":92,"line":229},[90,860,861],{"class":659},"  if",[90,863,864],{"class":736}," (",[90,866,867],{"class":96},"!",[90,869,870],{"class":663},"timestamp",[90,872,873],{"class":96}," ||",[90,875,876],{"class":96}," !",[90,878,879],{"class":663},"signature",[90,881,882],{"class":736},") ",[90,884,885],{"class":659},"return",[90,887,889],{"class":888},"sfNiH"," false\n",[90,891,892],{"class":92,"line":250},[90,893,682],{"emptyLinePlaceholder":681},[90,895,896,898,901,903,906,908,911,913,916,918,921,924,927,930],{"class":92,"line":271},[90,897,719],{"class":106},[90,899,900],{"class":663}," now",[90,902,725],{"class":96},[90,904,905],{"class":663}," Math",[90,907,730],{"class":96},[90,909,910],{"class":690},"floor",[90,912,694],{"class":736},[90,914,915],{"class":663},"Date",[90,917,730],{"class":96},[90,919,920],{"class":690},"now",[90,922,923],{"class":736},"() ",[90,925,926],{"class":96},"\u002F",[90,928,929],{"class":800}," 1000",[90,931,746],{"class":736},[90,933,934,936,938,941,943,946,948,950,953,956,958,960,963,966,969,971,973],{"class":92,"line":292},[90,935,861],{"class":659},[90,937,864],{"class":736},[90,939,940],{"class":663},"Math",[90,942,730],{"class":96},[90,944,945],{"class":690},"abs",[90,947,694],{"class":736},[90,949,920],{"class":663},[90,951,952],{"class":96}," -",[90,954,955],{"class":690}," Number",[90,957,694],{"class":736},[90,959,870],{"class":663},[90,961,962],{"class":736},")) ",[90,964,965],{"class":96},">",[90,967,968],{"class":800}," 300",[90,970,882],{"class":736},[90,972,885],{"class":659},[90,974,889],{"class":888},[90,976,977],{"class":92,"line":307},[90,978,682],{"emptyLinePlaceholder":681},[90,980,981,983,986,988],{"class":92,"line":322},[90,982,719],{"class":106},[90,984,985],{"class":663}," expected",[90,987,725],{"class":96},[90,989,990],{"class":663}," crypto\n",[90,992,993,996,999,1001,1003,1006,1008,1010,1012],{"class":92,"line":328},[90,994,995],{"class":96},"    .",[90,997,998],{"class":690},"createHmac",[90,1000,694],{"class":736},[90,1002,739],{"class":96},[90,1004,1005],{"class":136},"sha256",[90,1007,739],{"class":96},[90,1009,701],{"class":96},[90,1011,709],{"class":663},[90,1013,746],{"class":736},[90,1015,1016,1018,1021,1023,1026,1028,1031,1033,1036,1038,1041],{"class":92,"line":348},[90,1017,995],{"class":96},[90,1019,1020],{"class":690},"update",[90,1022,694],{"class":736},[90,1024,1025],{"class":96},"`${",[90,1027,870],{"class":663},[90,1029,1030],{"class":96},"}",[90,1032,730],{"class":136},[90,1034,1035],{"class":96},"${",[90,1037,698],{"class":663},[90,1039,1040],{"class":96},"}`",[90,1042,746],{"class":736},[90,1044,1046,1048,1051,1053,1055,1058,1060],{"class":92,"line":1045},16,[90,1047,995],{"class":96},[90,1049,1050],{"class":690},"digest",[90,1052,694],{"class":736},[90,1054,739],{"class":96},[90,1056,1057],{"class":136},"hex",[90,1059,739],{"class":96},[90,1061,746],{"class":736},[90,1063,1065],{"class":92,"line":1064},17,[90,1066,682],{"emptyLinePlaceholder":681},[90,1068,1070,1072,1075,1077,1080,1082,1084,1086,1088,1090,1092,1094,1096],{"class":92,"line":1069},18,[90,1071,719],{"class":106},[90,1073,1074],{"class":663}," providedBuf",[90,1076,725],{"class":96},[90,1078,1079],{"class":663}," Buffer",[90,1081,730],{"class":96},[90,1083,667],{"class":690},[90,1085,694],{"class":736},[90,1087,879],{"class":663},[90,1089,701],{"class":96},[90,1091,670],{"class":96},[90,1093,1057],{"class":136},[90,1095,739],{"class":96},[90,1097,746],{"class":736},[90,1099,1101,1103,1106,1108,1110,1112,1114,1116,1119,1121,1123,1125,1127],{"class":92,"line":1100},19,[90,1102,719],{"class":106},[90,1104,1105],{"class":663}," expectedBuf",[90,1107,725],{"class":96},[90,1109,1079],{"class":663},[90,1111,730],{"class":96},[90,1113,667],{"class":690},[90,1115,694],{"class":736},[90,1117,1118],{"class":663},"expected",[90,1120,701],{"class":96},[90,1122,670],{"class":96},[90,1124,1057],{"class":136},[90,1126,739],{"class":96},[90,1128,746],{"class":736},[90,1130,1132],{"class":92,"line":1131},20,[90,1133,682],{"emptyLinePlaceholder":681},[90,1135,1137,1139,1141,1144,1146,1149,1152,1154,1156,1158,1160,1162],{"class":92,"line":1136},21,[90,1138,861],{"class":659},[90,1140,864],{"class":736},[90,1142,1143],{"class":663},"providedBuf",[90,1145,730],{"class":96},[90,1147,1148],{"class":663},"length",[90,1150,1151],{"class":96}," !==",[90,1153,1105],{"class":663},[90,1155,730],{"class":96},[90,1157,1148],{"class":663},[90,1159,882],{"class":736},[90,1161,885],{"class":659},[90,1163,889],{"class":888},[90,1165,1167,1170,1173,1175,1178,1180,1182,1184,1186],{"class":92,"line":1166},22,[90,1168,1169],{"class":659},"  return",[90,1171,1172],{"class":663}," crypto",[90,1174,730],{"class":96},[90,1176,1177],{"class":690},"timingSafeEqual",[90,1179,694],{"class":736},[90,1181,1143],{"class":663},[90,1183,701],{"class":96},[90,1185,1105],{"class":663},[90,1187,746],{"class":736},[90,1189,1191],{"class":92,"line":1190},23,[90,1192,351],{"class":96},[19,1194,1196],{"id":1195},"idempotency-requirements","Idempotency Requirements",[15,1198,1199],{},"Because queue retries can resend events, your receiver must be idempotent:",[27,1201,1202,1209,1212],{},[30,1203,1204,1205,1208],{},"Store an internal event key (for example ",[33,1206,1207],{},"leadId + updatedAt + event",").",[30,1210,1211],{},"Ignore duplicate events that already completed.",[30,1213,1214,1215,1218],{},"Return ",[33,1216,1217],{},"2xx"," for valid duplicates to stop further retries.",[19,1220,1222],{"id":1221},"timeout-and-receiver-behavior","Timeout and Receiver Behavior",[15,1224,1225,1226,1229],{},"Konektor sends webhook requests with a short timeout (",[33,1227,1228],{},"5s","). A reliable receiver should:",[27,1231,1232,1235,1238],{},[30,1233,1234],{},"Verify signature.",[30,1236,1237],{},"Enqueue heavy processing internally.",[30,1239,1240,1241,1244],{},"Respond ",[33,1242,1243],{},"200 OK"," quickly.",[19,1246,1248],{"id":1247},"security-notes","Security Notes",[27,1250,1251,1254,1257,1260],{},[30,1252,1253],{},"Store webhook secrets in server-side secret storage.",[30,1255,1256],{},"Rotate secrets on a fixed schedule.",[30,1258,1259],{},"Reject missing or invalid signature headers.",[30,1261,1262],{},"Apply infrastructure-level IP allowlists if required by your environment.",[19,1264,1266],{"id":1265},"next-steps","Next steps",[1268,1269,1270,1276,1282],"ul",{},[30,1271,1272],{},[636,1273,1275],{"href":1274},"\u002Fen\u002Fdocs\u002Fadvanced\u002Fcrm-integration","CRM Integration & Lead Management",[30,1277,1278],{},[636,1279,1281],{"href":1280},"\u002Fen\u002Fdocs\u002Fapi\u002Foverview","API Reference Overview",[30,1283,1284],{},[636,1285,1287],{"href":1286},"\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fautomation","Automation Rules",[1289,1290,1291],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":86,"searchDepth":100,"depth":100,"links":1293},[1294,1295,1301,1302,1303,1304,1305,1306],{"id":21,"depth":100,"text":22},{"id":53,"depth":100,"text":54,"children":1296},[1297,1299],{"id":76,"depth":119,"text":1298},"lead.created Example",{"id":354,"depth":119,"text":1300},"lead.updated Example",{"id":537,"depth":100,"text":538},{"id":643,"depth":100,"text":644},{"id":1195,"depth":100,"text":1196},{"id":1221,"depth":100,"text":1222},{"id":1247,"depth":100,"text":1248},{"id":1265,"depth":100,"text":1266},null,"Technical webhook guide for Konektor: headers, actual payload structure, timing-safe HMAC SHA-256 verification, and idempotency handling.","md",{},"\u002Fen\u002Fdocs\u002Fapi\u002Fwebhooks",{"title":1313,"description":1314,"canonical":1311},"Konektor Webhooks - Signature Verification and Real Payload","Webhook documentation grounded in current implementation: lead.created\u002Flead.updated payload, signature headers, and timing-safe verification.",{"loc":1311,"lastmod":1316},"2026-09-06","en\u002Fdocs\u002Fapi\u002Fwebhooks",[12,879,1319,1320,1321],"hmac","realtime","events","9OMazzsUdHOv6OHxsTo6P2jm3ZvsG0mTvupbiBHwIGE"]