Webhook recipe · Google Forms
Google Forms is free, everywhere, and has no webhook button. The fix is a 12-line Apps Script that turns every submission into one - pasted once, working forever. Here's the whole thing, script included.
In Chromoly, add a webhook trigger to the receiving workflow and copy its URL.
In your Google Form: ⋮ menu → Apps Script. Paste the script below, replacing the URL placeholder.
In the Apps Script editor: Triggers → Add trigger → run onFormSubmit, event type "On form submit". Authorize when prompted.
Submit a test response, map the fields in Chromoly once, and describe what happens next. Preview, deploy.
function onFormSubmit(e) {
var payload = {};
e.response.getItemResponses().forEach(function(r) {
payload[r.getItem().getTitle()] = r.getResponse();
});
payload.submittedAt = new Date().toISOString();
UrlFetchApp.fetch("YOUR_CHROMOLY_WEBHOOK_URL", {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload)
});
}
Deliberately minimal: it sends every question and answer as-is and lets Chromoly own the logic - mapping, validation, routing. Logic in the script is logic nobody maintains.
Webhook triggers and their signing secrets are covered in the integrations documentation. Every received request - including rejected ones - appears in the workflow's run history, so the connection is debuggable from day one.
Google Forms has no built-in webhook feature - Apps Script is Google's answer. One paste of the 12 lines, then it behaves like any webhook source.
Reliable for real use - the triggers are Google infrastructure. Caveats: daily quotas (generous for form volumes), and script errors fail on Google's side - so keep the script minimal and check Chromoly's run history, which logs every received request.
Yes - the same approach fires on sheet edits or a schedule, sending new rows as webhooks. Useful for legacy sheets during a migration.
Describe it in plain language - the webhook trigger is part of the description. Preview free before anything deploys.
Start free