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

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

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

<figure><img src="/files/vKvcYhgGUjrmUGqfFMyh" alt=""><figcaption></figcaption></figure>

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

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

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

{% hint style="warning" %}
Нужно заходить на сайт под **тем же аккаунтом, что мы создали таблицу,** иначе скрипт будет работать некорректно
{% endhint %}

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

<figure><img src="/files/HnuVcZVuAWpSDwzIIWUr" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/2e7eKCwrGAoSJpj6LCrT" alt=""><figcaption></figcaption></figure>

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

```javascript
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);
}
```

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

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

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

   <figure><img src="/files/BKaQ50e66y7h473w84mz" alt=""><figcaption></figcaption></figure>
2. Перенесли все буквы из таблицы построчно<br>

   <figure><img src="/files/WHexPXUHprE4nMkxQoIc" alt=""><figcaption></figcaption></figure>
3. Пренесли все названия столбцов соотнеся их с буквами\
   A = ID\
   B = Name\
   C = Channel\
   D = Room\
   E = Finishing\
   F = Floor\
   G = Budget<br>

   <figure><img src="/files/ncJwJqrHFHZHGIQW9dpr" alt=""><figcaption></figcaption></figure>

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

```javascript
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);
}
```

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

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

<figure><img src="/files/ctkEXoaPCtQh5cxZT78B" alt=""><figcaption></figcaption></figure>

Нажимаем на иконку <img src="/files/e3bvXfDazwO7lHF3z76c" alt="" data-size="original">и выбираем "**Веб-приложение**"

<figure><img src="/files/TGeRF2vxmm8anDP3teiJ" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/cq2j2wyIicnrM7MEXIZ9" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/wCoOTWXDecjlAXk2JFUv" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/Q3PuQciCG6mbik4NwDtQ" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/sArLnYKP5jyaxUEOoky6" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/ahhfyYFwo77Wuga87Ab5" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/jB5XFCLjN52B8UGhUB9D" alt=""><figcaption></figcaption></figure>

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

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

{% hint style="warning" %}
После внесения изменений и каждого нового развертывания, **ID** и **URL** меняются!

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

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

<figure><img src="/files/E7EJxBktmkRpGRA0PziT" alt=""><figcaption></figcaption></figure>

Переходим в [LeadConverter](https://leadconverter.ru/)

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

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

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

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

<figure><img src="/files/8ENBjkYyQvo5WBLX4nmU" alt=""><figcaption></figcaption></figure>

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

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

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

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

<figure><img src="/files/ibR2qr57JsuX92tjiBgo" alt=""><figcaption></figcaption></figure>

**Что мы сделали?**&#x20;

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

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

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

<figure><img src="/files/XiTnrnHH6KbiP1VcAyuX" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/gxYdfTC7jBmWFa3dE3wJ" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/rune0kbbxfFrTyzQJblv" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/7hB18DdOHrq27gXppvOe" alt=""><figcaption></figcaption></figure>

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

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

{% hint style="success" %}
Если остались вопросы, всегда можно задать вопрос в техподдержку или в чат поддержки, мы всегда поможем :)
{% endhint %}

{% content-ref url="/pages/-MasAPNcg291uNezFqb4" %}
[Как задать вопрос в поддержку?](/kak-zadat-vopros-v-podderzhku.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.leadconverter.su/integracii/google-tablicy-google-sheets/zapisyvaem-dannye-v-tablicu-s-obnovleniem-dannykh.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
