- Zoom Integration
- BuddyBoss Integration
- MailPoet Integration
- ActiveCampaign Integration
- Gravity Forms Integration
- Tutor LMS Integration
- ClickUp Integration
- Stripe Integration
- Trello Integration
- Formster Webhook Setup
- Connect WhatsApp Cloud API
- Flowlu Webhook Setup
- Gozen Forms Webhook Setup
- Formsite Webhook Setup
- GetLeadForms Webhook Setup
- Acadle Webhook Setup
- BombBomb Webhook Setup
- Book Like A Boss Webhook Setup
- Chargebee Webhook Setup
- Zoho Forms Webhook Setup
- MightyForms Webhook Setup
- NativeForms Webhook Setup
- FormKeep Webhook Setup
- Paperform Webhook Setup
- ConvertKit Integration
- Asana Integration
- CloudWaitress Webhook Setup
- Clustdoc Webhook Setup
- Content Snare Webhook Setup
- Cognito Forms Webhook Setup
- Coupontools Webhook Setup
- Crove Webhook Setup
- Beagle Security Webhook Setup
- Billsby Webhook Setup
- BlockSurvey Webhook Setup
- Aftership Webhook Setup
- Canny Webhook Setup
- Salesmate Webhook Setup
- Wix Forms Webhook Setup
- BulkSMS.com Webhook Setup
- Clockify Webhook Setup
- Shopify Webhook Setup
- Albacross Webhook Setup
- Apify Webhook Setup
- Awork Webhook Setup
- Todoist Integration Guide
- JetFormBuilder Integration Guide
- How To Set Up Webhook in Chatra?
- How To Set Up Webhook in Chatwork?
- How To Set Up Webhook in Formium?
- How To Set Up Webhook in Bit Form?
- How To Set Up Webhook in GetResponse?
- How To Set Up Webhook in RazorPay?
- OttoKit: VBOUT Integration Guide
- How To Set Up Webhook in Jotform?
- Zoom Webhook
- How To Set Up Webhook in Boost.link?
- How to Set Up Webhook in Carrd?
- How to Set Up Webhook in monday.com?
- How to Set Up Webhook in Brizy Cloud?
- How to Set Up Webhook in GIST?
- How to Set Up Webhook in Dashly?
- How to Set Up Webhook in Customer.io?
- How to Set Up Webhook in Delighted?
- How to Set Up Webhook in DigiSigner?
- How to Set Up Webhook in Digistore24?
- How to Set Up Webhook in Customerly?
- Getting Started with Twitter Integration
- How to Set Up Webhook in Docparser?
- How to Set up Webhook in DocSpring?
- How to Set up Webhooks in DoneDone?
- How to Set Up a Webhook in Easypromos?
- How to Set Up Webhook in Envoice?
- How to Set Up Webhooks in Freshdesk?
- How to Set Up Webhook in FastSpring?
- OttoKit: HubSpot Integration Guide
- How to Set Up Webhook in forms.app?
- How to Set Up Webhook in Frill.co?
- How to Set Up Webhook in Global Patron?
- How to Set Up Webhook in Brilliant Directories?
- How to Set Up Webhook in Drip?
- How to Set Up Webhook in Helpwise?
- How to Set Up Webhook in HelpCrunch?
- How to Set up Webhook in HelpSpace?
- How to Set Up Webhook in HeySummit?
- OttoKit: Encharge Integration Guide
- How to Set up Webhook in Hiveage?
- How to Set Up Webhook in Hopin?
- How to Set Up Webhook in Hippo Video?
- How to Set Up Webhook in Hotmart?
- Using Google Calendar Triggers in OttoKit
- How to Set Up Webhook in Wise?
- How to Set Up Webhook in Kajabi?
- How to Set Up Webhook in Patreon?
- How to Set Up Webhook in Square?
- How to Set Up Webhook in Tawk.to?
- Integration Guide for Slack
- How to Set Up Webhook in Snackeet?
- How to Set up Webhook in Popupsmart?
- How to Set up Webhook in InstantPage?
- How to Set up Webhook in Insightly CRM?
- How to Set Up Webhook in Breakcold?
- How to Set Up Webhook in SendGrid?
- How to Set Up Webhook in Teamwork CRM?
- How to Set Up Webhook in NaturalForms?
- How to Set up Webhook in Invoice Ninja?
- How to Set up Webhook in Invoiless?
- How to Set up Webhook in JivoChat?
- How to Set up Webhook in JVZoo?
- How to Set up Webhooks in Klenty?
- How to Set up Webhooks in Beehiiv?
- How to Set up Webhooks in Woobox?
- How to Set up Webhooks in Drift?
- How to Set Up Webhooks in LearnWorlds?
- How to Set up WebHooks in LiveWebinar?
- How to Set Up Webhooks in ThriveDesk?
- How to Set up Webhooks in Hyros?
- How to create an integration in Segmetrics and obtain the Integration ID?
- How to Set up Webhooks in SavvyCal?
- How to Set up Webhooks in LatePoint?
- How to Set up Webhooks in Flexie CRM?
- How to Set up Webhooks in Trafft?
- How to Setup Webhook in Kommo?
- How to Setup Webhook in Marquiz?
- How to Setup Webhook in Mailparser?
- How to Setup Webhooks in MakeForms?
- How to Setup Webhooks in Manyreach?
- How to Setup Webhook in Memberstack?
- How to Set up Webhooks in Moxie CRM?
- How to Set up Webhooks in Timely?
- How to Set up Webhooks in Clarityflow?
- How to Set up Webhooks in Brevo?
- Using Google Sheets Trigger
- How to Set up Webhooks in SendPulse?
- How to Set up Webhooks in Whereby?
- How to Set up Webhooks in Cloudprinter.com?
- How to Set up Webhooks in Shippo?
- How to Set up Webhooks in SuiteDash?
- How to Set up Webhooks in Systeme.io?
- How to Set up Webhooks in MimePost?
- How to Set up Webhooks in Lob?
- Tips for formatting Discord messages
- How to Set up Webhooks in Paddle?
- How to Set up Webhooks in Cal.com?
- How to Set up Webhooks in Rewardful?
- How to Set up Webhooks in RetargetKit?
- How to Set up Webhooks in Breakdance?
- How to Set up Webhooks in Retable?
- How to Set up Webhooks in Respond.io?
- How to Set up Webhooks in ProductDyno?
- How to Set up Webhooks in Postmark?
- How to Set up Webhooks in RepairShopr?
- How to Set up Webhooks in Gumroad?
- How to Set up Webhooks in Fillout?
- How to Set up Webhooks in Zonka Feedback?
- How to Set up Webhooks in YouCanBook.Me?
- How to Set up Webhooks in Boomerangme?
- How to Set up Webhooks in Wisepops?
- How to Set up Webhooks in Zenler?
- How to Set up Webhooks in Givebutter?
- How to Set up Webhooks in Quotient?
- How to Set up Webhooks in LeadConnector?
- How to Set up Webhooks in Gelato?
- How to Set up Webhooks in Passcreator?
- How to Set up Webhooks in Read AI?
- How to Set up Webhooks in Aircall?
- How to Set up Webhooks in Eventin?
- How to Set up Webhooks in Sakari SMS?
- How to Set up Webhooks in Linear?
- How to Set up Webhooks in Dailybot?
- How to Set up Webhooks in Feathery?
- How to Set up Webhooks in Ticket Tailor?
- How to Set up Webhooks in Bookfunnel?
- How to Set up Webhooks in Onfleet?
- How to Set up Webhooks in MailerSend?
- How to Set up Webhooks in Landbot?
- How to Set up Webhooks in Parseur?
- How to Set up Webhooks in Plutio?
- How to Set up Webhooks in Appcues
- How to Set up Webhooks in Certopus
- How to Set up Webhooks in AnnounceKit
- How to Set up Webhooks in Worksection
- Plug&Pay Webhook
- How to Set up Webhooks in Memberful
- How to Set up Webhooks in Copilot
- How to Set up Webhooks in AppDirect
- How to Set up Webhooks in SendOwl
- How to Set up Webhooks in Tapfiliate
- How to Set up Webhooks in Outgrow
- How to Set up Webhooks in Baserow
- How to Set up Webhooks in Bookingmood
- How to Set up Webhooks in Contentful
- How to Set up Webhooks in Mautic
- How to Set up Webhooks in Localazy
- How to Set up Webhooks in SpreadSimple
- How to Set up Webhooks in Apptivo CRM
- How to Set up Webhooks in SumoQuote
- How to Set up Webhooks in Brizy Cloud
- How to Set up Webhooks in RADAAR
- How to Set up Webhooks in Payhip
- How to Set up Webhooks in Uploadcare
- How to Set up Webhooks in DocuSeal
- How to Set up Webhooks in Builder.io
- How to Set up Webhooks in Toggl Track
- How to Set up Webhooks in Tuskr
- How to Set up Webhooks in meetergo
- OttoKit & Flowlu Integration Guide
- How to Set up Webhooks in Parsio
- How to Set up Webhooks in lemcal
- How to Set up Webhooks in Harvestr
- How to Set up Webhooks in IdentityCheck
- How to Set up Webhooks in Woorise
- How to Set up Webhooks in Webvizio
- How to Set up Webhooks in Probooking
- How to Set up Webhooks in Viral Loops
- How to Set up Webhooks in Personizely
- How to Set up Webhooks in Userback
- How to Set up Webhooks in Weblium
- How to Set up Webhooks in Flock
- How to Set up Webhooks in Xodo Sign
- How to Set up Webhooks in LoneScale
- How to Set up Webhooks in QuickScraper
- How to Set up Webhooks in Sellfy
- How to Set up Webhooks in VNTANA
- How to Set up Webhooks in MoonClerk
- How to Set up Webhooks in Modal Forms
- How to Set up Webhooks in Updown.io
- How to Set up Webhooks in Webapi.ai
- How to Set up Webhooks in VivifyScrum
- How to Set up Webhooks in FeatureOS
- How to Set up Webhooks in ZipWP
- How to Set up Webhooks in Voiceflow
- How to Set up Webhooks in GitLab
- How to Set up Webhooks in PDFMonkey
- How to Set up Webhooks in Hydrozen.io
- How to Set up Webhooks in Agiled
- How to Set up Webhooks in Creatomate
- How to Set up Webhooks in Planning Center
- How to Set up Webhooks in Frame.io
- How to Set up Webhooks in Uptime
- How to Set up Webhooks in FillFaster
- How to Set up Webhooks in Picnie
- How to Set up Webhooks in Umso
- How to Set up Webhooks in Trustmary
- How to Set up Webhooks in Gallabox
- How to Set up Webhooks in Track-POD
- How to Set up Webhooks in Instapage
- How to Set up Webhooks in TuCalendi
- How to Set up Webhooks in Formspark
- OttoKit & tawk.to Integration Guide
- How to Set up Webhooks in ParseHub
- How to Set up Webhooks in LeadGen App
- How to Set up Webhooks in EasyCSV
- How to Set up Webhooks in SuperSaaS
- How to Set up Webhooks in GrowthBook
- How to Set up Webhooks in GrowSurf
- vPlan Webhook
- KanbanFlow Webhook
- OttoKit & Advanced Ads Integration Guide
- Recurly Webhook
- SparkPost Webhook
- UseINBOX Webhook
- Sellix Webhook
- Groove Webhook
- Tarvent Webhook
- NinjaPipe Webhook
- Zylvie Webhook
- Zendesk Webhook
- How to generate Client ID and Client Secret in Canva
- Ghost Webhook
- Invoice Ninja Webhook
- Runrun.it Webhook
- Workiom Webhook
- FirstPromoter Webhook
- Easybill Webhook
- Attio Webhook
- Memberstack Webhook
- Netjet.io Webhook
- ArcSite Webhook
- BoldDesk Webhook
- Leave Dates Webhook
- UpKeep Webhook
- Timesheet Webhook
- REsimpli Webhook
- Helpjuice Webhook
- IndiaMART Webhook
- TicketSpice Webhook
- PageVitals Webhook
- MotionTools Webhook
- GivingFuel Webhook
- RedPodium Webhook
- RegFox Webhook
- Formbricks Webhook
- Stormboard Webhook
- GoodDay.Work Webhook
- HeyReach Webhook
- Todoist Webhook
- Configuring and Setting Up a Custom Search Engine in Google Cloud
- Integration Guide for Slack V2
- Jira Webhook
- Automate Repetition with Precision: OttoKit Loop Integration
- How to Connect Xero with OttoKit
- How to Set Up a Send Email Connection in OttoKit
- The Complete Guide to Setting Up Webhooks in OttoKit
- Trigger OttoKit Workflows from Google Sheets Using App Script & Webhooks (Within 1 Minute)
- How to Update Custom Fields with ACF and MetaBox in OttoKit
- Connect Google My Business to OttoKit
- Prerequisites
- Building an Integration
- Setting Up Authentication
- Setting Up Triggers & Actions
- Publishing Integration
- How To Authenticate Your Application Using The API Key Method
- How to Set-Up the Integration Based on Auth Type Bearer Token
- How To Authenticate Your Application Using OAuth 2.0
- How To Authenticate Your Application Using Basic Auth
- How To Authenticate Your Application Using The JWT Bearer Method
Trigger OttoKit Workflows from Google Sheets Using App Script & Webhooks (Within 1 Minute)
With OttoKit, you can now trigger powerful automations the moment new data lands in your Google Sheet — whether it comes from a third-party app, IMPORTRANGE, a formula, another App Script, or any external integration.
This is made possible through our newly developed App Script, which enables near-instant (within 1 minute) workflow triggers based on dynamic changes in your Google Sheets.
For example, you can automatically add new subscribers to your email marketing tool as soon as a new row is added, no matter how the data arrives.
To make this work, you’ll be using the OttoKit Webhooks Google Sheets add-on to set up and manage your triggers effortlessly.
In this guide, we’ll show you how to set up the OttoKit Webhook add-on and start triggering workflows from your Google Sheet in real-time.
Let’s dive in!
Table of Contents
What Is OttoKit Webhook Add-on?
OttoKit Webhook is an extension for Google Sheets that helps you connect your OttoKit account with Google Sheets using webhooks.
It can help you create workflows that trigger when new rows are added to a specific spreadsheet.
How to Set Up Google Sheets Triggers
Step 1: Setting Up Google Sheets Trigger
- Click on the “Add Trigger” button.
- Search for the Google Sheets trigger and select it as your trigger app.
- Copy the webhook URL displayed on the screen, as we will use it in the following steps.
Step 2: Setting Up OttoKit Webhook Addon for Google Sheets
- Click on “Extensions” > “App Script.”
- Copy the provided App Script from below:
function onOpen(e) {
SpreadsheetApp.getUi().createMenu('Ottokit Webhooks')
.addItem('Send rows every minute', 'setup')
.addItem('Help', 'help')
.addToUi();
}
function setup() {
var trigOwner = PropertiesService.getDocumentProperties().getProperty('trigOwner');
var sheetId = PropertiesService.getDocumentProperties().getProperty('sheetId');
var setup = PropertiesService.getDocumentProperties().getProperty('setup');
var sheet = !sheetId ? false : SpreadsheetApp.getActive().getSheets().find(sh => sh.getSheetId() == sheetId);
var n = !sheet ? sheetId : sheet.getName();
var config = (!trigOwner ? '' : `Trigger owner: ${trigOwner}.`)
+ (!sheetId ? '' : ` Sheet: ${n}.`)
+ (!setup ? '' : `\nWebhook & last column: ${setup}.`);
if (config.length) {
config = `\n* Current configuration:- ${config}\n`;
}
var title = 'Set Up Ottokit Webhook Trigger?';
var body = `Ottokit will automatically send your new spreadsheet entries every minute.
1. To Start or Update:
Please paste the Ottokit webhook link below. If you also want to wait until a certain column has data before sending a row, mention that column letter too — after a comma.
Examples:
a. Just the link: https://webhook.ottokit.com/GoogleSheetsTrigger/140d11b8-7ec7-42e5-bfd5-8ee651145ejs
b. Link with column condition: https://webhook.ottokit.com/GoogleSheetsTrigger/140d11b8-7ec7-42e5-bfd5-8ee651145ejs, D
(For the second example, the system will send the row only when there's something filled in Column D.)
2. To Stop Sending:
Click "No" if you want to turn off this automation.
${config}\n`;
var ui = SpreadsheetApp.getUi();
var result = ui.prompt(title, body, ui.ButtonSet.YES_NO_CANCEL);
var button = result.getSelectedButton();
var setup = result.getResponseText();
if (button == ui.Button.YES) {
if (!trigOwner) {
ScriptApp.newTrigger('onSchedule')
.timeBased()
.everyMinutes(1)
.create();
PropertiesService.getDocumentProperties().setProperty('trigOwner', Session.getEffectiveUser().getEmail());
}
PropertiesService.getDocumentProperties().setProperty('sheetId', SpreadsheetApp.getActiveSheet().getSheetId().toString());
PropertiesService.getDocumentProperties().setProperty('setup', setup);
PropertiesService.getDocumentProperties().setProperty('lastSentRow', 1);
ui.alert('Webhook trigger has been set!');
} else if (button == ui.Button.NO) {
PropertiesService.getDocumentProperties().deleteAllProperties();
var msg = 'All configurations cleared.';
if (Session.getEffectiveUser().getEmail() == trigOwner) {
var triggers = ScriptApp.getUserTriggers(SpreadsheetApp.getActive());
for (var i = 0; i < triggers.length; i++) {
ScriptApp.deleteTrigger(triggers[i]);
}
msg += '\nThe automated trigger has been removed.';
} else {
msg += `\nPlease use the account ${trigOwner} to fully remove the automation.`;
}
ui.alert(msg);
}
}
function help() {
var htmlOutput = HtmlService
.createHtmlOutput('<p>Refer to the Ottokit guide <a href="https://ottokit.com/docs/triggering-workflows-using-google-sheets-in-ottokit/" target="_blank">here</a>.</p>')
.setWidth(300)
.setHeight(100);
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'Ottokit Webhooks Help');
}
function onSchedule() {
const start = Date.now();
var ss = SpreadsheetApp.getActive();
var sheetId = PropertiesService.getDocumentProperties().getProperty('sheetId');
var sheet = ss.getSheets().find(sh => sh.getSheetId() == sheetId);
var setup = PropertiesService.getDocumentProperties().getProperty('setup');
if (!sheet || !setup) { return; }
var webhook_url, end_column;
var li = setup.lastIndexOf(',');
if (li == -1) {
webhook_url = setup;
let i = sheet.getDataRange().getLastColumn();
let l = '';
let c;
while (i > 0) {
c = (i - 1) % 26;
l = String.fromCharCode(c + 65) + l;
i = (i - c - 1) / 26;
}
end_column = l;
} else {
webhook_url = setup.substring(0, li);
end_column = setup.substring(li + 1).trim();
}
var lastSentRow = PropertiesService.getDocumentProperties().getProperty('lastSentRow');
Logger.log(lastSentRow)
if (!webhook_url || !end_column || !lastSentRow) { return; }
lastSentRow = parseInt(lastSentRow, 10);
var rowEnd = parseInt(sheet.getLastRow(), 10);
if (rowEnd > lastSentRow) {
if (timeUp(start)) { return; }
var headers = sheet.getRange(`A1:${end_column}1`).getDisplayValues()[0];
var values = sheet.getRange(`A${parseInt(lastSentRow + 1, 10)}:${end_column + rowEnd}`).getDisplayValues();
var sent = -1;
for (var v = 0; v < values.length; v++) {
if ((values[v][values[v].length - 1]).length) {
connectWebhook(
convertToJson(values[v], headers, ss.getName(), ss.getId(), sheet.getName(), sheetId, end_column, lastSentRow + 1 + v),
webhook_url
);
sent = v;
}
if (timeUp(start)) { break; }
}
Logger.log(lastSentRow)
if (sent >= 0) {
lastSentRow += (sent + 1);
PropertiesService.getDocumentProperties().setProperty('lastSentRow', lastSentRow);
}
}
}
function timeUp(start) {
return (Date.now() - start) > 45000;
}
function connectWebhook(data, url) {
var options = {
'method': 'post',
'payload': JSON.stringify(data)
};
UrlFetchApp.fetch(url, options);
}
function convertToJson(values, headers, spreadsheetName, spreadsheetID, sheetName, sheetID, triggerColumn, rowIndex) {
var data = {};
for (var i in values) {
data[headers[i]] = values[i];
}
data.SpreadsheetName = spreadsheetName;
data.SpreadsheetID = spreadsheetID;
data.SheetName = sheetName;
data.SheetID = sheetID;
data.TriggerColumn = triggerColumn;
data.RowIndex = rowIndex;
return data;
}
- Click on Save & close the tab.
- Go to your Google Sheet, and you will see OttoKit Webhooks.
- Click on OttoKit Webhooks< Send rows every minute.
- Click OK to authorize your Google account, and then follow the authentication process as shown in the screenshots below.
- Once you’ve completed the authentication process, you’ll see a popup titled “Set Up OttoKit Webhook Trigger?”
- In the input field, paste the webhook URL you copied in the Google Sheet step, then add a comma and enter the trigger column.
- Click on Yes.
- Now you can go to your workflow and within 1 minute of time, the response will get captured and you can further setup the workflow.
That’s done! Your Google Sheet trigger step is now setup and it will work for any new rows added by any third party within 1 minute of time.
We don't respond to the article feedback, we use it to improve our support content.