> For the complete documentation index, see [llms.txt](https://docs.leadconverter.su/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.leadconverter.su/integracii/google-tablicy-google-sheets/poisk-dannykh-po-tablice-i-peredacha-ikh-botu.md).

# Поиск данных по таблице и передача их боту

У нас есть исходные данные в таблице

<figure><img src="/files/55NcRcrmadicX7xDpCHW" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Чтобы упросить себе задачу, мы будем делать поиск данных в таблице, привязываясь к **ID LeadConverter**. \
\
Это нужно для того, чтобы мы могли взять **ID LeadConverter** и проверять данные по нему, так как это уникальный параметр, он никогда не повторяется.
{% endhint %}

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

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

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

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

Даем название проекту "**Поиск данных по таблице. Квиз**"

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

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

  // Принимаем значение, которое будем искать
  var Value = e?.parameter?.Value;
  // Принимаем столбец, в котором будем искать ("A", "B", "C"... "Z")
  var Column = e?.parameter?.Column;

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

  // Ищем значение по всем строкам таблицы (со 2й строки, в первой - заголовки)
  // если нет заголовков можно поменять let i = 2 на  let i = 1
  //      здесь
  for(let i = 2; i < lastRowIndex; i++) {
    if(sheet.getRange(Column + i).getValue() == Value) {
      index = i;
      break;
    }
  }


  let response = {}

  "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    .split("")
    .forEach(el => {
      response[el] = sheet.getRange(el + index).getValue();
    })


  var obj =  {
    response,
  }

  return ContentService.createTextOutput(JSON.stringify(obj)).setMimeType(ContentService.MimeType.JSON);
}
```

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

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

{% hint style="success" %}
**Ничего больше делать не надо :)** \
\
Просто копируем шаблон, вставляем **ID таблицы** и опубликовываем скрипт :)\
Все настройки по поиску мы будем указывать в LeadConverter, когда будем собирать бота.
{% endhint %}

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

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

<figure><img src="/files/u6uUeHxng9nRpEaXoc5n" 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/9y3tgdmfIGQGelDCdRur" 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/)

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

Первым делом, создаем блоки для менеджера, чтобы бот вначале получал информацию, что ищем и потом искал в Google-таблице

Первым делом создаем блок "**Сообщение**" с элементом "**Вопрос**" и выбираем тип ответа пользователя "**Целое число**"

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

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

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

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

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

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

**Value** значение **{{id\_child}}**\
**Column** значение **A**

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

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

В **Value** указали данные, которые мы **хотим найти**\
В **Column** указали **колонку**, в которой мы **ищем данные** (От A до Z). Буква на английском языке.

Нажимаем "**Сохранить**"\
\
Далее, нам нужно полученный ответ от **Google-таблицы** вывести одним сообщением

Создаем блок "**Сообщение**" и пишем текст

```
Найдены данные!
‌
‌ID: {{return.response.A}}
‌Name: {{return.response.B}}
‌Channel: {{return.response.C}}
‌Room: {{return.response.D}}
‌Finishing: {{return.response.E}}
‌Floor: {{return.response.F}}
‌Budget: {{return.response.G}}
```

**Сохраняем**, соединяем блоки и приступаем к тестированию.

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

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

Поиск по таблицам готов :)\
\
Теперь можно разобрать вопросы, которые могут возникнуть

### Как искать данные по любому столбцу?

Нужно посмотреть в таблице, какая буква у этого столбца и указать ее в действии "**Отправить через вебхук**" в параметрах **Column**

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

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

### Как правильно записать ответ от Google-таблиц?

У нас есть ответ по столбцу **A**\
Выглядит он так

```
{{return.response.A}}
```

Если мы заменим букву **A** на **G**, то мы "вытащим" ответ от **Google-таблиц** из столбца **G**

```
{{return.response.G}}
```

{% hint style="danger" %}
Если в вебхуке, заменяется переменная в пункте "**Сохранить в переменную**", то запись изменится так: {{переменная из вебхука.response.A}}
{% endhint %}

И так можно вытащить ответ из каждого столбца, если там заполнены данные

У вас остались вопросы? Задавайте их в нашу техподдержку 👇

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