Статьи:
- Экспорт данных в Google Sheets
- Подключение FB-pixel к проекту на Kwiga
- Отправка вебхука (webhook) для передачи данных в другой сервис
- Основы интеграции и использования Zoom
- Формирование ссылок на оплату с предустановленными данными
- Обработка клика на кнопку в виджете
- Передача вебхука в KeyCRM с разделением заявки и оплаты
Покажем, как настроить автоматический экспорт данных из Kwiga в Google Sheets (Таблицу Google)
Вы можете настроить экспорт данных для различных событий, используя автоматизацию (в качестве события можно указать добавление контакта, добавление тега, успешную или неуспешную покупку и т.д, полный список событий можно посмотреть в статье).
Дополнительно Вы можете использовать возможность отправки вебхука при использовании виджет, принцип действий остается таким же.
Основные шаги:
-
Создать файл и добавить в него скрипт
-
Создать webapp и получить ссылку для отправки вебхука
-
Настроить отправку вебхука используя автоматизацию на Kwiga или же отправку форму в виджете.
Весь процесс показан на видео и не требует знаний в программировании. Просто следуйте указанным шагам, а если что-то не получается - свяжитесь с поддержкой.
Шаг 1: Создать файл, куда будут передаваться данные из Kwiga
Откройте Google Sheets и создайте новый файл и откройте редактор скриптов.
Откроется новое окно, в редактор которого Вам необходимо вставить скрипт. Скачать скрипт Вы можете по ссылке (или же скопируйте текст внизу статьи). Весь текст, который уже есть в редакторе Вам необходимо удалить.
Итоговый вид:
Шаг 2: Создать webapp и получить ссылку для отправки вебхука
В том же редакторе скрипта найдите кнопку Deploy и выберите New deployment
Укажите Web app в типе, а в дропдауне У кого есть доступ установите Все, и нажмите Deploy.
В результате Вы получите Web App URL, которую и нужно будет добавить на Kwiga.
Шаг 3: Настройка отправки данных на Kwiga
Нажмите на кнопку Все решения в верхнем меню и выберите Автоматизация. Создайте новый триггер и выберите событие, при котором будет запускаться автоматизация. Это может быть добавление контакта, добавление тега, оплата или же любое другое событие.
После этого опуститесь ниже и выберите в действиях Вебхук - Отправка данных. В ссылке укажите Web App URL, тип запроса POST, и выберите поля, которые должны быть экспортированы в таблицу.
Сохраните и все шаги выполнены.
Альтернативно, Вы можете настроить отправку вебхука из виджета, это доступно при использовании элемента Форма. Установите отметку Дополнительно передавать в сторонний сервис, в открывшейся форме добавьте ссылку, тип запроса POST, и выберите параметры для передачи. В этом списке будут доступны только те параметры, которые есть в форме (этом виджете).
var mock_data = {
"first_name": "Test",
"last_name": "Name",
"name": "Test Name",
"email": "kwiga-contact@kwiga.com",
"phone": "+380931112233",
"country": "Ukraine",
"city": null,
"utm_source": "",
"utm_campaign": "",
"utm_medium": "",
"utm_term": "",
"utm_content": "",
"description": "Added Test Name"
}
// Receive Kwiga Webhooks in Google Sheets /
// Below function could be ran to populate the header columns
function populateHeaders(hook_data) {
if(hook_data === undefined) {
hook_data = mock_data
}
var sheet = SpreadsheetApp.getActiveSheet()
var last_row = Math.max(sheet.getLastRow(),1)
sheet.insertRowAfter(last_row)
var headers_row = []
headers_row.push('timestamp');
var hook_data_keys = Object.keys(hook_data)
for (i = 0; i < hook_data_keys.length; i++) {
headers_row.push(hook_data_keys[i])
}
sheet.appendRow(headers_row)
SpreadsheetApp.flush()
}
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSheet()
var hook_load = null
try {
hook_load = JSON.parse(e.postData.contents)
//hook_load = mock_data
} catch (error) {
sheet.appendRow(["error","There was an error in this data"])
return
}
var hook_load_keys = Object.keys(hook_load)
var new_sheet_row = []
if (sheet.getLastColumn() == 0) {
populateHeaders(hook_load)
}
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
for (h in headers){
for (i = 0; i < hook_load_keys.length; i++) {
var key = hook_load_keys[i]
var fieldValue = hook_load[key]
if (headers[h] == key) {
new_sheet_row[h] = fieldValue
} else if (headers[h] == 'timestamp') {
new_sheet_row[h] = new Date()
}
}
}
sheet.appendRow(new_sheet_row)
SpreadsheetApp.flush()
}