Записываем данные в таблицу с обновлением данных

Перед тем как продолжить, нам нужно вернуться в Google-таблицы и добавить столбец с названием ID перед Name

Должно получится так

Это нужно для того, чтобы мы могли взять ID LeadConverter и проверять данные по нему, так как это уникальный параметр, он никогда не повторяется.

Если ID повторяется - то данные будут перезаписываться, если ID такого нет, то данные будут добавляться на новую строку.

Переходим на сайт https://script.google.com/

Нужно заходить на сайт под тем же аккаунтом, что мы создали таблицу, иначе скрипт будет работать некорректно

Нажимаем на "+ Создать проект"

Даем название проекту "Ответы из Квиз бота"

Далее вставляем удаляем текст в рабочей области и вставляем следующий код:

function doGet(e)
{
  var sheet = SpreadsheetApp.openById("ВСТАВЛЯЕМ ID ТАБЛИЦЫ ИЗ 1 ПУНКТА ИНСТРУКЦИИ");
  var ID = e?.parameter?.ID;

  var lastRowIndex = sheet.getLastRow() + 1;
  var index = lastRowIndex;

  for(let i = 2; i < lastRowIndex; i++) {
    if(sheet.getRange("A" + i).getValue() == ID) {
      index = i;
      break;
    }
  }

  sheet.getRange("A"+index).setValue(ID);
  sheet.getRange("B"+index).setValue(e?.parameter?.Name);
  sheet.getRange("C"+index).setValue(e?.parameter?.Channel);
  sheet.getRange("D"+index).setValue(e?.parameter?.Room);
  sheet.getRange("E"+index).setValue(e?.parameter?.Finishing);
  sheet.getRange("F"+index).setValue(e?.parameter?.Floor);
  sheet.getRange("G"+index).setValue(e?.parameter?.Budget);
}

Не забываем, первым делом, заменить текст ВСТАВЛЯЕМ ID ТАБЛИЦЫ ИЗ 1 ПУНКТА ИНСТРУКЦИИ, на ID таблицы, чтобы скрипт понимал куда писать данные

Что мы сделали в этом скрипте?

  1. Обозначили столбец, по которому нужно проверять данные, повторяются ли они

  2. Перенесли все буквы из таблицы построчно

  3. Пренесли все названия столбцов соотнеся их с буквами A = ID B = Name C = Channel D = Room E = Finishing F = Floor G = Budget

Шаблон для работы в своих проектах - будет ниже

function doGet(e)
{
  var sheet = SpreadsheetApp.openById("ВСТАВЛЯЕМ ID ТАБЛИЦЫ ИЗ 1 ПУНКТА ИНСТРУКЦИИ");
  var Название 1 столбца = e?.parameter?.Название 1 столбца;

  var lastRowIndex = sheet.getLastRow() + 1;
  var index = lastRowIndex;

  for(let i = 2; i < lastRowIndex; i++) {
    if(sheet.getRange("A" + i).getValue() == Название 1 столбца) {
      index = i;
      break;
    }
  }

  sheet.getRange("A"+index).setValue(Название 1 столбца);
  sheet.getRange("B"+index).setValue(e?.parameter?.Переменная_в_ячейке_B);
  sheet.getRange("C"+index).setValue(e?.parameter?.Переменная_в_ячейке_C);
  sheet.getRange("D"+index).setValue(e?.parameter?.Переменная_в_ячейке_D);
  sheet.getRange("E"+index).setValue(e?.parameter?.Переменная_в_ячейке_E);
  sheet.getRange("F"+index).setValue(e?.parameter?.Переменная_в_ячейке_F);
  sheet.getRange("G"+index).setValue(e?.parameter?.Переменная_в_ячейке_G);
}

Скрипт готов, его осталось опубликовать и настроить передачу из бота.

Нажимаем на кнопку "Начать развертывание", далее "Новое развертывание"

Заполняем "Описание" и выбираем "У кого есть доступ" - пункт "Все"

Далее, нажимаем "Начать развертывание"

Повляется окно с запросом доступов к нашим данным, нажимаем "Предоставить доступ"

В сплывающем окне, выбираем аккаунт, с которого мы создали скрипт

Далее, гугл будет ругаться, что мы предоставляем данные неизвестному приложению. Но так как это приложение мы создаем для личного пользования - бояться нечего :)

Нажмимаем на "Advanced" (В русской версии будет кнопка "Дополнительно")

Далее нажимаем на "Go to Ответы из Квиз бота (unsafe)" (В русской версии будет "Подолжить")

Далее в окне, нажимаем "Разрешить"

Далее у нас окрывается окно с ID развертывания и URL

Нам нужен URL, его мы будем использовать в боте и передавать данные

После внесения изменений и каждого нового развертывания, ID и URL меняются!

URL нужно будет заменять после внесений изменений в действии "Отправить через вебхук"

Нажимаем кнопку "ОК" после URL и нажимаем кнопку "Готово"

Переходим в LeadConverter

3. Создаем вебхук для отправки данных в Google-таблицы

Находим момент, в который мы будем записывать данные в Google-таблицы.

Мы будем записывать после того, как отправили сообщение оператору.

Создаем действие и выбираем "Отправить через вебхук".

Заполняем все поля:

URL-адрес обработчика: Вставляем скопированную ссылку из шага выше Отправить запрос методом: GET

Далее нажимаем на "+Добавить параметр" и заполняем построчно параметры запроса

Name значение {{first_name}} Channel значение {{channel.resource}} Room значение {{Комнаты}} Finishing значение {{Отделка}} Floor значение {{Этаж}} Budget значение {{Сумма}} ID значение {{id}}

Что мы сделали?

Взяли названия столбцов из таблицы и добавили в параметры, затем к каждому параметру записали переменные, данные которых будут загружаться в таблицу.

Нажимаем "Сохранить" и приступаем к тестированию

Первый запуск

Все работает :)

Второй запуск и указываем другие данные

Данные обновились :)

Теперь каждый пройденный квиз в боте, данные будут попадать и в личные сообщения операторов, и в Google-таблицу и если пользователь изменит первоначальные данные при повторном прохождении, данные просто обновятся

Если остались вопросы, всегда можно задать вопрос в техподдержку или в чат поддержки, мы всегда поможем :)

💟Как задать вопрос в поддержку?

Last updated