[{"data":1,"prerenderedAt":1028},["ShallowReactive",2],{"content:integrations:\u002Fintegrations\u002Fwebhooks":3,"content:integrations:list:directory":640,"plan-catalog":686,"code-html:":1027},{"id":4,"title":5,"body":6,"canonical":574,"catalog_row":575,"category":576,"description":577,"details":578,"docs_path":602,"draft":603,"extension":604,"faq":605,"icon":618,"locale":619,"meta":620,"name":621,"navigation":91,"noindex":603,"og":574,"order":622,"path":623,"related":624,"seo":628,"status":629,"stem":630,"steps":631,"summary":637,"updated":638,"__hash__":639},"integrations\u002Fintegrations\u002Fwebhooks.md","Signed webhooks: events in, alerts out",{"type":7,"value":8,"toc":569},"minimark",[9,14,18,25,31,35,38,558,562,565],[10,11,13],"h2",{"id":12},"what-it-does","What it does",[15,16,17],"p",{},"A webhook is a web request one system sends to another. Pulseri uses signed webhooks in both directions.",[15,19,20,24],{},[21,22,23],"strong",{},"Events in."," When something happens in your system, such as a ticket closing, send Pulseri a signed request. A trigger can then start a survey for that person.",[15,26,27,30],{},[21,28,29],{},"Alerts out."," When an alert rule matches an answer, Pulseri can call a web address you choose. Each call is signed so your system can verify it, and each is listed with its result.",[10,32,34],{"id":33},"send-a-signed-event","Send a signed event",[15,36,37],{},"Sign the exact bytes you send. Use the receiver URL and signing secret from Settings, then Webhooks.",[39,40,41,450],"code-tabs",{},[42,43,49],"pre",{"className":44,"code":45,"filename":46,"language":47,"meta":48,"style":48},"language-js shiki shiki-themes material-theme-lighter pulseri-code material-theme-palenight","import { createHmac } from 'node:crypto'\n\nconst body = JSON.stringify({\n  event_key: 'ticket.closed',\n  external_event_id: 'evt_8f14e45f',\n  person_id: 'user_123',\n  payload: { email: 'emily@northwind.example' },\n  occurred_at: '2026-10-15T09:30:00Z',\n})\nconst signature = 'sha256=' + createHmac('sha256', process.env.PULSERI_SIGNING_SECRET).update(body).digest('hex')\n\nconst res = await fetch(process.env.PULSERI_RECEIVER_URL, {\n  method: 'POST',\n  headers: { 'Content-Type': 'application\u002Fjson', 'X-Pulseri-Signature': signature },\n  body,\n})\nconsole.log(res.status) \u002F\u002F 200 when Pulseri accepts the request\n","Node","js","",[50,51,52,86,93,123,144,161,178,203,220,229,307,312,347,364,407,415,422],"code",{"__ignoreMap":48},[53,54,57,61,65,69,72,75,79,83],"span",{"class":55,"line":56},"line",1,[53,58,60],{"class":59},"sVE1x","import",[53,62,64],{"class":63},"sFaY5"," {",[53,66,68],{"class":67},"sZbaC"," createHmac",[53,70,71],{"class":63}," }",[53,73,74],{"class":59}," from",[53,76,78],{"class":77},"sDqDV"," '",[53,80,82],{"class":81},"sYyUr","node:crypto",[53,84,85],{"class":77},"'\n",[53,87,89],{"class":55,"line":88},2,[53,90,92],{"emptyLinePlaceholder":91},true,"\n",[53,94,96,100,103,106,109,112,116,120],{"class":55,"line":95},3,[53,97,99],{"class":98},"scGce","const",[53,101,102],{"class":67}," body ",[53,104,105],{"class":63},"=",[53,107,108],{"class":67}," JSON",[53,110,111],{"class":63},".",[53,113,115],{"class":114},"s2jJG","stringify",[53,117,119],{"class":118},"sa8A-","(",[53,121,122],{"class":63},"{\n",[53,124,126,130,133,135,138,141],{"class":55,"line":125},4,[53,127,129],{"class":128},"sxCGI","  event_key",[53,131,132],{"class":63},":",[53,134,78],{"class":77},[53,136,137],{"class":81},"ticket.closed",[53,139,140],{"class":77},"'",[53,142,143],{"class":63},",\n",[53,145,147,150,152,154,157,159],{"class":55,"line":146},5,[53,148,149],{"class":128},"  external_event_id",[53,151,132],{"class":63},[53,153,78],{"class":77},[53,155,156],{"class":81},"evt_8f14e45f",[53,158,140],{"class":77},[53,160,143],{"class":63},[53,162,164,167,169,171,174,176],{"class":55,"line":163},6,[53,165,166],{"class":128},"  person_id",[53,168,132],{"class":63},[53,170,78],{"class":77},[53,172,173],{"class":81},"user_123",[53,175,140],{"class":77},[53,177,143],{"class":63},[53,179,181,184,186,188,191,193,195,198,200],{"class":55,"line":180},7,[53,182,183],{"class":128},"  payload",[53,185,132],{"class":63},[53,187,64],{"class":63},[53,189,190],{"class":128}," email",[53,192,132],{"class":63},[53,194,78],{"class":77},[53,196,197],{"class":81},"emily@northwind.example",[53,199,140],{"class":77},[53,201,202],{"class":63}," },\n",[53,204,206,209,211,213,216,218],{"class":55,"line":205},8,[53,207,208],{"class":128},"  occurred_at",[53,210,132],{"class":63},[53,212,78],{"class":77},[53,214,215],{"class":81},"2026-10-15T09:30:00Z",[53,217,140],{"class":77},[53,219,143],{"class":63},[53,221,223,226],{"class":55,"line":222},9,[53,224,225],{"class":63},"}",[53,227,228],{"class":118},")\n",[53,230,232,234,237,239,241,244,246,249,251,253,255,258,260,263,266,268,271,273,276,279,281,284,286,289,291,293,296,298,300,303,305],{"class":55,"line":231},10,[53,233,99],{"class":98},[53,235,236],{"class":67}," signature ",[53,238,105],{"class":63},[53,240,78],{"class":77},[53,242,243],{"class":81},"sha256=",[53,245,140],{"class":77},[53,247,248],{"class":63}," +",[53,250,68],{"class":114},[53,252,119],{"class":118},[53,254,140],{"class":77},[53,256,257],{"class":81},"sha256",[53,259,140],{"class":77},[53,261,262],{"class":63},",",[53,264,265],{"class":67}," process",[53,267,111],{"class":63},[53,269,270],{"class":67},"env",[53,272,111],{"class":63},[53,274,275],{"class":67},"PULSERI_SIGNING_SECRET",[53,277,278],{"class":118},")",[53,280,111],{"class":63},[53,282,283],{"class":114},"update",[53,285,119],{"class":118},[53,287,288],{"class":67},"body",[53,290,278],{"class":118},[53,292,111],{"class":63},[53,294,295],{"class":114},"digest",[53,297,119],{"class":118},[53,299,140],{"class":77},[53,301,302],{"class":81},"hex",[53,304,140],{"class":77},[53,306,228],{"class":118},[53,308,310],{"class":55,"line":309},11,[53,311,92],{"emptyLinePlaceholder":91},[53,313,315,317,320,322,325,328,330,333,335,337,339,342,344],{"class":55,"line":314},12,[53,316,99],{"class":98},[53,318,319],{"class":67}," res ",[53,321,105],{"class":63},[53,323,324],{"class":59}," await",[53,326,327],{"class":114}," fetch",[53,329,119],{"class":118},[53,331,332],{"class":67},"process",[53,334,111],{"class":63},[53,336,270],{"class":67},[53,338,111],{"class":63},[53,340,341],{"class":67},"PULSERI_RECEIVER_URL",[53,343,262],{"class":63},[53,345,346],{"class":63}," {\n",[53,348,350,353,355,357,360,362],{"class":55,"line":349},13,[53,351,352],{"class":128},"  method",[53,354,132],{"class":63},[53,356,78],{"class":77},[53,358,359],{"class":81},"POST",[53,361,140],{"class":77},[53,363,143],{"class":63},[53,365,367,370,372,374,376,380,382,384,386,389,391,393,395,398,400,402,404],{"class":55,"line":366},14,[53,368,369],{"class":128},"  headers",[53,371,132],{"class":63},[53,373,64],{"class":63},[53,375,78],{"class":77},[53,377,379],{"class":378},"sxFj3","Content-Type",[53,381,140],{"class":77},[53,383,132],{"class":63},[53,385,78],{"class":77},[53,387,388],{"class":81},"application\u002Fjson",[53,390,140],{"class":77},[53,392,262],{"class":63},[53,394,78],{"class":77},[53,396,397],{"class":378},"X-Pulseri-Signature",[53,399,140],{"class":77},[53,401,132],{"class":63},[53,403,236],{"class":67},[53,405,406],{"class":63},"},\n",[53,408,410,413],{"class":55,"line":409},15,[53,411,412],{"class":67},"  body",[53,414,143],{"class":63},[53,416,418,420],{"class":55,"line":417},16,[53,419,225],{"class":63},[53,421,228],{"class":118},[53,423,425,428,430,433,435,438,440,444,446],{"class":55,"line":424},17,[53,426,427],{"class":67},"console",[53,429,111],{"class":63},[53,431,432],{"class":114},"log",[53,434,119],{"class":118},[53,436,437],{"class":67},"res",[53,439,111],{"class":63},[53,441,443],{"class":442},"sth0k","status",[53,445,278],{"class":118},[53,447,449],{"class":448},"s_jPC"," \u002F\u002F 200 when Pulseri accepts the request\n",[42,451,456],{"className":452,"code":453,"filename":454,"language":455,"meta":48,"style":48},"language-python shiki shiki-themes material-theme-lighter pulseri-code material-theme-palenight","import hashlib, hmac, json, os\nimport requests\n\nbody = json.dumps({\n    \"event_key\": \"ticket.closed\",\n    \"external_event_id\": \"evt_8f14e45f\",\n    \"person_id\": \"user_123\",\n    \"payload\": {\"email\": \"emily@northwind.example\"},\n    \"occurred_at\": \"2026-10-15T09:30:00Z\",\n}).encode()\nsignature = \"sha256=\" + hmac.new(\n    os.environ[\"PULSERI_SIGNING_SECRET\"].encode(), body, hashlib.sha256\n).hexdigest()\n\nres = requests.post(\n    os.environ[\"PULSERI_RECEIVER_URL\"],\n    data=body,\n    headers={\"Content-Type\": \"application\u002Fjson\", \"X-Pulseri-Signature\": signature},\n)\nprint(res.status_code)  # 200 when Pulseri accepts the request\n","Python","python",[50,457,458,463,468,472,477,482,487,492,497,502,507,512,517,522,526,531,536,541,547,552],{"__ignoreMap":48},[53,459,460],{"class":55,"line":56},[53,461,462],{},"import hashlib, hmac, json, os\n",[53,464,465],{"class":55,"line":88},[53,466,467],{},"import requests\n",[53,469,470],{"class":55,"line":95},[53,471,92],{"emptyLinePlaceholder":91},[53,473,474],{"class":55,"line":125},[53,475,476],{},"body = json.dumps({\n",[53,478,479],{"class":55,"line":146},[53,480,481],{},"    \"event_key\": \"ticket.closed\",\n",[53,483,484],{"class":55,"line":163},[53,485,486],{},"    \"external_event_id\": \"evt_8f14e45f\",\n",[53,488,489],{"class":55,"line":180},[53,490,491],{},"    \"person_id\": \"user_123\",\n",[53,493,494],{"class":55,"line":205},[53,495,496],{},"    \"payload\": {\"email\": \"emily@northwind.example\"},\n",[53,498,499],{"class":55,"line":222},[53,500,501],{},"    \"occurred_at\": \"2026-10-15T09:30:00Z\",\n",[53,503,504],{"class":55,"line":231},[53,505,506],{},"}).encode()\n",[53,508,509],{"class":55,"line":309},[53,510,511],{},"signature = \"sha256=\" + hmac.new(\n",[53,513,514],{"class":55,"line":314},[53,515,516],{},"    os.environ[\"PULSERI_SIGNING_SECRET\"].encode(), body, hashlib.sha256\n",[53,518,519],{"class":55,"line":349},[53,520,521],{},").hexdigest()\n",[53,523,524],{"class":55,"line":366},[53,525,92],{"emptyLinePlaceholder":91},[53,527,528],{"class":55,"line":409},[53,529,530],{},"res = requests.post(\n",[53,532,533],{"class":55,"line":417},[53,534,535],{},"    os.environ[\"PULSERI_RECEIVER_URL\"],\n",[53,537,538],{"class":55,"line":424},[53,539,540],{},"    data=body,\n",[53,542,544],{"class":55,"line":543},18,[53,545,546],{},"    headers={\"Content-Type\": \"application\u002Fjson\", \"X-Pulseri-Signature\": signature},\n",[53,548,550],{"class":55,"line":549},19,[53,551,228],{},[53,553,555],{"class":55,"line":554},20,[53,556,557],{},"print(res.status_code)  # 200 when Pulseri accepts the request\n",[10,559,561],{"id":560},"who-it-suits","Who it suits",[15,563,564],{},"Anyone with a tool Pulseri does not connect to natively, or who wants alerts to start work in their own systems.",[566,567,568],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVE1x, html code.shiki .sVE1x{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#7DB7E8;--shiki-default-font-style:inherit;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sFaY5, html code.shiki .sFaY5{--shiki-light:#39ADB5;--shiki-default:#A1A1AA;--shiki-dark:#89DDFF}html pre.shiki code .sZbaC, html code.shiki .sZbaC{--shiki-light:#90A4AE;--shiki-default:#E4E4E7;--shiki-dark:#BABED8}html pre.shiki code .sDqDV, html code.shiki .sDqDV{--shiki-light:#39ADB5;--shiki-default:#8FCDA8;--shiki-dark:#89DDFF}html pre.shiki code .sYyUr, html code.shiki .sYyUr{--shiki-light:#91B859;--shiki-default:#8FCDA8;--shiki-dark:#C3E88D}html pre.shiki code .scGce, html code.shiki .scGce{--shiki-light:#9C3EDA;--shiki-default:#7DB7E8;--shiki-dark:#C792EA}html pre.shiki code .s2jJG, html code.shiki .s2jJG{--shiki-light:#6182B8;--shiki-default:#7CCBC6;--shiki-dark:#82AAFF}html pre.shiki code .sa8A-, html code.shiki .sa8A-{--shiki-light:#90A4AE;--shiki-default:#A1A1AA;--shiki-dark:#BABED8}html pre.shiki code .sxCGI, html code.shiki .sxCGI{--shiki-light:#E53935;--shiki-default:#C4CBD6;--shiki-dark:#F07178}html pre.shiki code .sxFj3, html code.shiki .sxFj3{--shiki-light:#E53935;--shiki-default:#8FCDA8;--shiki-dark:#F07178}html pre.shiki code .sth0k, html code.shiki .sth0k{--shiki-light:#90A4AE;--shiki-default:#C4CBD6;--shiki-dark:#BABED8}html pre.shiki code .s_jPC, html code.shiki .s_jPC{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#8E95A3;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":48,"searchDepth":88,"depth":88,"links":570},[571,572,573],{"id":12,"depth":88,"text":13},{"id":33,"depth":88,"text":34},{"id":560,"depth":88,"text":561},null,"webhook_endpoints","developers","Send events to Pulseri and get alerts back, signed so you know they are real. Works with any tool that can post.",{"title":579,"intro":580,"items":581},"Fields in the request","Only the event key is required. The rest helps Pulseri find the right person and ignore repeats.",[582,586,590,594,598],{"name":583,"text":584,"icon":585},"event_key","The name of what happened, such as \"ticket.closed\". Pulseri uses it to pick the trigger. Required.","i-lucide-key-round",{"name":587,"text":588,"icon":589},"external_event_id","Your own ID for this event. If you send the same ID twice, Pulseri keeps one.","i-lucide-badge-check",{"name":591,"text":592,"icon":593},"person_id","Your own ID for the person, such as a customer ID. Pulseri matches on it before the email.","i-lucide-user",{"name":595,"text":596,"icon":597},"payload.email","The person's email, used to find them when there is no person ID. If nobody matches, Pulseri adds them.","i-lucide-mail",{"name":599,"text":600,"icon":601},"occurred_at","When it happened, in ISO 8601 format. If omitted, Pulseri uses the time it received the request.","i-lucide-clock","\u002F",false,"md",[606,609,612,615],{"q":607,"a":608},"What does the signature protect?","It proves the sender knows your signing secret. A request without a valid signature gets a 401.",{"q":610,"a":611},"Can Pulseri call my system too?","Yes. Add a webhook endpoint under Settings, then Webhooks, and pick it as an alert destination. Those calls also carry a timestamp and a delivery id, and the timestamp is part of the signed text, so they need their own check, not the one for calls you send to Pulseri. Failed calls are retried for about 20 minutes.",{"q":613,"a":614},"Can I use Zapier or a similar tool?","Often yes, if the tool can add the signature header, for example in a code step. It sends the same fields as any other sender.",{"q":616,"a":617},"What if I lose my signing secret?","Rotate it on the Webhooks page. The old secret stops working at once, so update your sender first.","i-lucide-webhook","en",{},"Signed webhooks","60","\u002Fintegrations\u002Fwebhooks",[625,626,627],"rest-api","slack","stripe",{"title":5,"description":577},"live","integrations\u002Fwebhooks",[632,633,634,635,636],"An administrator opens Settings, then Webhooks, and copies the receiver URL and signing secret.","In your system, build a JSON body with an event key, such as \"ticket.closed\", and who it is about. Add an event ID so repeats are ignored.","Sign the body with your signing secret (HMAC-SHA-256) and send it in the X-Pulseri-Signature header as sha256= plus the hex value.","POST the body to the receiver URL as application\u002Fjson. Pulseri answers 200 when it accepts the request.","Create a trigger in Pulseri for that event, choose the survey and add a delay if you like.","Send events in, and get alerts out, with a signature on every request.","2026-10-26","BXZqKGUo4UsDM7U1MpZJtnITjPXZZ0fFD5obvDNvsyc",[641,648,655,663,671,678,679],{"path":642,"name":643,"summary":644,"icon":645,"category":576,"order":646,"catalog_row":647,"status":629,"draft":603},"\u002Fintegrations\u002Fassistants","AI assistants","Ask about your feedback in plain words from the assistant you already use.","i-lucide-bot","80","mcp_rpm",{"path":649,"name":650,"summary":651,"icon":652,"category":576,"order":653,"catalog_row":654,"status":629,"draft":603},"\u002Fintegrations\u002Frest-api","REST API","Send people and events in, and read answers and reports out.","i-lucide-code-xml","70","api_rpm",{"path":656,"name":657,"summary":658,"icon":659,"category":660,"order":661,"catalog_row":662,"status":629,"draft":603},"\u002Fintegrations\u002Fslack","Slack","Low-score alerts in the channel you pick, with the full comment.","i-lucide-message-square","alerts","10","integration.slack",{"path":664,"name":665,"summary":666,"icon":667,"category":668,"order":669,"catalog_row":670,"status":629,"draft":603},"\u002Fintegrations\u002Fstripe","Stripe","Ask for feedback after an invoice is paid or a checkout is completed.","i-lucide-credit-card","surveys","30","integration.stripe",{"path":672,"name":673,"summary":674,"icon":675,"category":660,"order":676,"catalog_row":677,"status":629,"draft":603},"\u002Fintegrations\u002Fteams","Microsoft Teams","Alerts in a Microsoft Teams channel, with admin approval in your Microsoft 365.","i-lucide-messages-square","20","integration.teams",{"path":623,"name":621,"summary":637,"icon":618,"category":576,"order":622,"catalog_row":575,"status":629,"draft":603},{"path":680,"name":681,"summary":682,"icon":683,"category":668,"order":684,"catalog_row":685,"status":629,"draft":603},"\u002Fintegrations\u002Fzendesk","Zendesk","Ask the customer how support went when a ticket is solved.","i-lucide-life-buoy","40","integration.zendesk",{"fetched_at":687,"source":688,"response":689},"2026-11-05T19:47:02.540Z","https:\u002F\u002Fapi.pulseri.com\u002Fv1\u002Fbilling\u002Fplans",{"data":690},{"id":691,"type":692,"attributes":693},"catalog","plan_catalog",{"catalog_version":163,"currency":694,"locale":619,"tax_display":695,"trial_days":366,"links":696,"plans":702,"groups":746,"add_ons":989,"overage":1022},"EUR","excl_vat",{"contact_url":697,"terms_url":698,"privacy_url":699,"dpa_url":700,"terms_version":701},"https:\u002F\u002Fwww.pulseri.com\u002Fcontact?topic=enterprise","https:\u002F\u002Fwww.pulseri.com\u002Flegal\u002Fterms","https:\u002F\u002Fwww.pulseri.com\u002Flegal\u002Fprivacy","https:\u002F\u002Fwww.pulseri.com\u002Flegal\u002Fdpa","2026-10-13",[703,717,728,739],{"key":704,"name":705,"description":706,"rank":56,"highlights":707,"self_serve":91,"cta":710,"price":711},"starter","Starter","For small teams just getting started with feedback.",[708,709],"people","sends_per_month","select",{"monthly":712,"annual":714,"annual_monthly_equivalent_minor":716},{"amount_minor":713,"currency":694},4900,{"amount_minor":715,"currency":694},49000,4083,{"key":718,"name":719,"description":720,"rank":88,"highlights":721,"self_serve":91,"cta":710,"price":722},"growth","Growth","For growing teams that need more room to survey.",[708,709],{"monthly":723,"annual":725,"annual_monthly_equivalent_minor":727},{"amount_minor":724,"currency":694},9900,{"amount_minor":726,"currency":694},99000,8250,{"key":729,"name":730,"description":731,"rank":95,"highlights":732,"self_serve":91,"cta":710,"price":733},"business","Business","For larger teams running feedback at scale.",[708,709],{"monthly":734,"annual":736,"annual_monthly_equivalent_minor":738},{"amount_minor":735,"currency":694},19900,{"amount_minor":737,"currency":694},199000,16583,{"key":740,"name":741,"description":742,"rank":125,"highlights":743,"self_serve":603,"cta":744,"cta_label":745,"contact_url":697,"price":574},"enterprise","Enterprise","For organisations with security, scale or contract requirements.",[708,709],"contact","Let's talk",[747,779,801,818,830,872,911,953],{"key":748,"label":749,"rows":750},"core_data","Core data",[751,759,767,773],{"key":708,"label":752,"unit":708,"enforced":91,"kind":753,"values":754},"People","limit",{"starter":755,"growth":756,"business":757,"enterprise":758},500,2500,10000,{"custom":91},{"key":760,"label":761,"unit":760,"enforced":91,"kind":753,"values":762},"traits","Traits",{"starter":763,"growth":764,"business":765,"enterprise":766},50,150,300,{"custom":91},{"key":768,"label":769,"unit":768,"enforced":91,"kind":753,"values":770},"segments","Segments",{"starter":231,"growth":763,"business":771,"enterprise":772},200,{"custom":91},{"key":774,"label":775,"unit":774,"enforced":91,"kind":753,"values":776},"themes","Themes",{"starter":777,"growth":777,"business":777,"enterprise":778},30,{"custom":91},{"key":780,"label":781,"rows":782},"collection","Collection",[783,789,796],{"key":709,"label":784,"unit":785,"enforced":91,"kind":753,"values":786},"Survey sends a month","sends",{"starter":756,"growth":757,"business":787,"enterprise":788},30000,{"custom":91},{"key":790,"label":791,"unit":792,"enforced":91,"kind":753,"values":793},"campaign_digests","Campaigns with their own AI digest","campaigns",{"starter":794,"growth":231,"business":763,"enterprise":795},0,{"unlimited":91},{"key":797,"label":798,"enforced":91,"kind":799,"values":800},"custom_sending_domain","Custom sending domain","feature",{"starter":603,"growth":91,"business":91,"enterprise":91},{"key":802,"label":803,"rows":804},"automation","Automation",[805,813],{"key":806,"label":807,"unit":808,"enforced":91,"kind":753,"values":809},"alert_rules","Alert rules","rules",{"starter":146,"growth":810,"business":811,"enterprise":812},25,100,{"custom":91},{"key":575,"label":814,"unit":815,"enforced":91,"kind":753,"values":816},"Webhook endpoints","endpoints",{"starter":88,"growth":146,"business":554,"enterprise":817},{"custom":91},{"key":819,"label":820,"rows":821},"integrations","Integrations",[822,824,826,828],{"key":662,"label":657,"enforced":91,"kind":799,"values":823},{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":677,"label":673,"enforced":91,"kind":799,"values":825},{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":670,"label":665,"enforced":91,"kind":799,"values":827},{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":685,"label":681,"enforced":91,"kind":799,"values":829},{"starter":603,"growth":91,"business":91,"enterprise":91},{"key":831,"label":832,"rows":833},"access","Access and API",[834,840,846,852,858,866],{"key":835,"label":836,"unit":837,"enforced":91,"kind":753,"values":838},"service_accounts","Service accounts","accounts",{"starter":88,"growth":146,"business":554,"enterprise":839},{"custom":91},{"key":841,"label":842,"unit":843,"enforced":91,"kind":753,"values":844},"public_keys","Public keys","keys",{"starter":88,"growth":146,"business":231,"enterprise":845},{"custom":91},{"key":847,"label":848,"unit":849,"enforced":91,"kind":753,"values":850},"connected_apps","Connected assistants","apps",{"starter":95,"growth":231,"business":763,"enterprise":851},{"unlimited":91},{"key":853,"label":854,"unit":855,"enforced":91,"kind":753,"values":856},"custom_roles","Custom roles","roles",{"starter":794,"growth":95,"business":231,"enterprise":857},{"unlimited":91},{"key":654,"label":859,"unit":860,"enforced":91,"kind":861,"values":862},"API requests a minute per key","requests","rate",{"starter":765,"growth":863,"business":864,"enterprise":865},1000,3000,{"custom":91},{"key":647,"label":867,"unit":860,"enforced":91,"kind":861,"values":868},"Assistant requests a minute per app",{"starter":869,"growth":765,"business":870,"enterprise":871},120,600,{"custom":91},{"key":873,"label":874,"rows":875},"security","Security and compliance",[876,884,888,894,899,903,907],{"key":877,"label":878,"unit":879,"enforced":91,"kind":753,"values":880},"audit_retention_days","Audit log retention","days",{"starter":777,"growth":881,"business":882,"enterprise":883},90,365,{"custom":91},{"key":885,"label":886,"enforced":91,"kind":799,"values":887},"audit_api","Audit log API",{"starter":603,"growth":603,"business":91,"enterprise":91},{"key":889,"label":890,"enforced":91,"kind":799,"values":891},"sso","Single sign-on (OIDC, SAML)",{"starter":603,"growth":603,"business":892,"enterprise":91},{"addon":893},"sso_connection",{"key":895,"label":896,"enforced":91,"kind":799,"values":897},"sso.domains","Verified sign-in domains",{"starter":603,"growth":603,"business":898,"enterprise":91},{"addon":893},{"key":900,"label":901,"enforced":91,"kind":799,"values":902},"sso.enforcement","Enforced single sign-on and domain capture",{"starter":603,"growth":603,"business":603,"enterprise":91},{"key":904,"label":905,"enforced":91,"kind":799,"values":906},"scim","SCIM user provisioning",{"starter":603,"growth":603,"business":603,"enterprise":91},{"key":908,"label":909,"enforced":91,"kind":799,"values":910},"session_policy","Configurable session limits",{"starter":603,"growth":603,"business":603,"enterprise":91},{"key":912,"label":913,"rows":914},"platform","Platform",[915,923,926,930,934,938,941,945,949],{"key":916,"label":917,"enforced":603,"kind":799,"values":918},"team_members","Team members",{"starter":919,"growth":920,"business":921,"enterprise":922},{"unlimited":91},{"unlimited":91},{"unlimited":91},{"unlimited":91},{"key":668,"label":924,"enforced":603,"kind":799,"values":925},"NPS, CSAT, CES and eNPS surveys",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":927,"label":928,"enforced":603,"kind":799,"values":929},"metrics","Metrics and reports",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":931,"label":932,"enforced":603,"kind":799,"values":933},"dashboard_widgets","Dashboards and widgets",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":935,"label":936,"enforced":603,"kind":799,"values":937},"groups","Groups and accounts",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":939,"label":650,"enforced":603,"kind":799,"values":940},"rest_api",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":942,"label":943,"enforced":603,"kind":799,"values":944},"mcp","AI assistant access",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":946,"label":947,"enforced":603,"kind":799,"values":948},"global_search","Global search",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":950,"label":951,"enforced":603,"kind":799,"values":952},"saved_views","Saved views",{"starter":91,"growth":91,"business":91,"enterprise":91},{"key":954,"label":955,"rows":956},"support","Support and terms",[957,964,971,977,983],{"key":954,"label":958,"enforced":603,"kind":959,"values":960},"Support","text",{"starter":961,"growth":961,"business":962,"enterprise":963},"Email","Priority email","Named contact",{"key":965,"label":966,"enforced":603,"kind":959,"values":967},"security_paperwork","Security questionnaire and DPA",{"starter":968,"growth":968,"business":969,"enterprise":970},"Standard DPA","Standard DPA and questionnaire","Reviewed with your team",{"key":972,"label":973,"enforced":603,"kind":959,"values":974},"sla","Service level agreement",{"starter":975,"growth":975,"business":975,"enterprise":976},"None","By contract",{"key":978,"label":979,"enforced":603,"kind":959,"values":980},"billing_terms","Billing",{"starter":981,"growth":981,"business":981,"enterprise":982},"Card","Invoice",{"key":984,"label":985,"enforced":603,"kind":959,"values":986},"contract","Contract",{"starter":987,"growth":987,"business":987,"enterprise":988},"Online terms","Custom contract",[990,1000,1012],{"key":893,"label":991,"available_on":992,"max_quantity":56,"price":993,"grants":998},"SSO connection",[729],{"monthly":994,"annual":996},{"amount_minor":995,"currency":694},7900,{"amount_minor":997,"currency":694},79000,{"features":999},[889],{"key":1001,"label":1002,"available_on":1003,"max_quantity":95,"price":1004,"grants":1009},"people_pack_5k","People pack (+5,000)",[729],{"monthly":1005,"annual":1007},{"amount_minor":1006,"currency":694},7500,{"amount_minor":1008,"currency":694},75000,{"limits":1010},{"people":1011},5000,{"key":1013,"label":1014,"available_on":1015,"max_quantity":231,"price":1016,"grants":1020},"send_pack_10k","Send pack (+10,000 a month)",[729],{"monthly":1017,"annual":1018},{"amount_minor":756,"currency":694},{"amount_minor":1019,"currency":694},25000,{"limits":1021},{"sends_per_month":757},{"sends":1023},{"per_1000":1024,"applies_to_plans":1026},{"amount_minor":1025,"currency":694},250,[704,718,729],[],1793908073341]