Články:
- Export údajov do Tabuliek Google
- Pripojenie Facebook Pixelu k projektu na Kwige
- Odoslanie webhooku na prenos údajov do inej služby
- Integrácia Zoomu a základné informácie o používaní
- Generovanie platobných odkazov s predvyplnenými údajmi
- Spracovanie kliknutia na tlačidlo vo widgete
- Odoslanie webhooku do KeyCRM s oddelením žiadosti a platby.
- Pripojenie chatovacích služieb k projektu Kwiga
Ukážeme vám, ako nastaviť automatický export údajov z Kwiga do Tabuliek Google.
Export údajov pre rôzne udalosti môžete nastaviť pomocou automatizácie (ako udalosť môžete zadať pridanie kontaktu, pridanie značky, úspešný alebo neúspešný nákup atď.; úplný zoznam udalostí je dostupný v článku).
Okrem toho môžete pri používaní widgetov využiť možnosť odoslať webhook; postup zostáva rovnaký.
Hlavné kroky:
-
Vytvorte súbor a pridajte doň skript
-
Vytvorte webovú aplikáciu a získajte odkaz na odosielanie webhooku
-
Nastavte odosielanie webhooku pomocou automatizácie v Kwiga alebo odoslaním formulára vo widgete.
Celý proces je zobrazený vo videu a nevyžaduje znalosti programovania. Stačí postupovať podľa uvedených krokov. Ak niečo nebude fungovať, kontaktujte podporu.
Krok 1: Vytvorte súbor, do ktorého sa budú odosielať údaje z Kwiga
Otvorte Google Sheets a vytvorte nový súbor, potom otvorte editor skriptov.
Otvorí sa nové okno, do ktorého editora je potrebné vložiť skript. Skript si môžete stiahnuť prostredníctvom odkazu (alebo skopírovať text v spodnej časti článku). Musíte odstrániť všetok text, ktorý sa už v editore nachádza.
Konečný výsledok:
Krok 2: Vytvorte webovú aplikáciu a získajte odkaz na odosielanie webhooku
V tom istom editore skriptov nájdite tlačidlo Deploy a vyberte možnosť New deployment
Ako typ vyberte Web app a v rozbaľovacej ponuke Who has access nastavte Everyone, potom kliknite na Deploy.
Výsledkom bude Web App URL, ktoré potom musíte pridať v Kwiga.
Krok 3: Nastavte odosielanie údajov v Kwiga
V hornom menu kliknite na tlačidlo All solutions a vyberte Automation. Vytvorte nový spúšťač a vyberte udalosť, ktorá spustí automatizáciu. Môže to byť pridanie kontaktu, pridanie značky, platba alebo akákoľvek iná udalosť.
Potom prejdite nižšie a v akciách vyberte Webhook - Send data. Do poľa s odkazom zadajte Web App URL, typ požiadavky POST a vyberte polia, ktoré sa majú exportovať do tabuľky.
Uložte nastavenia a všetky kroky sú dokončené.
Prípadne môžete nastaviť odosielanie webhooku z widgetu; táto možnosť je dostupná pri použití prvku Form. Zaškrtnite možnosť Additionally send to a third-party service a potom do otvoreného formulára pridajte odkaz, typ požiadavky POST a vyberte parametre, ktoré sa majú odoslať. V tomto zozname budú dostupné len parametre, ktoré sa nachádzajú vo formulári (v tomto widgete).
Ako funguje skript Google Sheets pre webhooky
- Pri prvom volaní webhooku sa hlavičky tabuľky automaticky vytvoria na základe kľúčov prichádzajúcich údajov
- Ak tabuľka už obsahuje hlavičky a potrebujete začať prijímať nové dátové polia, pridajte tieto hlavičky do tabuľky manuálne
- Hlavičky je možné v tabuľke preusporiadať – skript automaticky určí ich pozície
- Skript predvolene pridáva nové záznamy pri každom prijatí webhooku
- Ak sú v keyColumns zadané polia, skript aktualizuje existujúce záznamy alebo pridá nové, ak nenájde zhodu
- ⚠️ Dôležité: Po zmene skriptu ho musíte znova nasadiť v službe Google Apps Script a aktualizovať odkaz webhooku
Výber hárka:
- Predvolene sa používa aktívny hárok
- Možno ho prepísať prostredníctvom parametrov webhooku:
- "sheet_name": "Názov hárka" - na výber hárka podľa názvu
- "sheet_index": 2 - na výber hárka podľa čísla (od 1)
// ============================================================
// NASTAVENIA SKRIPTU
// ============================================================
// Kontrola duplicít – zadajte polia na vyhľadanie existujúcich záznamov
// Príklady použitia:
// var keyColumns = ["email"]; - kontrola podľa e-mailu
// var keyColumns = ["order_id"]; - kontrola podľa ID objednávky
// var keyColumns = ["email", "order_id"]; - kontrola podľa viacerých polí
var keyColumns = []; // Kontrola duplicít je vypnutá
// ============================================================
// Funkcia na odoslanie odpovede
function sendResponse(success, message) {
var response = {
"status": success ? "success" : "error",
"message": message
};
return ContentService.createTextOutput(JSON.stringify(response))
.setMimeType(ContentService.MimeType.JSON);
}
// Získavanie cieľového hárka na zadávanie údajov
function getTargetSheet(hook_data) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Kontrola, či je zadaný názov hárka
if (hook_data && hook_data.sheet_name) {
try {
var sheet = spreadsheet.getSheetByName(hook_data.sheet_name);
if (sheet) {
return sheet;
}
} catch (error) {
// Hárok sa nenašiel
}
}
// Kontrola, či je zadané číslo hárka
if (hook_data && hook_data.sheet_index && !isNaN(hook_data.sheet_index)) {
try {
var sheets = spreadsheet.getSheets();
var index = parseInt(hook_data.sheet_index) - 1; // Prevod na index od 0
if (index >= 0 && index < sheets.length) {
return sheets[index];
}
} catch (error) {
// Neplatný index hárka
}
}
// Predvolene sa použije aktívny hárok
return SpreadsheetApp.getActiveSheet();
}
// Vytvára hlavičky v tabuľke na základe poskytnutých údajov
function populateHeaders(hook_data, sheet) {
if (!hook_data || typeof hook_data !== 'object') {
return false;
}
if (!sheet) {
sheet = getTargetSheet(hook_data);
}
var last_row = Math.max(sheet.getLastRow(), 1);
sheet.insertRowAfter(last_row);
var headers_row = ['timestamp'];
var hook_data_keys = Object.keys(hook_data);
for (var i = 0; i < hook_data_keys.length; i++) {
headers_row.push(hook_data_keys[i]);
}
sheet.appendRow(headers_row);
SpreadsheetApp.flush();
return true;
}
// Spracovanie prichádzajúceho webhooku
function doPost(e) {
var hook_load = null;
// Kontrola údajov POST
if (!e || !e.postData || !e.postData.contents) {
return sendResponse(false, "Žiadne údaje na spracovanie");
}
// Analýza údajov JSON
try {
hook_load = JSON.parse(e.postData.contents);
} catch (error) {
return sendResponse(false, "Chyba pri analýze údajov JSON");
}
// Overenie prijatých údajov
if (!hook_load || typeof hook_load !== 'object' || Object.keys(hook_load).length === 0) {
return sendResponse(false, "Boli prijaté nesprávne alebo prázdne údaje");
}
try {
// Získavanie cieľového hárka
var sheet = getTargetSheet(hook_load);
if (!sheet) {
return sendResponse(false, "Nepodarilo sa nájsť zadaný hárok");
}
// Vytváranie hlavičiek, ak je tabuľka prázdna
if (sheet.getLastColumn() === 0) {
populateHeaders(hook_load, sheet);
}
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
if (headers.length === 0 || headers[0] === "") {
populateHeaders(hook_load, sheet);
headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
}
// Kontrola duplicít
var data = [];
var targetRow = -1;
var numRows = sheet.getLastRow() - 1;
if (keyColumns.length > 0 && numRows > 0) {
data = sheet.getRange(2, 1, numRows, sheet.getLastColumn()).getValues();
for (var r = 0; r < data.length; r++) {
var row = data[r];
var match = true;
for (var k = 0; k < keyColumns.length; k++) {
var key = keyColumns[k];
var idx = headers.indexOf(key);
if (idx === -1 || row[idx] != hook_load[key]) {
match = false;
break;
}
}
if (match) {
targetRow = r + 2; // účtovanie hlavičiek
break;
}
}
}
// Príprava údajov na zápis
var new_sheet_row = new Array(headers.length).fill('');
for (var h = 0; h < headers.length; h++) {
var key = headers[h];
if (key === 'timestamp') {
new_sheet_row[h] = new Date();
} else if (hook_load.hasOwnProperty(key)) {
new_sheet_row[h] = hook_load[key];
}
}
// Ukladanie údajov do tabuľky
if (targetRow > -1) {
sheet.getRange(targetRow, 1, 1, new_sheet_row.length).setValues([new_sheet_row]);
} else {
sheet.appendRow(new_sheet_row);
}
SpreadsheetApp.flush();
return sendResponse(true, "Údaje boli úspešne uložené");
} catch (error) {
return sendResponse(false, "Chyba pri ukladaní údajov: " + error.message);
}
}
Nenašli ste odpoveď? Kontaktujte podporu prostredníctvom online chatu alebo Telegram