[{"data":1,"prerenderedAt":3116},["ShallowReactive",2],{"addon-form-notifications":3,"addonDocs-form-notifications-nav":169,"addons-nav":243,"addon-form-notifications-docs-path":1205,"addons-footer":1278,"addonDocs-/addons/form-notifications/docs/guides/webhooks":1776,"addonDocs-/addons/form-notifications/docs/guides/webhooks-surround":3111},{"id":4,"title":5,"body":6,"channels":127,"color":10,"comingSoon":8,"cta":139,"description":7,"extension":142,"faq":143,"features":144,"featuresDescription":143,"featuresTitle":143,"hero":151,"hidden":8,"icon":12,"live":8,"logo":13,"logos":143,"marketplaceUrl":14,"meta":155,"navigation":156,"order":9,"path":157,"planFeatures":143,"promoSlides":158,"screenshots":143,"secondaryColor":11,"seo":163,"stem":164,"testimonials":143,"video":165,"videos":166,"__hash__":168},"addons_en/addons/form-notifications/index.yml","Form Notifications",{"title":5,"description":7,"comingSoon":8,"hidden":8,"order":9,"color":10,"secondaryColor":11,"icon":12,"logo":13,"marketplaceUrl":14,"video":15,"videos":17,"seo":23,"hero":26,"features":41,"promoSlides":66,"channels":83,"cta":120},"Email, Slack, Discord, Microsoft Teams or webhook rules that run when your Google Forms receive responses",false,4,"green","emerald","i-lucide-bell-ring","/form-notifications-logo.png","https://workspace.google.com/marketplace/app/form_notifications_email_notifier_approv/881118540427",{"id":16},"h5c6dcQBaEk",[18],{"id":16,"duration":19,"guide":20,"title":21,"description":22},126,"/addons/form-notifications/docs/guides/approvals","Approve Google Form Responses Before the Email Is Sent","Set up a leave request email with merge tags and a condition, hold every response for the manager's approval, then watch the confirmation reach the employee once approved.",{"title":24,"description":25},"Form Notifications - Email Alerts for Google Forms Responses","Rules that email, post to Slack, Discord or Teams, or call a webhook on form submission. Merge tags, conditions, an optional approval step. Free email rules after the trial.",{"title":27,"description":28,"links":29},"Turn every form response into the right email, Slack message or webhook","Add a rule, pick when it sends, where it goes and what it says. Email, Slack, Discord, Microsoft Teams or a webhook to Zapier, with merge tags, conditions and an optional approval step. No code required.",[30,36],{"label":31,"to":32,"color":33,"variant":34,"size":35},"Get Started","/addons/form-notifications/pricing","primary","solid","lg",{"label":37,"to":38,"color":39,"variant":40,"size":35},"Documentation","/addons/form-notifications/docs","neutral","outline",[42,46,50,54,58,62],{"title":43,"description":44,"icon":45},"Rules, Not Settings","Each rule says when it sends, only if which answers match, via which channel, to where, and what it says. Add as many as you need, duplicate one, turn one off.","i-lucide-mail",{"title":47,"description":48,"icon":49},"Custom Messages and Merge Tags","Write the email in a rich-text editor, or the chat post as one text. Drop in any answer, the form name or the date with one click.","i-lucide-tag",{"title":51,"description":52,"icon":53},"Only If","Add conditions so a rule sends for some responses only. One form, many destinations, each with its own rule.","i-lucide-git-branch",{"title":55,"description":56,"icon":57},"Approval as a Rule Step","Add an approval step to any rule, with a person by email or a Slack, Discord or Teams channel as approver. The rule sends once they approve or reject.","i-lucide-badge-check",{"title":59,"description":60,"icon":61},"Reliable Delivery","Email rules send from your own Google account, a sender your recipients know and can actually reply to.","i-lucide-send",{"title":63,"description":64,"icon":65},"Delivery History & Export","Every send, approval and failure in one searchable log, per rule. Export your full history to Google Sheets anytime.","i-lucide-history",[67,71,75,79],{"headline":68,"description":69,"image":70},"Write the Message","Polished, personalized emails composed in a simple rich-text editor","/addons/form-notifications/sidebar-editor.png",{"headline":72,"description":73,"image":74},"Insert Merge Tags","Pull any response value straight into the email body or subject","/addons/form-notifications/sidebar-tags.png",{"headline":76,"description":77,"image":78},"One Rule per Destination","Each row says when it sends, only if which answers match, via which channel and to where","/addons/form-notifications/sidebar-rules.png",{"headline":80,"description":81,"image":82},"Track Deliveries","Every send, approval and failure in one log. Export to Google Sheets anytime","/addons/form-notifications/sidebar-log.png",{"title":84,"description":85,"items":86,"sendWhen":105,"links":112},"Email, chat or webhook","Pick the channel when you create a rule. Merge tags, conditions and approval work the same on every one.",[87,92,96,100],{"title":88,"description":89,"icon":90,"to":91},"Slack","Post each response to a channel. The approver can be a channel too, and decides from the message.","i-simple-icons-slack","/addons/form-notifications/docs/guides/channels",{"title":93,"description":94,"icon":95,"to":91},"Discord","A message per response in the channel you choose, written with merge tags.","i-simple-icons-discord",{"title":97,"description":98,"icon":99,"to":91},"Microsoft Teams","Posts through a Teams Workflows webhook, conditions and approval included.","i-simple-icons-microsoftteams",{"title":101,"description":102,"icon":103,"to":104},"Webhooks","Signed JSON to Zapier, Make, n8n or your own endpoint. Verify the signature, then automate anything.","i-lucide-webhook","/addons/form-notifications/docs/guides/webhooks",{"title":106,"description":107,"items":108},"Send when","Every rule sends on one event. Take each new response, or add an approval step and follow the decision instead.",[109,110,111],"Every response","Only after approval","When rejected",[113,115,117],{"label":114,"to":91},"Slack, Discord & Teams guide",{"label":116,"to":104},"Webhooks guide",{"label":118,"to":119},"Send when guide","/addons/form-notifications/docs/guides/send-when",{"title":121,"description":122,"links":123},"Ready to add your first rule?","Start your free trial today. Three templates get you going in one click.",[124],{"label":125,"to":32,"color":33,"variant":34,"size":126},"Start Free Trial","xl",{"title":84,"description":85,"items":128,"sendWhen":133,"links":135},[129,130,131,132],{"title":88,"description":89,"icon":90,"to":91},{"title":93,"description":94,"icon":95,"to":91},{"title":97,"description":98,"icon":99,"to":91},{"title":101,"description":102,"icon":103,"to":104},{"title":106,"description":107,"items":134},[109,110,111],[136,137,138],{"label":114,"to":91},{"label":116,"to":104},{"label":118,"to":119},{"title":121,"description":122,"links":140},[141],{"label":125,"to":32,"color":33,"variant":34,"size":126},"yml",null,[145,146,147,148,149,150],{"title":43,"description":44,"icon":45},{"title":47,"description":48,"icon":49},{"title":51,"description":52,"icon":53},{"title":55,"description":56,"icon":57},{"title":59,"description":60,"icon":61},{"title":63,"description":64,"icon":65},{"title":27,"description":28,"links":152},[153,154],{"label":31,"to":32,"color":33,"variant":34,"size":35},{"label":37,"to":38,"color":39,"variant":40,"size":35},{},true,"/addons/form-notifications",[159,160,161,162],{"headline":68,"description":69,"image":70},{"headline":72,"description":73,"image":74},{"headline":76,"description":77,"image":78},{"headline":80,"description":81,"image":82},{"title":24,"description":25},"addons/form-notifications/index",{"id":16},[167],{"id":16,"duration":19,"guide":20,"title":21,"description":22},"bQ3UcOwlR-weCR2FUcpodWMcksvFLBv_4LIOfaX556w",[170,173,183,224],{"title":171,"path":38,"stem":172},"Form Notifications Documentation","addons/form-notifications/docs/0.index",{"title":174,"path":175,"stem":176,"children":177},"Getting Started","/addons/form-notifications/docs/getting-started","addons/form-notifications/docs/1.getting-started/1.index",[178,179],{"title":174,"path":175,"stem":176},{"title":180,"path":181,"stem":182},"Features","/addons/form-notifications/docs/getting-started/features","addons/form-notifications/docs/1.getting-started/2.features",{"title":184,"path":185,"stem":186,"children":187,"page":8},"Guides","/addons/form-notifications/docs/guides","addons/form-notifications/docs/2.guides",[188,192,196,200,204,208,211,214,217,220],{"title":189,"path":190,"stem":191},"Rules","/addons/form-notifications/docs/guides/rules","addons/form-notifications/docs/2.guides/1.rules",{"title":193,"path":194,"stem":195},"Testing Your Rules","/addons/form-notifications/docs/guides/testing-notifications","addons/form-notifications/docs/2.guides/10.testing-notifications",{"title":197,"path":198,"stem":199},"Recipients","/addons/form-notifications/docs/guides/recipients","addons/form-notifications/docs/2.guides/2.recipients",{"title":201,"path":202,"stem":203},"Merge Tags","/addons/form-notifications/docs/guides/merge-tags","addons/form-notifications/docs/2.guides/3.merge-tags",{"title":205,"path":206,"stem":207},"Conditions (Only if)","/addons/form-notifications/docs/guides/conditional-routing","addons/form-notifications/docs/2.guides/4.conditional-routing",{"title":209,"path":20,"stem":210},"Approval","addons/form-notifications/docs/2.guides/5.approvals",{"title":212,"path":119,"stem":213},"Send When","addons/form-notifications/docs/2.guides/6.send-when",{"title":215,"path":91,"stem":216},"Slack, Discord & Microsoft Teams","addons/form-notifications/docs/2.guides/7.channels",{"title":218,"path":104,"stem":219},"Webhooks (JSON)","addons/form-notifications/docs/2.guides/8.webhooks",{"title":221,"path":222,"stem":223},"Sending & Delivery Limits","/addons/form-notifications/docs/guides/sending-and-limits","addons/form-notifications/docs/2.guides/9.sending-and-limits",{"title":225,"path":226,"stem":227,"children":228,"page":8},"Support","/addons/form-notifications/docs/support","addons/form-notifications/docs/3.support",[229,233,237,240],{"title":230,"path":231,"stem":232},"FAQ","/addons/form-notifications/docs/support/faq","addons/form-notifications/docs/3.support/1.faq",{"title":234,"path":235,"stem":236},"Troubleshooting","/addons/form-notifications/docs/support/troubleshooting","addons/form-notifications/docs/3.support/2.troubleshooting",{"title":238,"path":239},"Common Questions","/common-questions",{"title":241,"path":242},"Add-on Won't Load","/add-on-not-loading",[244,351,465,582,742,816,927,1000,1094],{"id":245,"title":246,"body":247,"channels":143,"color":250,"comingSoon":8,"cta":143,"description":248,"extension":142,"faq":143,"features":325,"featuresDescription":143,"featuresTitle":143,"hero":335,"hidden":8,"icon":252,"live":156,"logo":253,"logos":143,"marketplaceUrl":254,"meta":339,"navigation":156,"order":249,"path":340,"planFeatures":143,"promoSlides":341,"screenshots":143,"secondaryColor":251,"seo":345,"stem":346,"testimonials":143,"video":347,"videos":348,"__hash__":350},"addons_en/addons/choice-eliminator-live/index.yml","Choice Eliminator Live",{"title":246,"description":248,"hidden":8,"comingSoon":8,"live":156,"order":249,"color":250,"secondaryColor":251,"icon":252,"logo":253,"marketplaceUrl":254,"video":255,"videos":257,"seo":263,"hero":266,"features":275,"promoSlides":312},"Two people can never take the last spot",9,"indigo","violet","i-lucide-radio","/choice-eliminator-live-logo.png","https://workspace.google.com/marketplace/app/choice_eliminator_live_form_limiter_slot/873822850059",{"id":256},"UKCawmsdaw0",[258],{"id":256,"duration":259,"guide":260,"title":261,"description":262},90,"/addons/choice-eliminator-live/docs/getting-started","How to Limit Choices in Google Forms in Real Time","Set a limit on each workshop session, share the live link, then watch two respondents open it at once: one takes the last morning seat and it is crossed out on the other screen in real time.",{"title":264,"description":265},"Choice Eliminator Live - Real-Time Choice Limits for Google Forms","Set a limit on each answer choice. Respondents see the spots left update live, and a choice that fills up closes for everyone at the same moment, so two people can never take the last one.",{"title":267,"description":268,"links":269},"Real-Time Choice Limits for Google Forms","Set a limit on each choice. Respondents see the spots left count down, and a full choice closes for everyone at once.",[270,272],{"label":31,"to":271,"color":33,"variant":34,"size":35},"/addons/choice-eliminator-live/pricing",{"label":273,"to":274,"color":39,"variant":40,"size":35},"Learn More","#features",[276,280,284,288,292,296,300,304,308],{"title":277,"description":278,"icon":279},"Per-Choice Limits","Give every option in a multiple choice, checkbox or dropdown question its own number of places. Workshop seats, appointment slots, equipment, stock. Blank means unlimited.","i-lucide-sliders-horizontal",{"title":281,"description":282,"icon":283},"Limits That Hold in a Rush","Each submission claims its places in one all-or-nothing step. Two people pressing submit at the same instant cannot both take the last seat; the second is told the choice is full.","i-lucide-lock",{"title":285,"description":286,"icon":287},"Spots Left, Live","Respondents see \"3 left\" or \"Full\" on every capped choice, counting down as other people answer. A choice that fills closes on every open page at the same moment. No refresh.","i-lucide-activity",{"title":289,"description":290,"icon":291},"One Shared Total per Question","Cap a whole question as well as its options, so \"any of these five sessions, but 40 people in total\" is one number. Or cap the whole form with a total response limit.","i-lucide-sigma",{"title":293,"description":294,"icon":295},"One Link, or a QR Code","Your form is published at a live link you copy, open or print as a QR code. You keep building and editing in Google Forms; press Sync and the live form follows.","i-lucide-qr-code",{"title":297,"description":298,"icon":299},"Sign-in and One Response per Person","Ask respondents to sign in with Google, allow one response per account with editing afterwards, and restrict the form to your school's or company's email domains.","i-lucide-user-check",{"title":301,"description":302,"icon":303},"Schedule and Notifications","Open and close the live form at a set date and time, and get an email when the form fills, when a question fills, or a day before a scheduled close.","i-lucide-calendar-clock",{"title":305,"description":306,"icon":307},"Responses in a Google Sheet","Every response goes to your dashboard and, if you connect one, to a spreadsheet in your Drive as it arrives. Export as CSV any time, including after your plan ends.","i-lucide-table",{"title":309,"description":310,"icon":311},"Reset for a New Intake","Put every choice back to zero and reuse the form next term, with your limits kept exactly as they are. Deleting the old responses is a separate, off-by-default tick.","i-lucide-rotate-ccw",[313,317,321],{"headline":314,"description":315,"image":316},"Limit every choice, live","Every capped choice counts down as people submit, and a full one closes for everyone at the same instant","/addons/choice-eliminator-live/renderer-mobile.png",{"headline":318,"description":319,"image":320},"Set a limit for each choice","Set the caps in the Google Forms sidebar you already use. Blank means unlimited","/addons/choice-eliminator-live/sidebar-choices.png",{"headline":322,"description":323,"image":324},"Share one live link","Copy the live link, open it, or hand out the QR code","/addons/choice-eliminator-live/sidebar-form.png",[326,327,328,329,330,331,332,333,334],{"title":277,"description":278,"icon":279},{"title":281,"description":282,"icon":283},{"title":285,"description":286,"icon":287},{"title":289,"description":290,"icon":291},{"title":293,"description":294,"icon":295},{"title":297,"description":298,"icon":299},{"title":301,"description":302,"icon":303},{"title":305,"description":306,"icon":307},{"title":309,"description":310,"icon":311},{"title":267,"description":268,"links":336},[337,338],{"label":31,"to":271,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},"/addons/choice-eliminator-live",[342,343,344],{"headline":314,"description":315,"image":316},{"headline":318,"description":319,"image":320},{"headline":322,"description":323,"image":324},{"title":264,"description":265},"addons/choice-eliminator-live/index",{"id":256},[349],{"id":256,"duration":259,"guide":260,"title":261,"description":262},"gWUWms4OK4Ddj6bD9lqWp1xuOwIrxc7am21oEvJpI1k",{"id":352,"title":353,"body":354,"channels":143,"color":250,"comingSoon":8,"cta":436,"description":355,"extension":142,"faq":143,"features":439,"featuresDescription":143,"featuresTitle":143,"hero":445,"hidden":8,"icon":357,"live":8,"logo":358,"logos":143,"marketplaceUrl":359,"meta":449,"navigation":156,"order":356,"path":450,"planFeatures":143,"promoSlides":451,"screenshots":143,"secondaryColor":251,"seo":457,"stem":458,"testimonials":143,"video":459,"videos":460,"__hash__":464},"addons_en/addons/choice-eliminator/index.yml","Choice Eliminator",{"title":353,"description":355,"order":356,"comingSoon":8,"color":250,"secondaryColor":251,"icon":357,"logo":358,"marketplaceUrl":359,"video":360,"videos":362,"seo":380,"hero":383,"features":390,"promoSlides":410,"cta":431},"Automatically remove choices from Google Forms questions when they reach their limit",0,"i-lucide-list-x","/choice-eliminator-logo.png","https://workspace.google.com/marketplace/app/choice_eliminator/419557216711",{"id":361},"YayggsDLphQ",[363,368,374],{"id":361,"duration":364,"guide":365,"title":366,"description":367},85,"/addons/choice-eliminator/docs/guides/per-choice-limits","How to Remove Choices Automatically in Google Forms (Choice Limits)","Give each option its own limit and watch a booked time slot disappear from the form after a submission.",{"id":369,"duration":370,"guide":371,"title":372,"description":373},"MP6oiz2ng-Y",123,"/addons/choice-eliminator/docs/guides/question-total","How to Limit Total Spots per Question in Google Forms (Question Total)","Set one shared limit for all the choices in a Google Forms question, on top of the limit for each choice.",{"id":375,"duration":376,"guide":377,"title":378,"description":379},"6NQPPwUcKxw",104,"/addons/choice-eliminator/docs/guides/response-limits","How to Limit Responses, Questions or Choices in Google Forms (Choice Eliminator)","Response limit, question limit or per-choice limit: which one your Google Form needs and where to set each.",{"title":381,"description":382},"Choice Eliminator - Auto-Remove Full Options in Google Forms","Automatically eliminate choices from multiple choice, checkbox, and dropdown questions in Google Forms when they reach capacity.",{"title":384,"description":385,"links":386},"Automatically eliminate full choices from Google Forms","Set limits on individual answer choices and auto-remove them when capacity is reached",[387,389],{"label":31,"to":388,"color":33,"variant":34,"size":35},"/addons/choice-eliminator/pricing",{"label":273,"to":274,"color":39,"variant":40,"size":35},[391,394,398,402,406],{"title":392,"description":393,"icon":279},"Per-Choice Caps","Set individual response limits on any answer option — perfect for classroom slots, event seats, or time-based sign-ups where each choice has its own capacity.",{"title":395,"description":396,"icon":397},"Apply to All","One-click bulk-set every choice in a question to the same limit — huge time-saver when you have 20 workshop slots all capped at the same number. No typing the same value over and over.","i-lucide-copy-check",{"title":399,"description":400,"icon":401},"Auto-Elimination","Full choices vanish from the form automatically as responses come in — no manual editing, no double-bookings.","i-lucide-zap",{"title":403,"description":404,"icon":405},"Shuffle-Safe","Works flawlessly when Google Forms randomizes option order for each responder. Elimination tracks the choice, not the position.","i-lucide-shuffle",{"title":407,"description":408,"icon":409},"Plus Full Form Limiter Kit","Every install also includes overall response limits, scheduled open/close times, and email alerts — the complete form-control toolkit at no extra cost.","i-lucide-package-plus",[411,415,419,423,427],{"headline":412,"description":413,"image":414},"Options disappear as they fill up","Give each answer option its own limit and the add-on removes it once taken","/addons/choice-eliminator/sidebar-choices.png",{"headline":416,"description":417,"image":418},"Cap the whole question","One shared pool of spots across every option, however they split","/addons/choice-eliminator/sidebar-question-total.png",{"headline":420,"description":421,"image":422},"Show respondents how full it is","A live count in the question description, from a threshold you choose","/addons/choice-eliminator/sidebar-spots-counter.png",{"headline":424,"description":425,"image":426},"Every limit in one place","See the question total and each option's count as responses come in","/addons/choice-eliminator/sidebar-modal.png",{"headline":428,"description":429,"image":430},"Response limits and scheduling included","Close the form at a count, a date, or both","/addons/choice-eliminator/sidebar-form.png",{"title":432,"description":433,"links":434},"Ready to manage your form choices?","Start your free trial today",[435],{"label":125,"to":388,"color":33,"variant":34,"size":126},{"title":432,"description":433,"links":437},[438],{"label":125,"to":388,"color":33,"variant":34,"size":126},[440,441,442,443,444],{"title":392,"description":393,"icon":279},{"title":395,"description":396,"icon":397},{"title":399,"description":400,"icon":401},{"title":403,"description":404,"icon":405},{"title":407,"description":408,"icon":409},{"title":384,"description":385,"links":446},[447,448],{"label":31,"to":388,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},"/addons/choice-eliminator",[452,453,454,455,456],{"headline":412,"description":413,"image":414},{"headline":416,"description":417,"image":418},{"headline":420,"description":421,"image":422},{"headline":424,"description":425,"image":426},{"headline":428,"description":429,"image":430},{"title":381,"description":382},"addons/choice-eliminator/index",{"id":361},[461,462,463],{"id":361,"duration":364,"guide":365,"title":366,"description":367},{"id":369,"duration":370,"guide":371,"title":372,"description":373},{"id":375,"duration":376,"guide":377,"title":378,"description":379},"oV82Cm7Gl1A08fN6LjeS0heI5hppbBWfynf4nB8h-pY",{"id":466,"title":467,"body":468,"channels":143,"color":471,"comingSoon":8,"cta":553,"description":469,"extension":142,"faq":143,"features":556,"featuresDescription":143,"featuresTitle":143,"hero":564,"hidden":8,"icon":473,"live":8,"logo":474,"logos":143,"marketplaceUrl":475,"meta":567,"navigation":156,"order":470,"path":568,"planFeatures":143,"promoSlides":569,"screenshots":143,"secondaryColor":472,"seo":574,"stem":575,"testimonials":143,"video":576,"videos":577,"__hash__":581},"addons_en/addons/dynamic-form-choices/index.yml","Dynamic Form Choices",{"title":467,"description":469,"comingSoon":8,"order":470,"color":471,"secondaryColor":472,"icon":473,"logo":474,"marketplaceUrl":475,"video":476,"videos":478,"seo":496,"hero":499,"features":505,"promoSlides":532,"cta":548},"Run your form's choices from one sheet: options, limits, live counts",8,"fuchsia","cyan","i-lucide-table-2","/dynamic-form-choices-logo.png","https://workspace.google.com/marketplace/app/dynamic_form_choices_limiter_eliminator/456602370965",{"id":477},"6Yzva6yda6o",[479,484,490],{"id":477,"duration":480,"guide":481,"title":482,"description":483},84,"/addons/dynamic-form-choices/docs/getting-started","Google Forms: Populate Options from a Sheet (with Capacity)","Connect a choice question to a sheet, give each option a capacity, and see a new row appear on the live form.",{"id":485,"duration":486,"guide":487,"title":488,"description":489},"sAVOBmhDv0Q",94,"/addons/dynamic-form-choices/docs/guides/connecting-a-question","How to Limit Sign-Ups per Option in Google Forms (from a Sheet)","Limit sign-ups for each option in a Google Form, with the capacity typed into a Google Sheet.",{"id":491,"duration":492,"guide":493,"title":494,"description":495},"zIgUaPm71vw",106,"/addons/dynamic-form-choices/docs/guides/another-spreadsheet","How to Pull Google Forms Options from Another Spreadsheet (IMPORTRANGE)","Fill the options of a Google Form from a spreadsheet you already maintain, using IMPORTRANGE.",{"title":497,"description":498},"Dynamic Form Choices - Run Google Forms Options From One Sheet","Connect a question and Dynamic Form Choices builds an options sheet with Options, Capacity, and Taken columns. Set per-option limits, watch live counts, and options that fill up are removed automatically.",{"title":500,"description":501,"links":502},"One sheet is your dashboard: type options, set limits, watch counts","Connect a question and Dynamic Form Choices creates an options sheet with an Options, a Capacity, and a Taken column for every connected question. Your form follows it.",[503],{"label":37,"to":504,"color":33,"variant":34,"size":35},"/addons/dynamic-form-choices/docs",[506,509,513,516,519,524,528],{"title":507,"description":508,"icon":307},"One Options Sheet per Form","Connect a question and the add-on creates a \"{Form title} - Dynamic Form Choices\" spreadsheet in your Drive, with one tab per connected question laid out Options, Capacity, Taken.",{"title":510,"description":511,"icon":512},"Type Options in Column A","Column A is yours. Type the choices you want and they land in the form on the next sync, without copy-pasting a single value.","i-lucide-list",{"title":514,"description":515,"icon":287},"Live Counts in Column C","Column C (Taken) shows how many people picked each option, refreshed after every response. No formulas to build.",{"title":517,"description":518,"icon":357},"Per-Option Capacity","Set a limit in column B. Blank means unlimited, 0 keeps an option closed, and an option that fills up is removed automatically. Raise the number and it comes back.",{"title":520,"description":521,"icon":522,"to":523},"Start in Google Sheets","Open the add-on in the spreadsheet you already have, pick the column with your options, and choose the form to feed. It adds Capacity and Taken beside your data and writes nowhere else.","i-lucide-file-spreadsheet","/addons/dynamic-form-choices/docs/guides/start-from-a-spreadsheet",{"title":525,"description":526,"icon":527,"to":493},"Options Already in Another Sheet?","Leave your roster where it is and pull it into column A with =IMPORTRANGE(). Your form follows the source, and the add-on still reads only its own sheet.","i-lucide-table-properties",{"title":529,"description":530,"icon":531},"Syncs on Its Own","Questions sync when the sidebar opens, every hour, and on every form submission. There is a \"Sync all questions\" button for when you want it now.","i-lucide-refresh-cw",[533,537,541,545],{"headline":534,"description":535,"image":536},"One sheet runs your form choices","Every connected question gets a tab with Options, Capacity and Taken","/addons/dynamic-form-choices/sidebar-questions.png",{"headline":538,"description":539,"image":540},"Options bow out when they fill up","Set a capacity in column B and the add-on removes what is full","/addons/dynamic-form-choices/sidebar-capacity.png",{"headline":542,"description":543,"image":544},"Every question on the form","Connect as many as you need, each with its own tab in the sheet","/addons/dynamic-form-choices/sidebar-scale.png",{"headline":428,"description":546,"image":547},"Close your form at a count, a date, or both","/addons/dynamic-form-choices/sidebar-form.png",{"title":549,"description":433,"links":550},"Ready to run your choices from one sheet?",[551],{"label":125,"to":552,"color":33,"variant":34,"size":126},"/addons/dynamic-form-choices/pricing",{"title":549,"description":433,"links":554},[555],{"label":125,"to":552,"color":33,"variant":34,"size":126},[557,558,559,560,561,562,563],{"title":507,"description":508,"icon":307},{"title":510,"description":511,"icon":512},{"title":514,"description":515,"icon":287},{"title":517,"description":518,"icon":357},{"title":520,"description":521,"icon":522,"to":523},{"title":525,"description":526,"icon":527,"to":493},{"title":529,"description":530,"icon":531},{"title":500,"description":501,"links":565},[566],{"label":37,"to":504,"color":33,"variant":34,"size":35},{},"/addons/dynamic-form-choices",[570,571,572,573],{"headline":534,"description":535,"image":536},{"headline":538,"description":539,"image":540},{"headline":542,"description":543,"image":544},{"headline":428,"description":546,"image":547},{"title":497,"description":498},"addons/dynamic-form-choices/index",{"id":477},[578,579,580],{"id":477,"duration":480,"guide":481,"title":482,"description":483},{"id":485,"duration":486,"guide":487,"title":488,"description":489},{"id":491,"duration":492,"guide":493,"title":494,"description":495},"LlfuaM2YiGordq39EYDjD3lTyLqyDI122IkEVzzPhI0",{"id":583,"title":584,"body":585,"channels":143,"color":251,"comingSoon":8,"cta":702,"description":586,"extension":142,"faq":705,"features":712,"featuresDescription":612,"featuresTitle":611,"hero":725,"hidden":8,"icon":589,"live":8,"logo":590,"logos":143,"marketplaceUrl":591,"meta":729,"navigation":156,"order":587,"path":730,"planFeatures":143,"promoSlides":731,"screenshots":143,"secondaryColor":588,"seo":736,"stem":737,"testimonials":143,"video":738,"videos":739,"__hash__":741},"addons_en/addons/form-builder/index.yml","Form Builder",{"title":584,"description":586,"hidden":8,"comingSoon":8,"order":587,"color":251,"secondaryColor":588,"icon":589,"logo":590,"marketplaceUrl":591,"video":592,"videos":594,"seo":600,"hero":603,"featuresTitle":611,"featuresDescription":612,"features":613,"faq":661,"promoSlides":680,"cta":697},"Paste text, upload a file or pick one from Drive, get the questions as a Google Form",12,"purple","i-lucide-square-sparkles","/form-builder-logo.png","https://workspace.google.com/marketplace/app/form_builder/232127044206",{"id":593},"JGexNnVKGfk",[595],{"id":593,"duration":596,"guide":597,"title":598,"description":599},125,"/addons/form-builder/docs/getting-started","How to Import Questions into Google Forms from a PDF, Doc or Photo (Form Builder)","Upload a one-page PDF, check the questions it found with their types and options, make one required and skip another, then add them to the form as ordinary Google Forms questions.",{"title":601,"description":602},"Form Builder - AI PDF, Doc and Photo to Google Form","Import questions into Google Forms from a PDF, Word file, photo, pasted text, Google Doc or an old form. AI reads the questions, you check them before anything is added. 5 free builds a month.",{"title":604,"description":605,"links":606},"Create a Google Form from Anything","A syllabus, a PDF, a Word file, a photo of a paper form, a Google Doc or last year's form. AI reads the questions out of it in seconds, you check and edit them, then add them to your form. 5 free builds a month.",[607,610],{"label":608,"to":609,"color":33,"variant":34,"size":35},"Get Started Free","/addons/form-builder/pricing",{"label":273,"to":274,"color":39,"variant":40,"size":35},"From what you have to a Google Form","Paste it, upload it or pick it from Drive, check the questions, add them.",[614,618,622,626,630,634,638,642,646,649,653,657],{"title":615,"description":616,"icon":617},"Paste Any Text","A syllabus, an event brief, a worksheet or a list of questions from an email. The questions, their answer options and the sections are read out of it. No retyping, no copying question by question.","i-lucide-clipboard-paste",{"title":619,"description":620,"icon":621},"A Photo of a Paper Form","Take a photo or a screenshot of a paper form, worksheet or quiz. Printed and handwritten questions are read from the picture.","i-lucide-camera",{"title":623,"description":624,"icon":625},"Upload a File or Pick One from Drive","Drop in a PDF, Word, PowerPoint, text, Markdown, CSV or JSON file up to 3 MB, or choose a Google Doc, Sheet, Slides deck or PDF from Drive. Only the file you pick is read, the rest of your Drive stays out of sight.","i-lucide-upload",{"title":627,"description":628,"icon":629},"Import Questions from Another Form","Pick an existing Google Form in Drive and its questions come across as they are, types, options and required settings included. Reuse last year's form without rebuilding it. Copying a form never uses a build.","i-lucide-copy",{"title":631,"description":632,"icon":633},"AI Reads the Questions for You","It works out which lines are questions, which are answer options and where a new section starts, and picks the matching type. It usually takes 10 to 30 seconds. Any assumptions it made are listed for you to check.","i-lucide-sparkles",{"title":635,"description":636,"icon":637},"Check Before Anything Is Added","Every question found is listed with its type and options. Drag to reorder, skip the ones you do not want, or open one to change its wording, type, options, description or whether it is required. Then add them all with one button.","i-lucide-list-checks",{"title":639,"description":640,"icon":641},"Every Question Type Google Forms Has","Short answer, paragraph, multiple choice, checkboxes, dropdown, linear scale, date, time, and sections to split a long form into pages.","i-lucide-layout-list",{"title":643,"description":644,"icon":645},"Add at the End or the Start","Works on an empty form or one that already has questions. Put the new ones after the existing questions or before them, and choose whether the form takes the title and description found in your source.","i-lucide-arrow-down-to-line",{"title":647,"description":648,"icon":65},"Every Result Is Kept","Each text or file you read stays with the form as a result. Close the dialog, come back next week and carry on where you stopped. Read the same source again and it tells you, and offers the questions you already have.",{"title":650,"description":651,"icon":652},"What People Build with It","A course survey from a syllabus. A registration form from an event brief. Test questions from a worksheet or a question bank. A feedback form from meeting notes. A new intake form from an old one.","i-lucide-graduation-cap",{"title":654,"description":655,"icon":656},"A Native Google Form","The questions are written straight into your Google Form as ordinary questions. Edit them in Google's own editor, share the form the way you always do. Nothing to keep running.","i-lucide-file-check",{"title":658,"description":659,"icon":660},"Then Set How It Runs","Once the questions are in, Form Limiter caps responses, Form Scheduler opens and closes the form on time, and Form Timer gives each respondent a time limit.","i-lucide-blocks",{"title":662,"description":663,"items":664},"Good to know","What Form Builder does, and what it leaves to you.",[665,668,671,674,677],{"label":666,"content":667},"Is it free?","Yes, for 5 builds a month, with no credit card and no trial that runs out. A build is one text, file, photo or Drive file read into questions. A read that fails or finds no questions does not count, and copying another Google Form is always free. The count resets on the 1st of every month. A paid plan gives unlimited builds.",{"label":669,"content":670},"Does it make quizzes with answer keys?","No. It adds the questions to your form, but it does not set answer keys or point values. Turn the form into a quiz in Google Forms and mark the answers there.",{"label":672,"content":673},"Can it write a form from a one-line prompt?","No. Form Builder works from a source you already have, such as text, a file, a photo or another form. It reads the questions that are in it rather than making new ones up.",{"label":675,"content":676},"What is not imported?","Grids, file upload questions, images and videos. Everything else comes across as one of the question types listed above, and you can add the rest in Google Forms afterwards.",{"label":678,"content":679},"What happens to my text or file?","It is sent to Skyfield's server and on to an AI model run by a third-party provider, which reads the questions out of it. To check quality, the text and the questions it returned are kept for a limited time and then deleted. They are not used to train AI models. A Google Form you copy is read through Google's Forms API and is never sent to us. The details are in our privacy policy.",[681,685,689,693],{"headline":682,"description":683,"image":684},"Create a form from anything","Paste text, upload a file or pick one from Google Drive","/addons/form-builder/anything.png",{"headline":686,"description":687,"image":688},"PDF, Word, Docs, Slides or a photo","Upload a file or a photo, or pick a Doc, Sheet or Slides deck from Google Drive","/addons/form-builder/files.png",{"headline":690,"description":691,"image":692},"Check every question first","Drag to reorder, hide what you do not need, edit the wording, type and options","/addons/form-builder/review.png",{"headline":694,"description":695,"image":696},"Reuse questions from an old form","Pick a Google Form in Drive and its questions are copied as they are","/addons/form-builder/form-copy.png",{"title":698,"description":699,"links":700},"Turn your next document into a form","5 free builds every month. No credit card, no trial that runs out.",[701],{"label":608,"to":609,"color":33,"variant":34,"size":126},{"title":698,"description":699,"links":703},[704],{"label":608,"to":609,"color":33,"variant":34,"size":126},{"title":662,"description":663,"items":706},[707,708,709,710,711],{"label":666,"content":667},{"label":669,"content":670},{"label":672,"content":673},{"label":675,"content":676},{"label":678,"content":679},[713,714,715,716,717,718,719,720,721,722,723,724],{"title":615,"description":616,"icon":617},{"title":619,"description":620,"icon":621},{"title":623,"description":624,"icon":625},{"title":627,"description":628,"icon":629},{"title":631,"description":632,"icon":633},{"title":635,"description":636,"icon":637},{"title":639,"description":640,"icon":641},{"title":643,"description":644,"icon":645},{"title":647,"description":648,"icon":65},{"title":650,"description":651,"icon":652},{"title":654,"description":655,"icon":656},{"title":658,"description":659,"icon":660},{"title":604,"description":605,"links":726},[727,728],{"label":608,"to":609,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},"/addons/form-builder",[732,733,734,735],{"headline":682,"description":683,"image":684},{"headline":686,"description":687,"image":688},{"headline":690,"description":691,"image":692},{"headline":694,"description":695,"image":696},{"title":601,"description":602},"addons/form-builder/index",{"id":593},[740],{"id":593,"duration":596,"guide":597,"title":598,"description":599},"m0aKURZmy05wqtnQkhBFIuw_mbTGuSbBjrVJ0zwvGv8",{"id":743,"title":744,"body":745,"channels":143,"color":748,"comingSoon":8,"cta":143,"description":746,"extension":142,"faq":143,"features":793,"featuresDescription":143,"featuresTitle":143,"hero":803,"hidden":8,"icon":252,"live":156,"logo":750,"logos":143,"marketplaceUrl":751,"meta":807,"navigation":156,"order":747,"path":808,"planFeatures":143,"promoSlides":809,"screenshots":143,"secondaryColor":749,"seo":813,"stem":814,"testimonials":143,"video":143,"videos":143,"__hash__":815},"addons_en/addons/form-limiter-live/index.yml","Form Limiter Live",{"title":744,"description":746,"hidden":8,"comingSoon":8,"live":156,"order":747,"color":748,"secondaryColor":749,"icon":252,"logo":750,"marketplaceUrl":751,"seo":752,"hero":755,"features":762,"promoSlides":782},"The form closes at exactly your number, not one over",10,"teal","sky","/form-limiter-live-logo.png","https://workspace.google.com/marketplace/app/form_limiter_live_response_cap_choice_el/124307042713",{"title":753,"description":754},"Form Limiter Live - Real-Time Response Cap for Google Forms","Set a response limit that cannot be overshot. Respondents answer at a live link where every submission counts at the moment it lands, so the form closes at exactly the number you set, even when hundreds submit at once.",{"title":756,"description":757,"links":758},"Close Your Google Form at an Exact Number","Set a response cap. Every submission counts the moment it lands, so the form closes at exactly your number, not one over.",[759,761],{"label":31,"to":760,"color":33,"variant":34,"size":35},"/addons/form-limiter-live/pricing",{"label":273,"to":274,"color":39,"variant":40,"size":35},[763,767,770,773,775,777,778,780,781],{"title":764,"description":765,"icon":766},"Auto-Close at an Exact Number","Set the number of responses your form takes. On the live link the count is checked at the moment of submission, so the form closes at exactly that number. Not one over.","i-lucide-hash",{"title":768,"description":769,"icon":283},"No Overbooking When Everyone Submits at Once","Each submission claims its place in one all-or-nothing step. Two people pressing submit at the same instant cannot both take the last one; the second is told the form is full.",{"title":771,"description":772,"icon":279},"Set a Limit for Each Choice","Give any option in a multiple choice, checkbox or dropdown question its own number of places too. Workshop seats, time slots, equipment. Blank means unlimited.",{"title":774,"description":286,"icon":287},"Show Spots Left on Every Choice",{"title":776,"description":294,"icon":295},"Share One Live Link or QR Code",{"title":297,"description":298,"icon":299},{"title":301,"description":779,"icon":303},"Open and close the live form at a set date and time, and get an email when the form fills or a day before a scheduled close.",{"title":305,"description":306,"icon":307},{"title":309,"description":310,"icon":311},[783,787,790],{"headline":784,"description":785,"image":786},"Auto-close at an exact number","The form closes at exactly the number you set, even when everyone submits in the same minute","/addons/form-limiter-live/renderer-cap.png",{"headline":318,"description":788,"image":789},"Give any option its own number of places, and respondents watch the spots left count down","/addons/form-limiter-live/sidebar-choices.png",{"headline":322,"description":791,"image":792},"Copy it, open it, or hand out the QR code","/addons/form-limiter-live/sidebar-form.png",[794,795,796,797,798,799,800,801,802],{"title":764,"description":765,"icon":766},{"title":768,"description":769,"icon":283},{"title":771,"description":772,"icon":279},{"title":774,"description":286,"icon":287},{"title":776,"description":294,"icon":295},{"title":297,"description":298,"icon":299},{"title":301,"description":779,"icon":303},{"title":305,"description":306,"icon":307},{"title":309,"description":310,"icon":311},{"title":756,"description":757,"links":804},[805,806],{"label":31,"to":760,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},"/addons/form-limiter-live",[810,811,812],{"headline":784,"description":785,"image":786},{"headline":318,"description":788,"image":789},{"headline":322,"description":791,"image":792},{"title":753,"description":754},"addons/form-limiter-live/index","LEaZzWqpFMbJCRA5enF1ys4jdnDyhPwCsCv8QqwM6Ck",{"id":817,"title":818,"body":819,"channels":143,"color":748,"comingSoon":8,"cta":898,"description":820,"extension":142,"faq":143,"features":901,"featuresDescription":143,"featuresTitle":143,"hero":908,"hidden":8,"icon":822,"live":8,"logo":823,"logos":143,"marketplaceUrl":824,"meta":912,"navigation":156,"order":821,"path":913,"planFeatures":143,"promoSlides":914,"screenshots":143,"secondaryColor":588,"seo":919,"stem":920,"testimonials":143,"video":921,"videos":922,"__hash__":926},"addons_en/addons/form-limiter/index.yml","Form Limiter",{"title":818,"description":820,"order":821,"color":748,"secondaryColor":588,"icon":822,"logo":823,"marketplaceUrl":824,"video":825,"videos":827,"seo":845,"hero":848,"features":856,"promoSlides":877,"cta":894},"Set response limits on your Google Forms and automatically close them when reached",1,"i-lucide-clipboard-check","/form-limiter-logo.png","https://workspace.google.com/marketplace/app/form_limiter/282559638656",{"id":826},"kNCT_qzgnKI",[828,833,839],{"id":826,"duration":829,"guide":830,"title":831,"description":832},80,"/addons/form-limiter/docs/guides/response-limits","How to Limit Responses in Google Forms (Auto-Close)","Set a maximum number of responses and watch a real form close itself at the limit.",{"id":834,"duration":835,"guide":836,"title":837,"description":838},"IEOQIHKQCCw",210,"/addons/form-limiter/docs/getting-started/features","Form Limiter for Google Forms: A Tour of Every Feature","Response limits, scheduling, email alerts, a QR code and per-choice limits, all in one pass through the panel.",{"id":840,"duration":841,"guide":842,"title":843,"description":844},"JZdwuMUnf4M",87,"/addons/form-limiter/docs/guides/date-limits","How to Close a Google Form Automatically on a Date (Scheduled Close)","Close a Google Form automatically on a date and time, with your own closing message.",{"title":846,"description":847},"Form Limiter - Response Limit Control for Google Forms","Easily set response limits on Google Forms. Automatically close forms, schedule limits, and get notified when limits are reached.",{"title":849,"description":850,"links":851},"Take control of your Google Forms responses","Set limits, schedule closures, and never worry about over-collection again",[852,854],{"label":31,"to":853,"color":33,"variant":34,"size":35},"/addons/form-limiter/pricing",{"label":37,"to":855,"color":39,"variant":40,"size":35},"/addons/form-limiter/docs",[857,860,864,867,871,874],{"title":858,"description":859,"icon":766},"Response Limits","Set maximum response limits per form. Forms automatically close when the limit is reached.",{"title":861,"description":862,"icon":863},"Scheduled Limits","Set time-based limits. Automatically close forms at specific dates and times.","i-lucide-clock",{"title":865,"description":866,"icon":45},"Email Notifications","Receive email alerts when your form reaches the response limit.",{"title":868,"description":869,"icon":870},"Choice Elimination","Automatically remove choices from multiple choice, checkbox, or dropdown questions when they reach their limit.","i-lucide-list-minus",{"title":872,"description":873,"icon":295},"QR Code Sharing","Generate QR codes for your forms. Download as PNG or share directly via social platforms.",{"title":875,"description":876,"icon":401},"Easy Setup","Install once, works everywhere. No coding required. Set up limits in seconds.",[878,882,886,890],{"headline":879,"description":880,"image":881},"Set Response Limits","Control exactly how many responses your form accepts","/addons/form-limiter/sidebar-form.png",{"headline":883,"description":884,"image":885},"Question-Level Control","Limit individual choices and eliminate options automatically","/addons/form-limiter/sidebar-questions.png",{"headline":887,"description":888,"image":889},"Track Responses","Monitor form activity and response counts in real-time","/addons/form-limiter/sidebar-modal.png",{"headline":891,"description":892,"image":893},"Send Notifications","Get email alerts when limits are reached","/addons/form-limiter/sidebar-notifications.png",{"title":895,"description":433,"links":896},"Ready to limit your form responses?",[897],{"label":125,"to":853,"color":33,"variant":34,"size":126},{"title":895,"description":433,"links":899},[900],{"label":125,"to":853,"color":33,"variant":34,"size":126},[902,903,904,905,906,907],{"title":858,"description":859,"icon":766},{"title":861,"description":862,"icon":863},{"title":865,"description":866,"icon":45},{"title":868,"description":869,"icon":870},{"title":872,"description":873,"icon":295},{"title":875,"description":876,"icon":401},{"title":849,"description":850,"links":909},[910,911],{"label":31,"to":853,"color":33,"variant":34,"size":35},{"label":37,"to":855,"color":39,"variant":40,"size":35},{},"/addons/form-limiter",[915,916,917,918],{"headline":879,"description":880,"image":881},{"headline":883,"description":884,"image":885},{"headline":887,"description":888,"image":889},{"headline":891,"description":892,"image":893},{"title":846,"description":847},"addons/form-limiter/index",{"id":826},[923,924,925],{"id":826,"duration":829,"guide":830,"title":831,"description":832},{"id":834,"duration":835,"guide":836,"title":837,"description":838},{"id":840,"duration":841,"guide":842,"title":843,"description":844},"-hh281Co-9zWv9aeypopkCfD3j9LCxu6SaB8Y5ChLV0",{"id":4,"title":5,"body":928,"channels":964,"color":10,"comingSoon":8,"cta":976,"description":7,"extension":142,"faq":143,"features":979,"featuresDescription":143,"featuresTitle":143,"hero":986,"hidden":8,"icon":12,"live":8,"logo":13,"logos":143,"marketplaceUrl":14,"meta":990,"navigation":156,"order":9,"path":157,"planFeatures":143,"promoSlides":991,"screenshots":143,"secondaryColor":11,"seo":996,"stem":164,"testimonials":143,"video":997,"videos":998,"__hash__":168},{"title":5,"description":7,"comingSoon":8,"hidden":8,"order":9,"color":10,"secondaryColor":11,"icon":12,"logo":13,"marketplaceUrl":14,"video":929,"videos":930,"seo":932,"hero":933,"features":937,"promoSlides":944,"channels":949,"cta":961},{"id":16},[931],{"id":16,"duration":19,"guide":20,"title":21,"description":22},{"title":24,"description":25},{"title":27,"description":28,"links":934},[935,936],{"label":31,"to":32,"color":33,"variant":34,"size":35},{"label":37,"to":38,"color":39,"variant":40,"size":35},[938,939,940,941,942,943],{"title":43,"description":44,"icon":45},{"title":47,"description":48,"icon":49},{"title":51,"description":52,"icon":53},{"title":55,"description":56,"icon":57},{"title":59,"description":60,"icon":61},{"title":63,"description":64,"icon":65},[945,946,947,948],{"headline":68,"description":69,"image":70},{"headline":72,"description":73,"image":74},{"headline":76,"description":77,"image":78},{"headline":80,"description":81,"image":82},{"title":84,"description":85,"items":950,"sendWhen":955,"links":957},[951,952,953,954],{"title":88,"description":89,"icon":90,"to":91},{"title":93,"description":94,"icon":95,"to":91},{"title":97,"description":98,"icon":99,"to":91},{"title":101,"description":102,"icon":103,"to":104},{"title":106,"description":107,"items":956},[109,110,111],[958,959,960],{"label":114,"to":91},{"label":116,"to":104},{"label":118,"to":119},{"title":121,"description":122,"links":962},[963],{"label":125,"to":32,"color":33,"variant":34,"size":126},{"title":84,"description":85,"items":965,"sendWhen":970,"links":972},[966,967,968,969],{"title":88,"description":89,"icon":90,"to":91},{"title":93,"description":94,"icon":95,"to":91},{"title":97,"description":98,"icon":99,"to":91},{"title":101,"description":102,"icon":103,"to":104},{"title":106,"description":107,"items":971},[109,110,111],[973,974,975],{"label":114,"to":91},{"label":116,"to":104},{"label":118,"to":119},{"title":121,"description":122,"links":977},[978],{"label":125,"to":32,"color":33,"variant":34,"size":126},[980,981,982,983,984,985],{"title":43,"description":44,"icon":45},{"title":47,"description":48,"icon":49},{"title":51,"description":52,"icon":53},{"title":55,"description":56,"icon":57},{"title":59,"description":60,"icon":61},{"title":63,"description":64,"icon":65},{"title":27,"description":28,"links":987},[988,989],{"label":31,"to":32,"color":33,"variant":34,"size":35},{"label":37,"to":38,"color":39,"variant":40,"size":35},{},[992,993,994,995],{"headline":68,"description":69,"image":70},{"headline":72,"description":73,"image":74},{"headline":76,"description":77,"image":78},{"headline":80,"description":81,"image":82},{"title":24,"description":25},{"id":16},[999],{"id":16,"duration":19,"guide":20,"title":21,"description":22},{"id":1001,"title":1002,"body":1003,"channels":143,"color":1006,"comingSoon":8,"cta":1067,"description":1004,"extension":142,"faq":143,"features":1070,"featuresDescription":143,"featuresTitle":143,"hero":1077,"hidden":8,"icon":303,"live":8,"logo":1007,"logos":143,"marketplaceUrl":1008,"meta":1081,"navigation":156,"order":1005,"path":1082,"planFeatures":143,"promoSlides":1083,"screenshots":143,"secondaryColor":749,"seo":1088,"stem":1089,"testimonials":143,"video":1090,"videos":1091,"__hash__":1093},"addons_en/addons/form-scheduler/index.yml","Form Scheduler",{"title":1002,"description":1004,"hidden":8,"comingSoon":8,"order":1005,"color":1006,"secondaryColor":749,"icon":303,"logo":1007,"marketplaceUrl":1008,"video":1009,"videos":1011,"seo":1016,"hero":1019,"features":1027,"promoSlides":1046,"cta":1063},"Control when your Google Forms open and close using Google Calendar",2,"amber","/form-scheduler-logo.png","https://workspace.google.com/marketplace/app/form_scheduler/1057255307304",{"id":1010},"xKh-LFD0acc",[1012],{"id":1010,"duration":376,"guide":1013,"title":1014,"description":1015},"/addons/form-scheduler/docs/guides/calendar-scheduling","How to Open and Close a Google Form with Google Calendar","Connect a calendar, watch a real event open the form, take a booking, and see the form close itself when the event ends.",{"title":1017,"description":1018},"Form Scheduler - Google Calendar Scheduling for Google Forms","Control when your Google Forms open and close using Google Calendar events. Recurring schedules, response limits, and email notifications.",{"title":1020,"description":1021,"links":1022},"Schedule your Google Forms with Google Calendar","Connect a calendar, add events, and your form opens and closes automatically. That simple.",[1023,1025],{"label":31,"to":1024,"color":33,"variant":34,"size":35},"/addons/form-scheduler/pricing",{"label":37,"to":1026,"color":39,"variant":40,"size":35},"/addons/form-scheduler/docs",[1028,1032,1036,1038,1040,1044],{"title":1029,"description":1030,"icon":1031},"Calendar Integration","Connect a Google Calendar. Any event on it opens your form — when the event ends, the form closes.","i-lucide-calendar",{"title":1033,"description":1034,"icon":1035},"Recurring Events","Add recurring events in Google Calendar and your form follows automatically. No extra setup.","i-lucide-repeat",{"title":858,"description":1037,"icon":766},"Limit responses per event window. Form closes automatically when the limit is reached.",{"title":865,"description":1039,"icon":45},"Get notified when your form opens, closes, or hits a response limit.",{"title":1041,"description":1042,"icon":1043},"Edit From Anywhere","Change your schedule from Google Calendar on any device. The add-on picks up changes automatically.","i-lucide-smartphone",{"title":875,"description":1045,"icon":401},"Connect a calendar, add events, done. No coding required.",[1047,1051,1055,1059],{"headline":1048,"description":1049,"image":1050},"Google Calendar integration","Recurring events, one-time events — your form follows automatically","/addons/form-scheduler/sidebar-form.png",{"headline":1052,"description":1053,"image":1054},"Per-event response limits","Cap registrations per session — form closes at the limit","/addons/form-scheduler/sidebar-response-limits.png",{"headline":1056,"description":1057,"image":1058},"Email notifications","Get notified when forms open, close, or hit a limit","/addons/form-scheduler/sidebar-notifications.png",{"headline":1060,"description":1061,"image":1062},"QR code sharing","Generate QR codes and share links instantly","/addons/form-scheduler/sidebar-share.png",{"title":1064,"description":433,"links":1065},"Ready to automate your form scheduling?",[1066],{"label":125,"to":1024,"color":33,"variant":34,"size":126},{"title":1064,"description":433,"links":1068},[1069],{"label":125,"to":1024,"color":33,"variant":34,"size":126},[1071,1072,1073,1074,1075,1076],{"title":1029,"description":1030,"icon":1031},{"title":1033,"description":1034,"icon":1035},{"title":858,"description":1037,"icon":766},{"title":865,"description":1039,"icon":45},{"title":1041,"description":1042,"icon":1043},{"title":875,"description":1045,"icon":401},{"title":1020,"description":1021,"links":1078},[1079,1080],{"label":31,"to":1024,"color":33,"variant":34,"size":35},{"label":37,"to":1026,"color":39,"variant":40,"size":35},{},"/addons/form-scheduler",[1084,1085,1086,1087],{"headline":1048,"description":1049,"image":1050},{"headline":1052,"description":1053,"image":1054},{"headline":1056,"description":1057,"image":1058},{"headline":1060,"description":1061,"image":1062},{"title":1017,"description":1018},"addons/form-scheduler/index",{"id":1010},[1092],{"id":1010,"duration":376,"guide":1013,"title":1014,"description":1015},"pGkYSVNH9plVpS8kmjOedtSVd-YBYkP0APpI7YyABCQ",{"id":1095,"title":1096,"body":1097,"channels":143,"color":1006,"comingSoon":8,"cta":143,"description":1098,"extension":142,"faq":143,"features":1176,"featuresDescription":143,"featuresTitle":143,"hero":1187,"hidden":8,"icon":1101,"live":156,"logo":1102,"logos":143,"marketplaceUrl":1103,"meta":1191,"navigation":156,"order":1099,"path":1192,"planFeatures":143,"promoSlides":1193,"screenshots":143,"secondaryColor":1100,"seo":1199,"stem":1200,"testimonials":143,"video":1201,"videos":1202,"__hash__":1204},"addons_en/addons/form-timer/index.yml","Form Timer",{"title":1096,"description":1098,"hidden":8,"comingSoon":8,"live":156,"order":1099,"color":1006,"secondaryColor":1100,"icon":1101,"logo":1102,"marketplaceUrl":1103,"video":1104,"videos":1106,"seo":1112,"hero":1115,"features":1122,"promoSlides":1156},"A time limit your Google Form keeps, down to the second",11,"orange","i-lucide-timer","/form-timer-logo.png","https://workspace.google.com/marketplace/app/form_timer_time_limit_countdown_for_quiz/102468036705",{"id":1105},"z_KfvFrAHNk",[1107],{"id":1105,"duration":1108,"guide":1109,"title":1110,"description":1111},114,"/addons/form-timer/docs/getting-started","How to Create a Timed Quiz in Google Forms (Form Timer)","Set a time limit on a quiz and choose what happens at zero, then watch a respondent press Start and answer three of five questions before the clock runs out: the quiz submits itself and the score comes straight back.",{"title":1113,"description":1114},"Form Timer - Timer and Time Limits for Google Forms","Put a countdown timer on a Google Form. Respondents press Start, the clock runs on our server, and at zero the form submits or locks. One attempt per person, a focus record, and the time each person took beside their answers.",{"title":1116,"description":1117,"links":1118},"A Timer for Google Forms","Set a time limit. Respondents get a countdown, and at zero the form submits or locks.",[1119,1121],{"label":31,"to":1120,"color":33,"variant":34,"size":35},"/addons/form-timer/pricing",{"label":273,"to":274,"color":39,"variant":40,"size":35},[1123,1126,1130,1133,1137,1140,1144,1148,1151,1154],{"title":1124,"description":1125,"icon":1101},"A Countdown Respondents Can See","Set anything from ten seconds to twenty-four hours. A bar across the top of the page shows the time left and fills as it passes, on every phone and laptop, without anything to install.",{"title":1127,"description":1128,"icon":1129},"Late Responses Are Refused","The deadline is worked out on our server from the moment each person presses Start. A response that arrives after it is not flagged or marked late. It is not accepted.","i-lucide-shield-check",{"title":1131,"description":1132,"icon":299},"One Attempt per Person","Ask respondents to sign in with Google and each account gets one timed session. Closing the tab and opening the link again resumes the same clock. You can reset an attempt for one person from the dashboard.",{"title":1134,"description":1135,"icon":1136},"A Focus Record","See how many times each respondent left the page and for how long, next to their answers. Respondents are told on the Start screen that this is recorded.","i-lucide-eye",{"title":1138,"description":1139,"icon":637},"Only the People on Your List","Restrict the form to a list of email addresses, or to your school's or company's domain, so a shared link cannot be passed along.",{"title":1141,"description":1142,"icon":1143},"Hidden Timer","Time the form without showing the countdown, when a visible clock would add pressure you do not want. The limit still holds and the time taken is still recorded.","i-lucide-eye-off",{"title":1145,"description":1146,"icon":1147},"A Start Screen with Your Instructions","Before the clock runs, respondents see the form's title, how long they will have, what happens at zero, and anything you want to tell them. Nothing is timed until they press Start.","i-lucide-play",{"title":1149,"description":1150,"icon":303},"Open and Close at a Set Time","Open the live form at a date and time so everyone starts in the same window, and close it after a deadline so nothing arrives afterwards.",{"title":1152,"description":1153,"icon":307},"Time Taken, Next to Every Answer","When each person started and how long they took land beside their answers in your dashboard, in the CSV export and in a Google Sheet if you connect one.",{"title":293,"description":1155,"icon":295},"Your form is published at a live link you copy, open or print as a QR code. You keep building and editing in Google Forms; press Sync and the live form follows. The add-on offers to close the original so nobody answers around the clock.",[1157,1161,1165,1169,1173],{"headline":1158,"description":1159,"image":1160},"A timer for Google Forms","A countdown across the top of the page, kept on our server so it cannot be reset","/addons/form-timer/countdown.png",{"headline":1162,"description":1163,"image":1164},"Nothing is timed until they press Start","The title, the time limit, what happens at zero and your instructions, before the clock runs","/addons/form-timer/start-screen.png",{"headline":1166,"description":1167,"image":1168},"Set the limit in one dialog","Duration, submit or lock at zero, hidden timer, one attempt per person, focus record","/addons/form-timer/settings-timer.png",{"headline":1170,"description":1171,"image":1172},"Time taken, next to every answer","When each person started and how long they took, in your dashboard, CSV and Google Sheet","/addons/form-timer/responses.png",{"headline":322,"description":1174,"image":1175},"Copy it, open it, or hand out the QR code, and let the add-on close the original form","/addons/form-timer/sidebar-form.png",[1177,1178,1179,1180,1181,1182,1183,1184,1185,1186],{"title":1124,"description":1125,"icon":1101},{"title":1127,"description":1128,"icon":1129},{"title":1131,"description":1132,"icon":299},{"title":1134,"description":1135,"icon":1136},{"title":1138,"description":1139,"icon":637},{"title":1141,"description":1142,"icon":1143},{"title":1145,"description":1146,"icon":1147},{"title":1149,"description":1150,"icon":303},{"title":1152,"description":1153,"icon":307},{"title":293,"description":1155,"icon":295},{"title":1116,"description":1117,"links":1188},[1189,1190],{"label":31,"to":1120,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},"/addons/form-timer",[1194,1195,1196,1197,1198],{"headline":1158,"description":1159,"image":1160},{"headline":1162,"description":1163,"image":1164},{"headline":1166,"description":1167,"image":1168},{"headline":1170,"description":1171,"image":1172},{"headline":322,"description":1174,"image":1175},{"title":1113,"description":1114},"addons/form-timer/index",{"id":1105},[1203],{"id":1105,"duration":1108,"guide":1109,"title":1110,"description":1111},"HmMrCc1Ly4x_KCi0yVE5dRTaNNt1ShdaIIWDq_up-GI",{"id":4,"title":5,"body":1206,"channels":1242,"color":10,"comingSoon":8,"cta":1254,"description":7,"extension":142,"faq":143,"features":1257,"featuresDescription":143,"featuresTitle":143,"hero":1264,"hidden":8,"icon":12,"live":8,"logo":13,"logos":143,"marketplaceUrl":14,"meta":1268,"navigation":156,"order":9,"path":157,"planFeatures":143,"promoSlides":1269,"screenshots":143,"secondaryColor":11,"seo":1274,"stem":164,"testimonials":143,"video":1275,"videos":1276,"__hash__":168},{"title":5,"description":7,"comingSoon":8,"hidden":8,"order":9,"color":10,"secondaryColor":11,"icon":12,"logo":13,"marketplaceUrl":14,"video":1207,"videos":1208,"seo":1210,"hero":1211,"features":1215,"promoSlides":1222,"channels":1227,"cta":1239},{"id":16},[1209],{"id":16,"duration":19,"guide":20,"title":21,"description":22},{"title":24,"description":25},{"title":27,"description":28,"links":1212},[1213,1214],{"label":31,"to":32,"color":33,"variant":34,"size":35},{"label":37,"to":38,"color":39,"variant":40,"size":35},[1216,1217,1218,1219,1220,1221],{"title":43,"description":44,"icon":45},{"title":47,"description":48,"icon":49},{"title":51,"description":52,"icon":53},{"title":55,"description":56,"icon":57},{"title":59,"description":60,"icon":61},{"title":63,"description":64,"icon":65},[1223,1224,1225,1226],{"headline":68,"description":69,"image":70},{"headline":72,"description":73,"image":74},{"headline":76,"description":77,"image":78},{"headline":80,"description":81,"image":82},{"title":84,"description":85,"items":1228,"sendWhen":1233,"links":1235},[1229,1230,1231,1232],{"title":88,"description":89,"icon":90,"to":91},{"title":93,"description":94,"icon":95,"to":91},{"title":97,"description":98,"icon":99,"to":91},{"title":101,"description":102,"icon":103,"to":104},{"title":106,"description":107,"items":1234},[109,110,111],[1236,1237,1238],{"label":114,"to":91},{"label":116,"to":104},{"label":118,"to":119},{"title":121,"description":122,"links":1240},[1241],{"label":125,"to":32,"color":33,"variant":34,"size":126},{"title":84,"description":85,"items":1243,"sendWhen":1248,"links":1250},[1244,1245,1246,1247],{"title":88,"description":89,"icon":90,"to":91},{"title":93,"description":94,"icon":95,"to":91},{"title":97,"description":98,"icon":99,"to":91},{"title":101,"description":102,"icon":103,"to":104},{"title":106,"description":107,"items":1249},[109,110,111],[1251,1252,1253],{"label":114,"to":91},{"label":116,"to":104},{"label":118,"to":119},{"title":121,"description":122,"links":1255},[1256],{"label":125,"to":32,"color":33,"variant":34,"size":126},[1258,1259,1260,1261,1262,1263],{"title":43,"description":44,"icon":45},{"title":47,"description":48,"icon":49},{"title":51,"description":52,"icon":53},{"title":55,"description":56,"icon":57},{"title":59,"description":60,"icon":61},{"title":63,"description":64,"icon":65},{"title":27,"description":28,"links":1265},[1266,1267],{"label":31,"to":32,"color":33,"variant":34,"size":35},{"label":37,"to":38,"color":39,"variant":40,"size":35},{},[1270,1271,1272,1273],{"headline":68,"description":69,"image":70},{"headline":72,"description":73,"image":74},{"headline":76,"description":77,"image":78},{"headline":80,"description":81,"image":82},{"title":24,"description":25},{"id":16},[1277],{"id":16,"duration":19,"guide":20,"title":21,"description":22},[1279,1326,1379,1432,1507,1548,1601,1674,1723],{"id":245,"title":246,"body":1280,"channels":143,"color":250,"comingSoon":8,"cta":143,"description":248,"extension":142,"faq":143,"features":1303,"featuresDescription":143,"featuresTitle":143,"hero":1313,"hidden":8,"icon":252,"live":156,"logo":253,"logos":143,"marketplaceUrl":254,"meta":1317,"navigation":156,"order":249,"path":340,"planFeatures":143,"promoSlides":1318,"screenshots":143,"secondaryColor":251,"seo":1322,"stem":346,"testimonials":143,"video":1323,"videos":1324,"__hash__":350},{"title":246,"description":248,"hidden":8,"comingSoon":8,"live":156,"order":249,"color":250,"secondaryColor":251,"icon":252,"logo":253,"marketplaceUrl":254,"video":1281,"videos":1282,"seo":1284,"hero":1285,"features":1289,"promoSlides":1299},{"id":256},[1283],{"id":256,"duration":259,"guide":260,"title":261,"description":262},{"title":264,"description":265},{"title":267,"description":268,"links":1286},[1287,1288],{"label":31,"to":271,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},[1290,1291,1292,1293,1294,1295,1296,1297,1298],{"title":277,"description":278,"icon":279},{"title":281,"description":282,"icon":283},{"title":285,"description":286,"icon":287},{"title":289,"description":290,"icon":291},{"title":293,"description":294,"icon":295},{"title":297,"description":298,"icon":299},{"title":301,"description":302,"icon":303},{"title":305,"description":306,"icon":307},{"title":309,"description":310,"icon":311},[1300,1301,1302],{"headline":314,"description":315,"image":316},{"headline":318,"description":319,"image":320},{"headline":322,"description":323,"image":324},[1304,1305,1306,1307,1308,1309,1310,1311,1312],{"title":277,"description":278,"icon":279},{"title":281,"description":282,"icon":283},{"title":285,"description":286,"icon":287},{"title":289,"description":290,"icon":291},{"title":293,"description":294,"icon":295},{"title":297,"description":298,"icon":299},{"title":301,"description":302,"icon":303},{"title":305,"description":306,"icon":307},{"title":309,"description":310,"icon":311},{"title":267,"description":268,"links":1314},[1315,1316],{"label":31,"to":271,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},[1319,1320,1321],{"headline":314,"description":315,"image":316},{"headline":318,"description":319,"image":320},{"headline":322,"description":323,"image":324},{"title":264,"description":265},{"id":256},[1325],{"id":256,"duration":259,"guide":260,"title":261,"description":262},{"id":352,"title":353,"body":1327,"channels":143,"color":250,"comingSoon":8,"cta":1353,"description":355,"extension":142,"faq":143,"features":1356,"featuresDescription":143,"featuresTitle":143,"hero":1362,"hidden":8,"icon":357,"live":8,"logo":358,"logos":143,"marketplaceUrl":359,"meta":1366,"navigation":156,"order":356,"path":450,"planFeatures":143,"promoSlides":1367,"screenshots":143,"secondaryColor":251,"seo":1373,"stem":458,"testimonials":143,"video":1374,"videos":1375,"__hash__":464},{"title":353,"description":355,"order":356,"comingSoon":8,"color":250,"secondaryColor":251,"icon":357,"logo":358,"marketplaceUrl":359,"video":1328,"videos":1329,"seo":1333,"hero":1334,"features":1338,"promoSlides":1344,"cta":1350},{"id":361},[1330,1331,1332],{"id":361,"duration":364,"guide":365,"title":366,"description":367},{"id":369,"duration":370,"guide":371,"title":372,"description":373},{"id":375,"duration":376,"guide":377,"title":378,"description":379},{"title":381,"description":382},{"title":384,"description":385,"links":1335},[1336,1337],{"label":31,"to":388,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},[1339,1340,1341,1342,1343],{"title":392,"description":393,"icon":279},{"title":395,"description":396,"icon":397},{"title":399,"description":400,"icon":401},{"title":403,"description":404,"icon":405},{"title":407,"description":408,"icon":409},[1345,1346,1347,1348,1349],{"headline":412,"description":413,"image":414},{"headline":416,"description":417,"image":418},{"headline":420,"description":421,"image":422},{"headline":424,"description":425,"image":426},{"headline":428,"description":429,"image":430},{"title":432,"description":433,"links":1351},[1352],{"label":125,"to":388,"color":33,"variant":34,"size":126},{"title":432,"description":433,"links":1354},[1355],{"label":125,"to":388,"color":33,"variant":34,"size":126},[1357,1358,1359,1360,1361],{"title":392,"description":393,"icon":279},{"title":395,"description":396,"icon":397},{"title":399,"description":400,"icon":401},{"title":403,"description":404,"icon":405},{"title":407,"description":408,"icon":409},{"title":384,"description":385,"links":1363},[1364,1365],{"label":31,"to":388,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},[1368,1369,1370,1371,1372],{"headline":412,"description":413,"image":414},{"headline":416,"description":417,"image":418},{"headline":420,"description":421,"image":422},{"headline":424,"description":425,"image":426},{"headline":428,"description":429,"image":430},{"title":381,"description":382},{"id":361},[1376,1377,1378],{"id":361,"duration":364,"guide":365,"title":366,"description":367},{"id":369,"duration":370,"guide":371,"title":372,"description":373},{"id":375,"duration":376,"guide":377,"title":378,"description":379},{"id":466,"title":467,"body":1380,"channels":143,"color":471,"comingSoon":8,"cta":1406,"description":469,"extension":142,"faq":143,"features":1409,"featuresDescription":143,"featuresTitle":143,"hero":1417,"hidden":8,"icon":473,"live":8,"logo":474,"logos":143,"marketplaceUrl":475,"meta":1420,"navigation":156,"order":470,"path":568,"planFeatures":143,"promoSlides":1421,"screenshots":143,"secondaryColor":472,"seo":1426,"stem":575,"testimonials":143,"video":1427,"videos":1428,"__hash__":581},{"title":467,"description":469,"comingSoon":8,"order":470,"color":471,"secondaryColor":472,"icon":473,"logo":474,"marketplaceUrl":475,"video":1381,"videos":1382,"seo":1386,"hero":1387,"features":1390,"promoSlides":1398,"cta":1403},{"id":477},[1383,1384,1385],{"id":477,"duration":480,"guide":481,"title":482,"description":483},{"id":485,"duration":486,"guide":487,"title":488,"description":489},{"id":491,"duration":492,"guide":493,"title":494,"description":495},{"title":497,"description":498},{"title":500,"description":501,"links":1388},[1389],{"label":37,"to":504,"color":33,"variant":34,"size":35},[1391,1392,1393,1394,1395,1396,1397],{"title":507,"description":508,"icon":307},{"title":510,"description":511,"icon":512},{"title":514,"description":515,"icon":287},{"title":517,"description":518,"icon":357},{"title":520,"description":521,"icon":522,"to":523},{"title":525,"description":526,"icon":527,"to":493},{"title":529,"description":530,"icon":531},[1399,1400,1401,1402],{"headline":534,"description":535,"image":536},{"headline":538,"description":539,"image":540},{"headline":542,"description":543,"image":544},{"headline":428,"description":546,"image":547},{"title":549,"description":433,"links":1404},[1405],{"label":125,"to":552,"color":33,"variant":34,"size":126},{"title":549,"description":433,"links":1407},[1408],{"label":125,"to":552,"color":33,"variant":34,"size":126},[1410,1411,1412,1413,1414,1415,1416],{"title":507,"description":508,"icon":307},{"title":510,"description":511,"icon":512},{"title":514,"description":515,"icon":287},{"title":517,"description":518,"icon":357},{"title":520,"description":521,"icon":522,"to":523},{"title":525,"description":526,"icon":527,"to":493},{"title":529,"description":530,"icon":531},{"title":500,"description":501,"links":1418},[1419],{"label":37,"to":504,"color":33,"variant":34,"size":35},{},[1422,1423,1424,1425],{"headline":534,"description":535,"image":536},{"headline":538,"description":539,"image":540},{"headline":542,"description":543,"image":544},{"headline":428,"description":546,"image":547},{"title":497,"description":498},{"id":477},[1429,1430,1431],{"id":477,"duration":480,"guide":481,"title":482,"description":483},{"id":485,"duration":486,"guide":487,"title":488,"description":489},{"id":491,"duration":492,"guide":493,"title":494,"description":495},{"id":583,"title":584,"body":1433,"channels":143,"color":251,"comingSoon":8,"cta":1470,"description":586,"extension":142,"faq":1473,"features":1480,"featuresDescription":612,"featuresTitle":611,"hero":1493,"hidden":8,"icon":589,"live":8,"logo":590,"logos":143,"marketplaceUrl":591,"meta":1497,"navigation":156,"order":587,"path":730,"planFeatures":143,"promoSlides":1498,"screenshots":143,"secondaryColor":588,"seo":1503,"stem":737,"testimonials":143,"video":1504,"videos":1505,"__hash__":741},{"title":584,"description":586,"hidden":8,"comingSoon":8,"order":587,"color":251,"secondaryColor":588,"icon":589,"logo":590,"marketplaceUrl":591,"video":1434,"videos":1435,"seo":1437,"hero":1438,"featuresTitle":611,"featuresDescription":612,"features":1442,"faq":1455,"promoSlides":1462,"cta":1467},{"id":593},[1436],{"id":593,"duration":596,"guide":597,"title":598,"description":599},{"title":601,"description":602},{"title":604,"description":605,"links":1439},[1440,1441],{"label":608,"to":609,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},[1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454],{"title":615,"description":616,"icon":617},{"title":619,"description":620,"icon":621},{"title":623,"description":624,"icon":625},{"title":627,"description":628,"icon":629},{"title":631,"description":632,"icon":633},{"title":635,"description":636,"icon":637},{"title":639,"description":640,"icon":641},{"title":643,"description":644,"icon":645},{"title":647,"description":648,"icon":65},{"title":650,"description":651,"icon":652},{"title":654,"description":655,"icon":656},{"title":658,"description":659,"icon":660},{"title":662,"description":663,"items":1456},[1457,1458,1459,1460,1461],{"label":666,"content":667},{"label":669,"content":670},{"label":672,"content":673},{"label":675,"content":676},{"label":678,"content":679},[1463,1464,1465,1466],{"headline":682,"description":683,"image":684},{"headline":686,"description":687,"image":688},{"headline":690,"description":691,"image":692},{"headline":694,"description":695,"image":696},{"title":698,"description":699,"links":1468},[1469],{"label":608,"to":609,"color":33,"variant":34,"size":126},{"title":698,"description":699,"links":1471},[1472],{"label":608,"to":609,"color":33,"variant":34,"size":126},{"title":662,"description":663,"items":1474},[1475,1476,1477,1478,1479],{"label":666,"content":667},{"label":669,"content":670},{"label":672,"content":673},{"label":675,"content":676},{"label":678,"content":679},[1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492],{"title":615,"description":616,"icon":617},{"title":619,"description":620,"icon":621},{"title":623,"description":624,"icon":625},{"title":627,"description":628,"icon":629},{"title":631,"description":632,"icon":633},{"title":635,"description":636,"icon":637},{"title":639,"description":640,"icon":641},{"title":643,"description":644,"icon":645},{"title":647,"description":648,"icon":65},{"title":650,"description":651,"icon":652},{"title":654,"description":655,"icon":656},{"title":658,"description":659,"icon":660},{"title":604,"description":605,"links":1494},[1495,1496],{"label":608,"to":609,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},[1499,1500,1501,1502],{"headline":682,"description":683,"image":684},{"headline":686,"description":687,"image":688},{"headline":690,"description":691,"image":692},{"headline":694,"description":695,"image":696},{"title":601,"description":602},{"id":593},[1506],{"id":593,"duration":596,"guide":597,"title":598,"description":599},{"id":743,"title":744,"body":1508,"channels":143,"color":748,"comingSoon":8,"cta":143,"description":746,"extension":142,"faq":143,"features":1528,"featuresDescription":143,"featuresTitle":143,"hero":1538,"hidden":8,"icon":252,"live":156,"logo":750,"logos":143,"marketplaceUrl":751,"meta":1542,"navigation":156,"order":747,"path":808,"planFeatures":143,"promoSlides":1543,"screenshots":143,"secondaryColor":749,"seo":1547,"stem":814,"testimonials":143,"video":143,"videos":143,"__hash__":815},{"title":744,"description":746,"hidden":8,"comingSoon":8,"live":156,"order":747,"color":748,"secondaryColor":749,"icon":252,"logo":750,"marketplaceUrl":751,"seo":1509,"hero":1510,"features":1514,"promoSlides":1524},{"title":753,"description":754},{"title":756,"description":757,"links":1511},[1512,1513],{"label":31,"to":760,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},[1515,1516,1517,1518,1519,1520,1521,1522,1523],{"title":764,"description":765,"icon":766},{"title":768,"description":769,"icon":283},{"title":771,"description":772,"icon":279},{"title":774,"description":286,"icon":287},{"title":776,"description":294,"icon":295},{"title":297,"description":298,"icon":299},{"title":301,"description":779,"icon":303},{"title":305,"description":306,"icon":307},{"title":309,"description":310,"icon":311},[1525,1526,1527],{"headline":784,"description":785,"image":786},{"headline":318,"description":788,"image":789},{"headline":322,"description":791,"image":792},[1529,1530,1531,1532,1533,1534,1535,1536,1537],{"title":764,"description":765,"icon":766},{"title":768,"description":769,"icon":283},{"title":771,"description":772,"icon":279},{"title":774,"description":286,"icon":287},{"title":776,"description":294,"icon":295},{"title":297,"description":298,"icon":299},{"title":301,"description":779,"icon":303},{"title":305,"description":306,"icon":307},{"title":309,"description":310,"icon":311},{"title":756,"description":757,"links":1539},[1540,1541],{"label":31,"to":760,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},[1544,1545,1546],{"headline":784,"description":785,"image":786},{"headline":318,"description":788,"image":789},{"headline":322,"description":791,"image":792},{"title":753,"description":754},{"id":817,"title":818,"body":1549,"channels":143,"color":748,"comingSoon":8,"cta":1575,"description":820,"extension":142,"faq":143,"features":1578,"featuresDescription":143,"featuresTitle":143,"hero":1585,"hidden":8,"icon":822,"live":8,"logo":823,"logos":143,"marketplaceUrl":824,"meta":1589,"navigation":156,"order":821,"path":913,"planFeatures":143,"promoSlides":1590,"screenshots":143,"secondaryColor":588,"seo":1595,"stem":920,"testimonials":143,"video":1596,"videos":1597,"__hash__":926},{"title":818,"description":820,"order":821,"color":748,"secondaryColor":588,"icon":822,"logo":823,"marketplaceUrl":824,"video":1550,"videos":1551,"seo":1555,"hero":1556,"features":1560,"promoSlides":1567,"cta":1572},{"id":826},[1552,1553,1554],{"id":826,"duration":829,"guide":830,"title":831,"description":832},{"id":834,"duration":835,"guide":836,"title":837,"description":838},{"id":840,"duration":841,"guide":842,"title":843,"description":844},{"title":846,"description":847},{"title":849,"description":850,"links":1557},[1558,1559],{"label":31,"to":853,"color":33,"variant":34,"size":35},{"label":37,"to":855,"color":39,"variant":40,"size":35},[1561,1562,1563,1564,1565,1566],{"title":858,"description":859,"icon":766},{"title":861,"description":862,"icon":863},{"title":865,"description":866,"icon":45},{"title":868,"description":869,"icon":870},{"title":872,"description":873,"icon":295},{"title":875,"description":876,"icon":401},[1568,1569,1570,1571],{"headline":879,"description":880,"image":881},{"headline":883,"description":884,"image":885},{"headline":887,"description":888,"image":889},{"headline":891,"description":892,"image":893},{"title":895,"description":433,"links":1573},[1574],{"label":125,"to":853,"color":33,"variant":34,"size":126},{"title":895,"description":433,"links":1576},[1577],{"label":125,"to":853,"color":33,"variant":34,"size":126},[1579,1580,1581,1582,1583,1584],{"title":858,"description":859,"icon":766},{"title":861,"description":862,"icon":863},{"title":865,"description":866,"icon":45},{"title":868,"description":869,"icon":870},{"title":872,"description":873,"icon":295},{"title":875,"description":876,"icon":401},{"title":849,"description":850,"links":1586},[1587,1588],{"label":31,"to":853,"color":33,"variant":34,"size":35},{"label":37,"to":855,"color":39,"variant":40,"size":35},{},[1591,1592,1593,1594],{"headline":879,"description":880,"image":881},{"headline":883,"description":884,"image":885},{"headline":887,"description":888,"image":889},{"headline":891,"description":892,"image":893},{"title":846,"description":847},{"id":826},[1598,1599,1600],{"id":826,"duration":829,"guide":830,"title":831,"description":832},{"id":834,"duration":835,"guide":836,"title":837,"description":838},{"id":840,"duration":841,"guide":842,"title":843,"description":844},{"id":4,"title":5,"body":1602,"channels":1638,"color":10,"comingSoon":8,"cta":1650,"description":7,"extension":142,"faq":143,"features":1653,"featuresDescription":143,"featuresTitle":143,"hero":1660,"hidden":8,"icon":12,"live":8,"logo":13,"logos":143,"marketplaceUrl":14,"meta":1664,"navigation":156,"order":9,"path":157,"planFeatures":143,"promoSlides":1665,"screenshots":143,"secondaryColor":11,"seo":1670,"stem":164,"testimonials":143,"video":1671,"videos":1672,"__hash__":168},{"title":5,"description":7,"comingSoon":8,"hidden":8,"order":9,"color":10,"secondaryColor":11,"icon":12,"logo":13,"marketplaceUrl":14,"video":1603,"videos":1604,"seo":1606,"hero":1607,"features":1611,"promoSlides":1618,"channels":1623,"cta":1635},{"id":16},[1605],{"id":16,"duration":19,"guide":20,"title":21,"description":22},{"title":24,"description":25},{"title":27,"description":28,"links":1608},[1609,1610],{"label":31,"to":32,"color":33,"variant":34,"size":35},{"label":37,"to":38,"color":39,"variant":40,"size":35},[1612,1613,1614,1615,1616,1617],{"title":43,"description":44,"icon":45},{"title":47,"description":48,"icon":49},{"title":51,"description":52,"icon":53},{"title":55,"description":56,"icon":57},{"title":59,"description":60,"icon":61},{"title":63,"description":64,"icon":65},[1619,1620,1621,1622],{"headline":68,"description":69,"image":70},{"headline":72,"description":73,"image":74},{"headline":76,"description":77,"image":78},{"headline":80,"description":81,"image":82},{"title":84,"description":85,"items":1624,"sendWhen":1629,"links":1631},[1625,1626,1627,1628],{"title":88,"description":89,"icon":90,"to":91},{"title":93,"description":94,"icon":95,"to":91},{"title":97,"description":98,"icon":99,"to":91},{"title":101,"description":102,"icon":103,"to":104},{"title":106,"description":107,"items":1630},[109,110,111],[1632,1633,1634],{"label":114,"to":91},{"label":116,"to":104},{"label":118,"to":119},{"title":121,"description":122,"links":1636},[1637],{"label":125,"to":32,"color":33,"variant":34,"size":126},{"title":84,"description":85,"items":1639,"sendWhen":1644,"links":1646},[1640,1641,1642,1643],{"title":88,"description":89,"icon":90,"to":91},{"title":93,"description":94,"icon":95,"to":91},{"title":97,"description":98,"icon":99,"to":91},{"title":101,"description":102,"icon":103,"to":104},{"title":106,"description":107,"items":1645},[109,110,111],[1647,1648,1649],{"label":114,"to":91},{"label":116,"to":104},{"label":118,"to":119},{"title":121,"description":122,"links":1651},[1652],{"label":125,"to":32,"color":33,"variant":34,"size":126},[1654,1655,1656,1657,1658,1659],{"title":43,"description":44,"icon":45},{"title":47,"description":48,"icon":49},{"title":51,"description":52,"icon":53},{"title":55,"description":56,"icon":57},{"title":59,"description":60,"icon":61},{"title":63,"description":64,"icon":65},{"title":27,"description":28,"links":1661},[1662,1663],{"label":31,"to":32,"color":33,"variant":34,"size":35},{"label":37,"to":38,"color":39,"variant":40,"size":35},{},[1666,1667,1668,1669],{"headline":68,"description":69,"image":70},{"headline":72,"description":73,"image":74},{"headline":76,"description":77,"image":78},{"headline":80,"description":81,"image":82},{"title":24,"description":25},{"id":16},[1673],{"id":16,"duration":19,"guide":20,"title":21,"description":22},{"id":1001,"title":1002,"body":1675,"channels":143,"color":1006,"comingSoon":8,"cta":1699,"description":1004,"extension":142,"faq":143,"features":1702,"featuresDescription":143,"featuresTitle":143,"hero":1709,"hidden":8,"icon":303,"live":8,"logo":1007,"logos":143,"marketplaceUrl":1008,"meta":1713,"navigation":156,"order":1005,"path":1082,"planFeatures":143,"promoSlides":1714,"screenshots":143,"secondaryColor":749,"seo":1719,"stem":1089,"testimonials":143,"video":1720,"videos":1721,"__hash__":1093},{"title":1002,"description":1004,"hidden":8,"comingSoon":8,"order":1005,"color":1006,"secondaryColor":749,"icon":303,"logo":1007,"marketplaceUrl":1008,"video":1676,"videos":1677,"seo":1679,"hero":1680,"features":1684,"promoSlides":1691,"cta":1696},{"id":1010},[1678],{"id":1010,"duration":376,"guide":1013,"title":1014,"description":1015},{"title":1017,"description":1018},{"title":1020,"description":1021,"links":1681},[1682,1683],{"label":31,"to":1024,"color":33,"variant":34,"size":35},{"label":37,"to":1026,"color":39,"variant":40,"size":35},[1685,1686,1687,1688,1689,1690],{"title":1029,"description":1030,"icon":1031},{"title":1033,"description":1034,"icon":1035},{"title":858,"description":1037,"icon":766},{"title":865,"description":1039,"icon":45},{"title":1041,"description":1042,"icon":1043},{"title":875,"description":1045,"icon":401},[1692,1693,1694,1695],{"headline":1048,"description":1049,"image":1050},{"headline":1052,"description":1053,"image":1054},{"headline":1056,"description":1057,"image":1058},{"headline":1060,"description":1061,"image":1062},{"title":1064,"description":433,"links":1697},[1698],{"label":125,"to":1024,"color":33,"variant":34,"size":126},{"title":1064,"description":433,"links":1700},[1701],{"label":125,"to":1024,"color":33,"variant":34,"size":126},[1703,1704,1705,1706,1707,1708],{"title":1029,"description":1030,"icon":1031},{"title":1033,"description":1034,"icon":1035},{"title":858,"description":1037,"icon":766},{"title":865,"description":1039,"icon":45},{"title":1041,"description":1042,"icon":1043},{"title":875,"description":1045,"icon":401},{"title":1020,"description":1021,"links":1710},[1711,1712],{"label":31,"to":1024,"color":33,"variant":34,"size":35},{"label":37,"to":1026,"color":39,"variant":40,"size":35},{},[1715,1716,1717,1718],{"headline":1048,"description":1049,"image":1050},{"headline":1052,"description":1053,"image":1054},{"headline":1056,"description":1057,"image":1058},{"headline":1060,"description":1061,"image":1062},{"title":1017,"description":1018},{"id":1010},[1722],{"id":1010,"duration":376,"guide":1013,"title":1014,"description":1015},{"id":1095,"title":1096,"body":1724,"channels":143,"color":1006,"comingSoon":8,"cta":143,"description":1098,"extension":142,"faq":143,"features":1750,"featuresDescription":143,"featuresTitle":143,"hero":1761,"hidden":8,"icon":1101,"live":156,"logo":1102,"logos":143,"marketplaceUrl":1103,"meta":1765,"navigation":156,"order":1099,"path":1192,"planFeatures":143,"promoSlides":1766,"screenshots":143,"secondaryColor":1100,"seo":1772,"stem":1200,"testimonials":143,"video":1773,"videos":1774,"__hash__":1204},{"title":1096,"description":1098,"hidden":8,"comingSoon":8,"live":156,"order":1099,"color":1006,"secondaryColor":1100,"icon":1101,"logo":1102,"marketplaceUrl":1103,"video":1725,"videos":1726,"seo":1728,"hero":1729,"features":1733,"promoSlides":1744},{"id":1105},[1727],{"id":1105,"duration":1108,"guide":1109,"title":1110,"description":1111},{"title":1113,"description":1114},{"title":1116,"description":1117,"links":1730},[1731,1732],{"label":31,"to":1120,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},[1734,1735,1736,1737,1738,1739,1740,1741,1742,1743],{"title":1124,"description":1125,"icon":1101},{"title":1127,"description":1128,"icon":1129},{"title":1131,"description":1132,"icon":299},{"title":1134,"description":1135,"icon":1136},{"title":1138,"description":1139,"icon":637},{"title":1141,"description":1142,"icon":1143},{"title":1145,"description":1146,"icon":1147},{"title":1149,"description":1150,"icon":303},{"title":1152,"description":1153,"icon":307},{"title":293,"description":1155,"icon":295},[1745,1746,1747,1748,1749],{"headline":1158,"description":1159,"image":1160},{"headline":1162,"description":1163,"image":1164},{"headline":1166,"description":1167,"image":1168},{"headline":1170,"description":1171,"image":1172},{"headline":322,"description":1174,"image":1175},[1751,1752,1753,1754,1755,1756,1757,1758,1759,1760],{"title":1124,"description":1125,"icon":1101},{"title":1127,"description":1128,"icon":1129},{"title":1131,"description":1132,"icon":299},{"title":1134,"description":1135,"icon":1136},{"title":1138,"description":1139,"icon":637},{"title":1141,"description":1142,"icon":1143},{"title":1145,"description":1146,"icon":1147},{"title":1149,"description":1150,"icon":303},{"title":1152,"description":1153,"icon":307},{"title":293,"description":1155,"icon":295},{"title":1116,"description":1117,"links":1762},[1763,1764],{"label":31,"to":1120,"color":33,"variant":34,"size":35},{"label":273,"to":274,"color":39,"variant":40,"size":35},{},[1767,1768,1769,1770,1771],{"headline":1158,"description":1159,"image":1160},{"headline":1162,"description":1163,"image":1164},{"headline":1166,"description":1167,"image":1168},{"headline":1170,"description":1171,"image":1172},{"headline":322,"description":1174,"image":1175},{"title":1113,"description":1114},{"id":1105},[1775],{"id":1105,"duration":1108,"guide":1109,"title":1110,"description":1111},{"id":1777,"title":218,"body":1778,"description":3106,"extension":3107,"meta":3108,"navigation":156,"path":104,"seo":3109,"stem":219,"__hash__":3110},"addonDocs_en/addons/form-notifications/docs/2.guides/8.webhooks.md",{"type":1779,"value":1780,"toc":3098},"minimark",[1781,1790,1795,1847,1854,1864,1868,1880,2266,2338,2347,2351,2369,2375,2390,2393,2398,2864,2869,2939,2946,2950,2953,2995,3002,3006,3049,3052,3094],[1782,1783,1784,1785,1789],"p",{},"A ",[1786,1787,1788],"strong",{},"Webhook"," rule POSTs every matching response as JSON to a URL you provide. Use it to feed a CRM, a spreadsheet tool, your own server, or an automation platform such as Zapier, Make or n8n.",[1791,1792,1794],"h2",{"id":1793},"create-a-webhook-rule","Create a webhook rule",[1796,1797,1798,1808,1827,1837],"ol",{},[1799,1800,1801,1802,1805,1806],"li",{},"Click ",[1786,1803,1804],{},"+ New rule"," and pick ",[1786,1807,1788],{},[1799,1809,1810,1813,1814,1816,1817,1819,1820,1822,1823,1826],{},[1786,1811,1812],{},"When",": keep ",[1786,1815,109],{},", or pick ",[1786,1818,110],{}," / ",[1786,1821,111],{}," and set an approver. Add ",[1786,1824,1825],{},"Only if"," conditions to send only matching responses",[1799,1828,1829,1832,1833,1836],{},[1786,1830,1831],{},"To",": paste your endpoint URL (HTTPS only). There is no Message step: the rule sends a fixed JSON payload. ",[1786,1834,1835],{},"Show payload"," under the URL shows it with your form's questions, ready to copy",[1799,1838,1801,1839,1842,1843,1846],{},[1786,1840,1841],{},"Create rule",", then copy the ",[1786,1844,1845],{},"signing secret"," shown once (see below)",[1782,1848,1849],{},[1850,1851],"img",{"alt":1852,"src":1853},"Editing a webhook rule: the signing secret line and Send test","/addons/form-notifications/rule-webhook-payload.png",[1782,1855,1856,1859,1860,1863],{},[1786,1857,1858],{},"Send test"," sends a sample payload, signed, to the endpoint and shows the HTTP status it returned. Saved URLs are stored encrypted and shown masked; click ",[1786,1861,1862],{},"Replace"," to paste a new one.",[1791,1865,1867],{"id":1866},"the-payload","The payload",[1782,1869,1870,1871,1875,1876,1879],{},"Each request is ",[1872,1873,1874],"code",{},"POST",", ",[1872,1877,1878],{},"Content-Type: application/json",", with this body:",[1881,1882,1887],"pre",{"className":1883,"code":1884,"language":1885,"meta":1886,"style":1886},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"version\": 1,\n  \"event\": \"submitted\",\n  \"form\": { \"id\": \"1AbC...\", \"name\": \"Workshop sign-up\" },\n  \"response\": {\n    \"id\": \"a3f1...\",\n    \"submittedAt\": \"2026-01-31T09:30:00.000Z\",\n    \"respondentEmail\": \"respondent@example.com\",\n    \"answers\": [\n      { \"questionId\": \"q1\", \"title\": \"Your name\", \"value\": \"Ada Lovelace\" },\n      { \"questionId\": \"q3\", \"title\": \"Department\", \"value\": \"Ops\" }\n    ]\n  },\n  \"rule\": { \"id\": \"rule id\", \"name\": \"Zapier: new lead\" }\n}\n","json","",[1872,1888,1889,1897,1919,1942,1995,2010,2031,2052,2072,2086,2145,2201,2206,2212,2260],{"__ignoreMap":1886},[1890,1891,1893],"span",{"class":1892,"line":821},"line",[1890,1894,1896],{"class":1895},"sMK4o","{\n",[1890,1898,1899,1902,1906,1909,1912,1916],{"class":1892,"line":1005},[1890,1900,1901],{"class":1895},"  \"",[1890,1903,1905],{"class":1904},"spNyl","version",[1890,1907,1908],{"class":1895},"\"",[1890,1910,1911],{"class":1895},":",[1890,1913,1915],{"class":1914},"sbssI"," 1",[1890,1917,1918],{"class":1895},",\n",[1890,1920,1922,1924,1927,1929,1931,1934,1938,1940],{"class":1892,"line":1921},3,[1890,1923,1901],{"class":1895},[1890,1925,1926],{"class":1904},"event",[1890,1928,1908],{"class":1895},[1890,1930,1911],{"class":1895},[1890,1932,1933],{"class":1895}," \"",[1890,1935,1937],{"class":1936},"sfazB","submitted",[1890,1939,1908],{"class":1895},[1890,1941,1918],{"class":1895},[1890,1943,1944,1946,1949,1951,1953,1956,1958,1962,1964,1966,1968,1971,1973,1976,1978,1981,1983,1985,1987,1990,1992],{"class":1892,"line":9},[1890,1945,1901],{"class":1895},[1890,1947,1948],{"class":1904},"form",[1890,1950,1908],{"class":1895},[1890,1952,1911],{"class":1895},[1890,1954,1955],{"class":1895}," {",[1890,1957,1933],{"class":1895},[1890,1959,1961],{"class":1960},"sBMFI","id",[1890,1963,1908],{"class":1895},[1890,1965,1911],{"class":1895},[1890,1967,1933],{"class":1895},[1890,1969,1970],{"class":1936},"1AbC...",[1890,1972,1908],{"class":1895},[1890,1974,1975],{"class":1895},",",[1890,1977,1933],{"class":1895},[1890,1979,1980],{"class":1960},"name",[1890,1982,1908],{"class":1895},[1890,1984,1911],{"class":1895},[1890,1986,1933],{"class":1895},[1890,1988,1989],{"class":1936},"Workshop sign-up",[1890,1991,1908],{"class":1895},[1890,1993,1994],{"class":1895}," },\n",[1890,1996,1998,2000,2003,2005,2007],{"class":1892,"line":1997},5,[1890,1999,1901],{"class":1895},[1890,2001,2002],{"class":1904},"response",[1890,2004,1908],{"class":1895},[1890,2006,1911],{"class":1895},[1890,2008,2009],{"class":1895}," {\n",[1890,2011,2013,2016,2018,2020,2022,2024,2027,2029],{"class":1892,"line":2012},6,[1890,2014,2015],{"class":1895},"    \"",[1890,2017,1961],{"class":1960},[1890,2019,1908],{"class":1895},[1890,2021,1911],{"class":1895},[1890,2023,1933],{"class":1895},[1890,2025,2026],{"class":1936},"a3f1...",[1890,2028,1908],{"class":1895},[1890,2030,1918],{"class":1895},[1890,2032,2034,2036,2039,2041,2043,2045,2048,2050],{"class":1892,"line":2033},7,[1890,2035,2015],{"class":1895},[1890,2037,2038],{"class":1960},"submittedAt",[1890,2040,1908],{"class":1895},[1890,2042,1911],{"class":1895},[1890,2044,1933],{"class":1895},[1890,2046,2047],{"class":1936},"2026-01-31T09:30:00.000Z",[1890,2049,1908],{"class":1895},[1890,2051,1918],{"class":1895},[1890,2053,2054,2056,2059,2061,2063,2065,2068,2070],{"class":1892,"line":470},[1890,2055,2015],{"class":1895},[1890,2057,2058],{"class":1960},"respondentEmail",[1890,2060,1908],{"class":1895},[1890,2062,1911],{"class":1895},[1890,2064,1933],{"class":1895},[1890,2066,2067],{"class":1936},"respondent@example.com",[1890,2069,1908],{"class":1895},[1890,2071,1918],{"class":1895},[1890,2073,2074,2076,2079,2081,2083],{"class":1892,"line":249},[1890,2075,2015],{"class":1895},[1890,2077,2078],{"class":1960},"answers",[1890,2080,1908],{"class":1895},[1890,2082,1911],{"class":1895},[1890,2084,2085],{"class":1895}," [\n",[1890,2087,2088,2091,2093,2096,2098,2100,2102,2105,2107,2109,2111,2114,2116,2118,2120,2123,2125,2127,2129,2132,2134,2136,2138,2141,2143],{"class":1892,"line":747},[1890,2089,2090],{"class":1895},"      {",[1890,2092,1933],{"class":1895},[1890,2094,2095],{"class":1914},"questionId",[1890,2097,1908],{"class":1895},[1890,2099,1911],{"class":1895},[1890,2101,1933],{"class":1895},[1890,2103,2104],{"class":1936},"q1",[1890,2106,1908],{"class":1895},[1890,2108,1975],{"class":1895},[1890,2110,1933],{"class":1895},[1890,2112,2113],{"class":1914},"title",[1890,2115,1908],{"class":1895},[1890,2117,1911],{"class":1895},[1890,2119,1933],{"class":1895},[1890,2121,2122],{"class":1936},"Your name",[1890,2124,1908],{"class":1895},[1890,2126,1975],{"class":1895},[1890,2128,1933],{"class":1895},[1890,2130,2131],{"class":1914},"value",[1890,2133,1908],{"class":1895},[1890,2135,1911],{"class":1895},[1890,2137,1933],{"class":1895},[1890,2139,2140],{"class":1936},"Ada Lovelace",[1890,2142,1908],{"class":1895},[1890,2144,1994],{"class":1895},[1890,2146,2147,2149,2151,2153,2155,2157,2159,2162,2164,2166,2168,2170,2172,2174,2176,2179,2181,2183,2185,2187,2189,2191,2193,2196,2198],{"class":1892,"line":1099},[1890,2148,2090],{"class":1895},[1890,2150,1933],{"class":1895},[1890,2152,2095],{"class":1914},[1890,2154,1908],{"class":1895},[1890,2156,1911],{"class":1895},[1890,2158,1933],{"class":1895},[1890,2160,2161],{"class":1936},"q3",[1890,2163,1908],{"class":1895},[1890,2165,1975],{"class":1895},[1890,2167,1933],{"class":1895},[1890,2169,2113],{"class":1914},[1890,2171,1908],{"class":1895},[1890,2173,1911],{"class":1895},[1890,2175,1933],{"class":1895},[1890,2177,2178],{"class":1936},"Department",[1890,2180,1908],{"class":1895},[1890,2182,1975],{"class":1895},[1890,2184,1933],{"class":1895},[1890,2186,2131],{"class":1914},[1890,2188,1908],{"class":1895},[1890,2190,1911],{"class":1895},[1890,2192,1933],{"class":1895},[1890,2194,2195],{"class":1936},"Ops",[1890,2197,1908],{"class":1895},[1890,2199,2200],{"class":1895}," }\n",[1890,2202,2203],{"class":1892,"line":587},[1890,2204,2205],{"class":1895},"    ]\n",[1890,2207,2209],{"class":1892,"line":2208},13,[1890,2210,2211],{"class":1895},"  },\n",[1890,2213,2215,2217,2220,2222,2224,2226,2228,2230,2232,2234,2236,2239,2241,2243,2245,2247,2249,2251,2253,2256,2258],{"class":1892,"line":2214},14,[1890,2216,1901],{"class":1895},[1890,2218,2219],{"class":1904},"rule",[1890,2221,1908],{"class":1895},[1890,2223,1911],{"class":1895},[1890,2225,1955],{"class":1895},[1890,2227,1933],{"class":1895},[1890,2229,1961],{"class":1960},[1890,2231,1908],{"class":1895},[1890,2233,1911],{"class":1895},[1890,2235,1933],{"class":1895},[1890,2237,2238],{"class":1936},"rule id",[1890,2240,1908],{"class":1895},[1890,2242,1975],{"class":1895},[1890,2244,1933],{"class":1895},[1890,2246,1980],{"class":1960},[1890,2248,1908],{"class":1895},[1890,2250,1911],{"class":1895},[1890,2252,1933],{"class":1895},[1890,2254,2255],{"class":1936},"Zapier: new lead",[1890,2257,1908],{"class":1895},[1890,2259,2200],{"class":1895},[1890,2261,2263],{"class":1892,"line":2262},15,[1890,2264,2265],{"class":1895},"}\n",[2267,2268,2269,2287,2297,2305,2320],"ul",{},[1799,2270,2271,2273,2274,1875,2276,1875,2279,2282,2283,2286],{},[1872,2272,1926],{}," is one of ",[1872,2275,1937],{},[1872,2277,2278],{},"approved",[1872,2280,2281],{},"rejected","; it also rides in the ",[1872,2284,2285],{},"X-Skyfield-Event"," header",[1799,2288,2289,2292,2293,2296],{},[1872,2290,2291],{},"response.respondentEmail"," is ",[1872,2294,2295],{},"null"," unless the form collects email addresses",[1799,2298,2299,2302,2303],{},[1872,2300,2301],{},"answers[].value"," is always a string; checkbox answers are joined with ",[1872,2304,1875],{},[1799,2306,2307,2310,2311,2314,2315,2292,2317,2319],{},[1872,2308,2309],{},"rule.id"," and ",[1872,2312,2313],{},"rule.name"," identify the rule that fired; ",[1872,2316,1980],{},[1872,2318,2295],{}," when the rule has no name",[1799,2321,2322,2323,2310,2325,2327,2328,2331,2332,2335,2336],{},"On ",[1872,2324,2278],{},[1872,2326,2281],{},", an extra ",[1872,2329,2330],{},"approval: { \"decision\": \"approved\", \"decidedBy\": \"Dana\" }"," is included. ",[1872,2333,2334],{},"decidedBy"," is the name the approver typed on the approve page, else the approver's email, or ",[1872,2337,2295],{},[1782,2339,2340,2342,2343,2346],{},[1872,2341,1905],{}," stays ",[1872,2344,2345],{},"1"," as long as the shape above is stable. New fields may be added; none are removed or renamed without a version bump.",[1791,2348,2350],{"id":2349},"verifying-the-signature","Verifying the signature",[1782,2352,2353,2354,2357,2358,2361,2362,2365,2366,2368],{},"Every request carries an ",[1872,2355,2356],{},"X-Skyfield-Signature"," header: ",[1872,2359,2360],{},"sha256=\u003Chex>",", the HMAC-SHA256 of the ",[1786,2363,2364],{},"raw request body"," keyed with the rule's ",[1786,2367,1845],{},". Verify it before trusting a request.",[1782,2370,2371],{},[1850,2372],{"alt":2373,"src":2374},"The signing secret, shown once after saving a webhook rule","/addons/form-notifications/secret-once.png",[1782,2376,2377,2378,2381,2382,2385,2386,2389],{},"The secret (",[1872,2379,2380],{},"whsec_...",") is shown ",[1786,2383,2384],{},"once",", right after the save that gives the rule its first webhook URL. Copy it then; it cannot be displayed again. Replacing the URL later keeps the same secret. If you lose it, open the rule, click ",[1786,2387,2388],{},"New signing secret",", and save: the new secret is shown once and the old one stops working immediately.",[1782,2391,2392],{},"Compute the HMAC over the body bytes exactly as received. Parsing and re-serialising the JSON first will change whitespace and break the comparison.",[1782,2394,2395],{},[1786,2396,2397],{},"Node.js",[1881,2399,2403],{"className":2400,"code":2401,"language":2402,"meta":1886,"style":1886},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createHmac, timingSafeEqual } from 'node:crypto'\n\n// rawBody: string or Buffer of the request body, before any JSON parsing\nfunction verify(rawBody, header, secret) {\n  const expected = 'sha256=' + createHmac('sha256', secret).update(rawBody).digest('hex')\n  const a = Buffer.from(expected)\n  const b = Buffer.from(header ?? '')\n  return a.length === b.length && timingSafeEqual(a, b)\n}\n\n// Express example: use express.raw() so req.body is the untouched bytes\napp.post('/hook', express.raw({ type: 'application/json' }), (req, res) => {\n  if (!verify(req.body, req.get('X-Skyfield-Signature'), process.env.SKYFIELD_SECRET))\n    return res.status(401).end()\n  const payload = JSON.parse(req.body)\n  res.status(200).end()\n})\n","js",[1872,2404,2405,2437,2442,2448,2478,2547,2571,2599,2636,2640,2644,2649,2719,2779,2806,2833,2856],{"__ignoreMap":1886},[1890,2406,2407,2411,2413,2417,2419,2422,2425,2428,2431,2434],{"class":1892,"line":821},[1890,2408,2410],{"class":2409},"s7zQu","import",[1890,2412,1955],{"class":1895},[1890,2414,2416],{"class":2415},"sTEyZ"," createHmac",[1890,2418,1975],{"class":1895},[1890,2420,2421],{"class":2415}," timingSafeEqual",[1890,2423,2424],{"class":1895}," }",[1890,2426,2427],{"class":2409}," from",[1890,2429,2430],{"class":1895}," '",[1890,2432,2433],{"class":1936},"node:crypto",[1890,2435,2436],{"class":1895},"'\n",[1890,2438,2439],{"class":1892,"line":1005},[1890,2440,2441],{"emptyLinePlaceholder":156},"\n",[1890,2443,2444],{"class":1892,"line":1921},[1890,2445,2447],{"class":2446},"sHwdD","// rawBody: string or Buffer of the request body, before any JSON parsing\n",[1890,2449,2450,2453,2457,2460,2464,2466,2468,2470,2473,2476],{"class":1892,"line":9},[1890,2451,2452],{"class":1904},"function",[1890,2454,2456],{"class":2455},"s2Zo4"," verify",[1890,2458,2459],{"class":1895},"(",[1890,2461,2463],{"class":2462},"sHdIc","rawBody",[1890,2465,1975],{"class":1895},[1890,2467,2286],{"class":2462},[1890,2469,1975],{"class":1895},[1890,2471,2472],{"class":2462}," secret",[1890,2474,2475],{"class":1895},")",[1890,2477,2009],{"class":1895},[1890,2479,2480,2483,2486,2489,2491,2494,2497,2500,2502,2505,2507,2510,2512,2514,2516,2518,2521,2524,2526,2528,2530,2532,2535,2537,2539,2542,2544],{"class":1892,"line":1997},[1890,2481,2482],{"class":1904},"  const",[1890,2484,2485],{"class":2415}," expected",[1890,2487,2488],{"class":1895}," =",[1890,2490,2430],{"class":1895},[1890,2492,2493],{"class":1936},"sha256=",[1890,2495,2496],{"class":1895},"'",[1890,2498,2499],{"class":1895}," +",[1890,2501,2416],{"class":2455},[1890,2503,2459],{"class":2504},"swJcz",[1890,2506,2496],{"class":1895},[1890,2508,2509],{"class":1936},"sha256",[1890,2511,2496],{"class":1895},[1890,2513,1975],{"class":1895},[1890,2515,2472],{"class":2415},[1890,2517,2475],{"class":2504},[1890,2519,2520],{"class":1895},".",[1890,2522,2523],{"class":2455},"update",[1890,2525,2459],{"class":2504},[1890,2527,2463],{"class":2415},[1890,2529,2475],{"class":2504},[1890,2531,2520],{"class":1895},[1890,2533,2534],{"class":2455},"digest",[1890,2536,2459],{"class":2504},[1890,2538,2496],{"class":1895},[1890,2540,2541],{"class":1936},"hex",[1890,2543,2496],{"class":1895},[1890,2545,2546],{"class":2504},")\n",[1890,2548,2549,2551,2554,2556,2559,2561,2564,2566,2569],{"class":1892,"line":2012},[1890,2550,2482],{"class":1904},[1890,2552,2553],{"class":2415}," a",[1890,2555,2488],{"class":1895},[1890,2557,2558],{"class":2415}," Buffer",[1890,2560,2520],{"class":1895},[1890,2562,2563],{"class":2455},"from",[1890,2565,2459],{"class":2504},[1890,2567,2568],{"class":2415},"expected",[1890,2570,2546],{"class":2504},[1890,2572,2573,2575,2578,2580,2582,2584,2586,2588,2591,2594,2597],{"class":1892,"line":2033},[1890,2574,2482],{"class":1904},[1890,2576,2577],{"class":2415}," b",[1890,2579,2488],{"class":1895},[1890,2581,2558],{"class":2415},[1890,2583,2520],{"class":1895},[1890,2585,2563],{"class":2455},[1890,2587,2459],{"class":2504},[1890,2589,2590],{"class":2415},"header",[1890,2592,2593],{"class":1895}," ??",[1890,2595,2596],{"class":1895}," ''",[1890,2598,2546],{"class":2504},[1890,2600,2601,2604,2606,2608,2611,2614,2616,2618,2620,2623,2625,2627,2630,2632,2634],{"class":1892,"line":470},[1890,2602,2603],{"class":2409},"  return",[1890,2605,2553],{"class":2415},[1890,2607,2520],{"class":1895},[1890,2609,2610],{"class":2415},"length",[1890,2612,2613],{"class":1895}," ===",[1890,2615,2577],{"class":2415},[1890,2617,2520],{"class":1895},[1890,2619,2610],{"class":2415},[1890,2621,2622],{"class":1895}," &&",[1890,2624,2421],{"class":2455},[1890,2626,2459],{"class":2504},[1890,2628,2629],{"class":2415},"a",[1890,2631,1975],{"class":1895},[1890,2633,2577],{"class":2415},[1890,2635,2546],{"class":2504},[1890,2637,2638],{"class":1892,"line":249},[1890,2639,2265],{"class":1895},[1890,2641,2642],{"class":1892,"line":747},[1890,2643,2441],{"emptyLinePlaceholder":156},[1890,2645,2646],{"class":1892,"line":1099},[1890,2647,2648],{"class":2446},"// Express example: use express.raw() so req.body is the untouched bytes\n",[1890,2650,2651,2654,2656,2659,2661,2663,2666,2668,2670,2673,2675,2678,2680,2683,2686,2688,2690,2693,2695,2697,2699,2701,2704,2707,2709,2712,2714,2717],{"class":1892,"line":587},[1890,2652,2653],{"class":2415},"app",[1890,2655,2520],{"class":1895},[1890,2657,2658],{"class":2455},"post",[1890,2660,2459],{"class":2415},[1890,2662,2496],{"class":1895},[1890,2664,2665],{"class":1936},"/hook",[1890,2667,2496],{"class":1895},[1890,2669,1975],{"class":1895},[1890,2671,2672],{"class":2415}," express",[1890,2674,2520],{"class":1895},[1890,2676,2677],{"class":2455},"raw",[1890,2679,2459],{"class":2415},[1890,2681,2682],{"class":1895},"{",[1890,2684,2685],{"class":2504}," type",[1890,2687,1911],{"class":1895},[1890,2689,2430],{"class":1895},[1890,2691,2692],{"class":1936},"application/json",[1890,2694,2496],{"class":1895},[1890,2696,2424],{"class":1895},[1890,2698,2475],{"class":2415},[1890,2700,1975],{"class":1895},[1890,2702,2703],{"class":1895}," (",[1890,2705,2706],{"class":2462},"req",[1890,2708,1975],{"class":1895},[1890,2710,2711],{"class":2462}," res",[1890,2713,2475],{"class":1895},[1890,2715,2716],{"class":1904}," =>",[1890,2718,2009],{"class":1895},[1890,2720,2721,2724,2726,2729,2732,2734,2736,2738,2741,2743,2746,2748,2751,2753,2755,2757,2759,2761,2763,2766,2768,2771,2773,2776],{"class":1892,"line":2208},[1890,2722,2723],{"class":2409},"  if",[1890,2725,2703],{"class":2504},[1890,2727,2728],{"class":1895},"!",[1890,2730,2731],{"class":2455},"verify",[1890,2733,2459],{"class":2504},[1890,2735,2706],{"class":2415},[1890,2737,2520],{"class":1895},[1890,2739,2740],{"class":2415},"body",[1890,2742,1975],{"class":1895},[1890,2744,2745],{"class":2415}," req",[1890,2747,2520],{"class":1895},[1890,2749,2750],{"class":2455},"get",[1890,2752,2459],{"class":2504},[1890,2754,2496],{"class":1895},[1890,2756,2356],{"class":1936},[1890,2758,2496],{"class":1895},[1890,2760,2475],{"class":2504},[1890,2762,1975],{"class":1895},[1890,2764,2765],{"class":2415}," process",[1890,2767,2520],{"class":1895},[1890,2769,2770],{"class":2415},"env",[1890,2772,2520],{"class":1895},[1890,2774,2775],{"class":2415},"SKYFIELD_SECRET",[1890,2777,2778],{"class":2504},"))\n",[1890,2780,2781,2784,2786,2788,2791,2793,2796,2798,2800,2803],{"class":1892,"line":2214},[1890,2782,2783],{"class":2409},"    return",[1890,2785,2711],{"class":2415},[1890,2787,2520],{"class":1895},[1890,2789,2790],{"class":2455},"status",[1890,2792,2459],{"class":2504},[1890,2794,2795],{"class":1914},"401",[1890,2797,2475],{"class":2504},[1890,2799,2520],{"class":1895},[1890,2801,2802],{"class":2455},"end",[1890,2804,2805],{"class":2504},"()\n",[1890,2807,2808,2810,2813,2815,2818,2820,2823,2825,2827,2829,2831],{"class":1892,"line":2262},[1890,2809,2482],{"class":1904},[1890,2811,2812],{"class":2415}," payload",[1890,2814,2488],{"class":1895},[1890,2816,2817],{"class":2415}," JSON",[1890,2819,2520],{"class":1895},[1890,2821,2822],{"class":2455},"parse",[1890,2824,2459],{"class":2504},[1890,2826,2706],{"class":2415},[1890,2828,2520],{"class":1895},[1890,2830,2740],{"class":2415},[1890,2832,2546],{"class":2504},[1890,2834,2836,2839,2841,2843,2845,2848,2850,2852,2854],{"class":1892,"line":2835},16,[1890,2837,2838],{"class":2415},"  res",[1890,2840,2520],{"class":1895},[1890,2842,2790],{"class":2455},[1890,2844,2459],{"class":2504},[1890,2846,2847],{"class":1914},"200",[1890,2849,2475],{"class":2504},[1890,2851,2520],{"class":1895},[1890,2853,2802],{"class":2455},[1890,2855,2805],{"class":2504},[1890,2857,2859,2862],{"class":1892,"line":2858},17,[1890,2860,2861],{"class":1895},"}",[1890,2863,2546],{"class":2415},[1782,2865,2866],{},[1786,2867,2868],{},"Python",[1881,2870,2874],{"className":2871,"code":2872,"language":2873,"meta":1886,"style":1886},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import hmac, hashlib\n\ndef verify(raw_body: bytes, header: str, secret: str) -> bool:\n    digest = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()\n    return hmac.compare_digest(\"sha256=\" + digest, header or \"\")\n\n# Flask example\n@app.post(\"/hook\")\ndef hook():\n    if not verify(request.get_data(), request.headers.get(\"X-Skyfield-Signature\"), SECRET):\n        return \"\", 401\n    payload = request.get_json()\n    return \"\", 200\n","python",[1872,2875,2876,2881,2885,2890,2895,2900,2904,2909,2914,2919,2924,2929,2934],{"__ignoreMap":1886},[1890,2877,2878],{"class":1892,"line":821},[1890,2879,2880],{},"import hmac, hashlib\n",[1890,2882,2883],{"class":1892,"line":1005},[1890,2884,2441],{"emptyLinePlaceholder":156},[1890,2886,2887],{"class":1892,"line":1921},[1890,2888,2889],{},"def verify(raw_body: bytes, header: str, secret: str) -> bool:\n",[1890,2891,2892],{"class":1892,"line":9},[1890,2893,2894],{},"    digest = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()\n",[1890,2896,2897],{"class":1892,"line":1997},[1890,2898,2899],{},"    return hmac.compare_digest(\"sha256=\" + digest, header or \"\")\n",[1890,2901,2902],{"class":1892,"line":2012},[1890,2903,2441],{"emptyLinePlaceholder":156},[1890,2905,2906],{"class":1892,"line":2033},[1890,2907,2908],{},"# Flask example\n",[1890,2910,2911],{"class":1892,"line":470},[1890,2912,2913],{},"@app.post(\"/hook\")\n",[1890,2915,2916],{"class":1892,"line":249},[1890,2917,2918],{},"def hook():\n",[1890,2920,2921],{"class":1892,"line":747},[1890,2922,2923],{},"    if not verify(request.get_data(), request.headers.get(\"X-Skyfield-Signature\"), SECRET):\n",[1890,2925,2926],{"class":1892,"line":1099},[1890,2927,2928],{},"        return \"\", 401\n",[1890,2930,2931],{"class":1892,"line":587},[1890,2932,2933],{},"    payload = request.get_json()\n",[1890,2935,2936],{"class":1892,"line":2208},[1890,2937,2938],{},"    return \"\", 200\n",[1782,2940,2941,2942,2945],{},"Respond with any ",[1786,2943,2944],{},"2xx"," status. The body is ignored.",[1791,2947,2949],{"id":2948},"zapier-make-n8n","Zapier, Make, n8n",[1782,2951,2952],{},"All three accept a generic JSON webhook:",[2267,2954,2955,2974,2987],{},[1799,2956,2957,2960,2961,2965,2966,2969,2970,2973],{},[1786,2958,2959],{},"Zapier",": trigger ",[2962,2963,2964],"em",{},"Webhooks by Zapier",", event ",[1786,2967,2968],{},"Catch Hook"," (or ",[1786,2971,2972],{},"Catch Raw Hook"," to verify the signature yourself). Paste the URL Zapier shows into the rule",[1799,2975,2976,2979,2980,2982,2983,2986],{},[1786,2977,2978],{},"Make",": add a ",[1786,2981,101],{}," module, ",[1786,2984,2985],{},"Custom webhook",", copy its URL",[1799,2988,2989,2979,2992,2994],{},[1786,2990,2991],{},"n8n",[1786,2993,1788],{}," node, method POST, and use its production URL",[1782,2996,2997,2998,3001],{},"Send a test from the rule, then map the ",[1872,2999,3000],{},"response.answers"," fields in the platform. The sample payload uses placeholder answers so every field is present.",[1791,3003,3005],{"id":3004},"delivery-and-limits","Delivery and limits",[2267,3007,3008,3015,3018,3025,3039,3046],{},[1799,3009,3010,3011,3014],{},"The endpoint must be reachable on the public internet over ",[1786,3012,3013],{},"HTTPS",". Private and local addresses are rejected when you save",[1799,3016,3017],{},"Redirects are not followed: use the final URL",[1799,3019,3020,3021,3024],{},"The endpoint has ",[1786,3022,3023],{},"5 seconds"," to answer. A timeout or a 5xx response is retried once",[1799,3026,1784,3027,3030,3031,3034,3035,3038],{},[1786,3028,3029],{},"404"," or ",[1786,3032,3033],{},"410"," response means the endpoint is gone: the rule is ",[1786,3036,3037],{},"paused"," and you get one email. Paste a new URL on the rule to resume",[1799,3040,3041,3042,3045],{},"The ",[1786,3043,3044],{},"History"," page lists each delivery with the HTTP status your endpoint returned",[1799,3047,3048],{},"A paused or disabled webhook rule does not block other rules on the form",[1791,3050,662],{"id":3051},"good-to-know",[2267,3053,3054,3062,3077,3083],{},[1799,3055,3056,3057,3059,3060],{},"A webhook rule honours ",[1786,3058,106],{},", so an endpoint can receive an approval decision instead of every submission. See ",[2629,3061,212],{"href":119},[1799,3063,3064,3065,3067,3068,3070,3071,3073,3074],{},"To send only vetted responses, set the rule's ",[1786,3066,106],{}," to ",[1786,3069,110],{}," and pick an approver. See ",[2629,3072,209],{"href":20},". The payload then carries ",[1872,3075,3076],{},"approval.decision",[1799,3078,3079,3082],{},[1786,3080,3081],{},"Change channel…"," moves a webhook rule to Email or a chat channel; give the new destination there. Switching back to Webhook means pasting the URL again",[1799,3084,3085,3086,3089,3090],{},"Webhook rules need an ",[1786,3087,3088],{},"active license",". The free trial counts. See ",[2629,3091,3093],{"href":3092},"/addons/form-notifications/docs/guides/sending-and-limits#what-needs-a-license","what needs a license",[3095,3096,3097],"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 .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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}",{"title":1886,"searchDepth":1005,"depth":1005,"links":3099},[3100,3101,3102,3103,3104,3105],{"id":1793,"depth":1005,"text":1794},{"id":1866,"depth":1005,"text":1867},{"id":2349,"depth":1005,"text":2350},{"id":2948,"depth":1005,"text":2949},{"id":3004,"depth":1005,"text":3005},{"id":3051,"depth":1005,"text":662},"Send each Google Forms response as signed JSON to your own endpoint, Zapier, Make or n8n, and verify the signature","md",{},{"title":218,"description":3106},"dugKEubI5paQhGfCf7g26I5ab2YPg6H5LYdcSvdt1wU",[3112,3114],{"title":215,"path":91,"stem":216,"description":3113,"children":-1},"Post Google Forms responses to a Slack, Discord or Microsoft Teams channel with a rule",{"title":221,"path":222,"stem":223,"description":3115,"children":-1},"Where Form Notifications sends from, what needs a license, and the sending limits to be aware of",1791920483295]