Cikkek:
- Adatok exportálása a Google Táblázatokba
- Az FB Pixel összekapcsolása egy projekttel a Kwigán
- Webhook küldése adatok másik szolgáltatásba történő továbbításához
- A Zoom-integráció és használat alapjai
- Előre kitöltött adatokkal rendelkező fizetési linkek létrehozása
- Gombkattintás kezelése a widgetben
- Webhook küldése a KeyCRM-be az alkalmazás és a fizetés különválasztásával.
Megmutatjuk, hogyan állíthat be automatikus adatexportot a Kwigából a Google Táblázatokba.
Különböző eseményekhez beállíthat adatexportot automatizálással (eseményként megadható például kapcsolat hozzáadása, címke hozzáadása, sikeres vagy sikertelen vásárlás stb.; az események teljes listája a cikkben érhető el).
Emellett webhook küldésének lehetőségét is használhatja widgetek használatakor; a folyamat ugyanaz marad.
Fő lépések:
-
Hozzon létre egy fájlt, és adja hozzá a szkriptet
-
Hozzon létre egy webalkalmazást, és szerezze meg a webhook küldéséhez szükséges hivatkozást
-
Állítsa be a webhook küldését automatizálással a Kwigában, vagy űrlapbeküldéssel a widgetben.
A teljes folyamat a videóban látható, és nem igényel programozási ismereteket. Csak kövesse a megadott lépéseket, és ha valami nem működik, forduljon az ügyfélszolgálathoz.
1. lépés: Hozzon létre egy fájlt, ahová a Kwigából érkező adatok lesznek elküldve
Nyissa meg a Google Sheets szolgáltatást, és hozzon létre egy új fájlt, majd nyissa meg a szkriptszerkesztőt.
Egy új ablak nyílik meg, és be kell illesztenie a szkriptet annak szerkesztőjébe. A szkriptet a hivatkozáson keresztül töltheti le (vagy kimásolhatja a szöveget a cikk alján). Törölnie kell az összes szöveget, amely már a szerkesztőben van.
Végeredmény:
2. lépés: Hozzon létre egy webalkalmazást, és szerezze meg a webhook küldéséhez szükséges hivatkozást
Ugyanabban a szkriptszerkesztőben keresse meg a Deploy gombot, és válassza a New deployment lehetőséget
Válassza a Web app típust, majd a Who has access legördülő listában állítsa Everyone értékre, ezután kattintson a Deploy gombra.
Ennek eredményeként megkapja a Web App URL-t, amelyet ezután hozzá kell adnia a Kwigában.
3. lépés: Adatküldés beállítása a Kwigában
Kattintson a felső menüben az All solutions gombra, és válassza az Automation lehetőséget. Hozzon létre egy új triggert, és válassza ki azt az eseményt, amely elindítja az automatizálást. Ez lehet kapcsolat hozzáadása, címke hozzáadása, fizetés vagy bármely más esemény.
Ezután görgessen lejjebb, és a műveleteknél válassza a Webhook - Send data lehetőséget. A hivatkozás mezőben adja meg a Web App URL-t, a kérés típusát POST értékre, és válassza ki azokat a mezőket, amelyeket exportálni kell a táblázatba.
Mentse el, és minden lépés befejeződött.
Alternatív megoldásként beállíthat webhook küldést a widgetből is; ez a Form elem használatakor érhető el. Jelölje be az Additionally send to a third-party service lehetőséget, majd a megnyíló űrlapon adja hozzá a hivatkozást, a kérés típusát POST értékre, és válassza ki a küldendő paramétereket. Ebben a listában csak azok a paraméterek lesznek elérhetők, amelyek szerepelnek az űrlapon (ebben a widgetben).
Hogyan működik a Google Sheets szkript webhookokhoz
- Az első webhook híváskor a táblázat fejlécei automatikusan létrejönnek a beérkező adatok kulcsai alapján
- Ha a táblázatban már vannak fejlécek, és új adatmezőket szeretnél fogadni, add hozzá ezeket a fejléceket kézzel a táblázathoz
- A fejlécek sorrendje a táblázatban módosítható - a szkript automatikusan meghatározza a pozíciójukat
- Alapértelmezés szerint a szkript minden webhook érkezésekor új rekordokat ad hozzá
- Ha megadod a keyColumns mezőket, a szkript frissíti a meglévő rekordokat, vagy újakat ad hozzá, ha nem talál egyezést
- ⚠️ Fontos: A szkript módosítása után új telepítést kell létrehozni a Google Apps Scriptben, és frissíteni kell a webhook hivatkozását
Táblázatlap kiválasztása:
- Alapértelmezés szerint az aktív lap van használatban
- Felülbírálható a webhook paramétereivel:
- "sheet_name": "A lap neve" - lap kiválasztása név alapján
- "sheet_index": 2 - a lap szám szerinti kiválasztásához (1-től kezdve)
// ============================================================
// SZKRIPTBEÁLLÍTÁSOK
// ============================================================
// Duplikátumellenőrzés - add meg a meglévő rekordok kereséséhez használt mezőket
// Használati példák:
// var keyColumns = ["email"]; - ellenőrzés email alapján
// var keyColumns = ["order_id"]; - ellenőrzés rendelésazonosító alapján
// var keyColumns = ["email", "order_id"]; - ellenőrzés több mező alapján
var keyColumns = []; // A duplikátumellenőrzés ki van kapcsolva
// ============================================================
// Függvény a válasz elküldéséhez
function sendResponse(success, message) {
var response = {
"status": success ? "success" : "error",
"message": message
};
return ContentService.createTextOutput(JSON.stringify(response))
.setMimeType(ContentService.MimeType.JSON);
}
// A célmunkalap lekérése az adatok rögzítéséhez
function getTargetSheet(hook_data) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Ellenőrizzük, hogy meg van-e adva a lap neve
if (hook_data && hook_data.sheet_name) {
try {
var sheet = spreadsheet.getSheetByName(hook_data.sheet_name);
if (sheet) {
return sheet;
}
} catch (error) {
// A lap nem található
}
}
// Ellenőrizzük, hogy meg van-e adva a lapszám
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; // Átalakítjuk 0-tól kezdődő indexszé
if (index >= 0 && index < sheets.length) {
return sheets[index];
}
} catch (error) {
// Érvénytelen lapindex
}
}
// Alapértelmezés szerint az aktív lapot használjuk
return SpreadsheetApp.getActiveSheet();
}
// A táblázat fejléceit a megadott adatok alapján hozza létre
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;
}
// Bejövő webhook feldolgozása
function doPost(e) {
var hook_load = null;
// Ellenőrizzük a POST adatok meglétét
if (!e || !e.postData || !e.postData.contents) {
return sendResponse(false, "Nincsenek feldolgozható adatok");
}
// JSON adatok feldolgozása
try {
hook_load = JSON.parse(e.postData.contents);
} catch (error) {
return sendResponse(false, "Hiba a JSON adatok feldolgozásakor");
}
// A kapott adatok érvényesítése
if (!hook_load || typeof hook_load !== 'object' || Object.keys(hook_load).length === 0) {
return sendResponse(false, "Érvénytelen vagy üres adatok érkeztek");
}
try {
// A célmunkalap lekérése
var sheet = getTargetSheet(hook_load);
if (!sheet) {
return sendResponse(false, "A megadott lap nem található");
}
// Fejlécek létrehozása, ha a táblázat üres
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];
}
// Duplikátumellenőrzés
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; // fejlécek figyelembevétele
break;
}
}
}
// Adatok előkészítése rögzítéshez
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];
}
}
// Adatok mentése a táblázatba
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, "Az adatok mentése sikeres");
} catch (error) {
return sendResponse(false, "Hiba az adatok mentésekor: " + error.message);
}
}
Nem találta meg a választ? Lépjen kapcsolatba az ügyfélszolgálattal csevegésben vagy Telegram