Ingest API (Webhooks)
Configuration Examples
Google Sheets
you can use google app scripting to send rows from a google sheet to jomablue this guide explains how to automatically send attendee information stored in google sheets to jomablue using a webhook import api the script runs inside google sheets (via google apps script) and processes each row as an attendee record the script is designed to read attendee information directly from a google sheet (e g first name, last name, job title, company, email address, mobile number, and dietary requirements) convert each row into a json payload that matches jomablue’s ingest format securely send the data to jomablue using a bearer token in the request header ensure no more than one record is sent per second to comply with default rate limits track which rows have already been processed using a “sent to jomablue” column, so only new or unsent rows are transmitted this approach allows management of attendee data in google sheets while ensuring it is reliably and securely pushed into jomablue it also provides a simple retry mechanism only rows without a “sent to jomablue” status are processed, making it easy to re run the script without duplicating records function sendrowstojomablue() { const sheet = spreadsheetapp getactivespreadsheet() getsheetbyname("sheet1"); // change sheet name if needed const data = sheet getdatarange() getvalues(); const webhookurl = "https //your endpoint com/ingest"; // replace with your jomablue webhook endpoint const bearertoken = "your bearer token here"; // replace with your token // header row is index 0 const headers = data\[0]; let sentcolindex = headers indexof("sent to jomablue"); // if "sent to jomablue" column doesn’t exist, add it at the end if (sentcolindex === 1) { sheet getrange(1, headers length + 1) setvalue("sent to jomablue"); sentcolindex = headers length; } // loop through rows (skip header row) for (let i = 1; i < data length; i++) { let row = data\[i]; // skip if already sent if (row\[sentcolindex] === "yes") { continue; } // build json body let payload = { first name row\[0], last name row\[1], job title row\[2], company row\[3], email row\[4], mobile row\[5], dietary requirements row\[6] }; let options = { method "post", contenttype "application/json", headers { "authorization" "bearer " + bearertoken }, payload json stringify(payload), mutehttpexceptions true }; try { let response = urlfetchapp fetch(webhookurl, options); let code = response getresponsecode(); if (code >= 200 && code < 300) { // mark as sent sheet getrange(i + 1, sentcolindex + 1) setvalue("yes"); logger log("row " + (i + 1) + " sent successfully "); } else { logger log("row " + (i + 1) + " failed response " + code + " " + response getcontenttext()); } } catch (e) { logger log("error sending row " + (i + 1) + " " + e); } // wait 1 second before next request utilities sleep(1000); } } what this does reads your sheet (sheet1 by default) ensures a “sent to jomablue” column exists (creates it if missing) loops rows one by one skips rows already marked yes sends json with your specified fields on success → marks "yes" in "sent to jomablue" column adds a 1 second delay between requests to avoid hammering the endpoint how to use this open your google sheet click extensions > app script paste the code above into the editor update sheet1 → your actual sheet name https //your endpoint com/ingest → your webhook url your bearer token here → your jomablue api token approve the authorization when prompted save and run sendrowstowebhook