# Google Таблицы: блок «Обновить строку»

Source: https://docs.botman.pro/a/238-google-tablitsy-blok-obnovit-stroku

Это удобно, когда вы хотите:

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

💡 Где пригодится блок

- Клиент заполняет повторную форму → обновляется его статус или комментарий.
- При оплате заказа → в таблице меняется колонка «Статус» на «Оплачено».
- Пользователь вносит правки в профиль → обновляются имя, email или телефон.
- Внутренние процессы: менеджеры вручную добавляют комментарии, а бот дополняет автоматические поля.

⚠️ Важно

- Строка не добавляется, а заменяется содержимое уже существующей строки.
- Поиск происходит по точному совпадению значения.
- Если строка не найдена — данные не будут обновлены.

---

**Что подготовить в Google Таблице перед использованием блока**

Чтобы блок «Обновить строку» работал корректно, нужно предварительно привести таблицу к нужному виду. Вот что важно учесть:

**1. Заголовки в первой строке**

Первая строка таблицы (строка 1) должна содержать названия всех столбцов, с которыми вы планируете работать. Например: Email, Телефон, Имя, ID заказа, Статус, Комментарий.

📌 Эти заголовки вы будете использовать при настройке поиска и сопоставлении полей.\
⚠️ Без заголовков таблица не загрузится, и блок не сможет определить, куда вносить изменения.

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/74fbf892c76a605d29f170ee0f2758ae1dac6f88943832ad0b2172f0f48d61aa.png)

**2. Только столбцы A–Z**

- При подключении таблицы BotMan запрашивает только первые 26 столбцов — от A до Z.
- Даже если в таблице есть более широкие столбцы (AA, AB и т. д.) — они не будут отображаться и не смогут участвовать в поиске.

Пояснение: В Google Таблицах действительно существуют столбцы за пределами Z — например, AA, AB и далее.\
Они просто не отображаются, пока вы не начнёте в них вводить данные.

Однако в некоторых случаях эти столбцы могут появиться автоматически:

- если вы импортировали таблицу из Excel, CSV или другой системы;
- если скопировали данные с листа, где использовались широкие формулы;
- если случайно что-то ввели или вставили в ячейки после колонки Z.

🔧 BotMan по техническим причинам обрабатывает только диапазон A1–Z1 — это ограничение со стороны API.\
Поэтому всё, что находится за пределами этих колонок, не будет подгружено при настройке блока.

**3. Права доступа — обязательно «Редактор»**

Для корректной работы таблица должна быть доступна подключённому Google-аккаунту с правами «Редактор».

Возможны два варианта:

- таблица принадлежит аккаунту, подключённому в интеграции;
- таблица расшарена на этот аккаунт напрямую или по ссылке — обязательно с правами «Редактор».

Если у подключённого аккаунта есть только права:

- Читатель — блок не работает, данные не загружаются;
- Комментатор — также не работает;
- Редактор — ✅ всё работает корректно.

При недостаточных правах блок не покажет ошибку, но данные не будут подгружаться или записываться — это может выглядеть как «тихий сбой».

**4. Уникальное значение для поиска**

В одном из столбцов должен быть уникальный идентификатор — например, Email, Telegram ID, или номер заказа.

- Именно по нему бот будет искать нужную строку.
- Если таких значений в таблице нет — данные могут обновиться не в ту строку, либо вообще не обновиться.

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/89efccbda0088bb351039b973ae1e7cc9fa8c0790588cc95a9b427e571eedb34.png)

**5. Пустые таблицы допустимы**

Вы можете использовать Google Таблицу, в которой ещё нет данных (строк), — главное, чтобы в первой строке были заголовки столбцов. Это обязательное условие.

Для чего это важно: Блок «Обновить строку» работает с заголовками, чтобы понять, куда записывать значения. Без заголовков таблица не будет загружена, и вы не сможете настроить блок.

Рекомендация: На этапе настройки и тестирования лучше временно добавить 1–2 строки данных вручную. Это поможет убедиться, что:

- таблица читается корректно;
- блок находит нужную строку;
- обновление выполняется правильно.

После успешной проверки вы можете удалить тестовые строки и использовать таблицу уже в рабочем режиме.

---

**Настройка блока «Обновить строку»**

Пошаговая инструкция по настройке блока, который обновляет данные в выбранной строке Google Таблицы на основе переменных из BotMan.

**Шаг 1. Укажите ссылку на таблицу**

Вставьте URL Google Таблицы, в которой нужно обновлять данные.\
Ссылка копируется из адресной строки браузера.

📌 Убедитесь, что:

- Таблица доступна из подключённого аккаунта с правами Редактор.
- В первой строке есть заголовки.

🔗 Пример ссылки: `https://docs.google.com/spreadsheets/d/1aBcD...`

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/cef57ac951585de1d3aac608e2e4143356e916b85e79f1b1188600a41d883b12.png)

**Шаг 2. Выберите рабочий лист**

После того как вы вставили ссылку на Google Таблицу, BotMan автоматически подгрузит список всех листов, которые есть в этом файле.

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

Обратите внимание:

- Если список не подгружается:\
  \- проверьте корректность ссылки;\
  \- убедитесь, что у подключённого аккаунта есть доступ к таблице;\
  \- проверьте, есть ли заголовки в первой строке на выбранном листе (A1–Z1).
- Если названия листов слишком длинные, они могут обрезаться визуально — но данные при этом подтягиваются корректно.

⚠️ Если выбранный лист не содержит заголовков, BotMan покажет предупреждение и не позволит продолжить настройку.

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/a62d908f6f95bf17ed2ed4ebd77d821acce12d2999e71679c41116fae30bb659.png)

**Шаг 3: Укажите столбец для поиска**

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

Это критически важное поле: именно в этом столбце бот будет искать совпадение со значением из переменной.

Что сюда указывается— например:

- Telegram ID
- Email
- Телефон
- Номер заказа
- Уникальный код

**⚠️ Важно:**

- Поиск происходит только по выбранному столбцу. Если нужное значение находится в другом столбце — оно не будет учтено.
- Сравнение происходит по точному совпадению значения: учитываются пробелы, регистр, символы и формат (например, +7999... и 8999... — это разные значения).
- Если столбец содержит несколько одинаковых значений, будет обновлена первая строка, в которой найдено совпадение.
- Если переменная пуста — поиск не выполнится.
- Если совпадение не найдено — строка не будет обновлена. Ошибки не произойдёт, сценарий продолжит выполняться.

**💡 Рекомендуем:**\
Используйте уникальные значения для поиска: лучше всего подойдут Telegram ID или Email.

Номер телефона может быть проблемным, если формат ввода отличается между ботом и таблицей (с +7 / 8, пробелами и т.д.).

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/cc36150d8189c37dd291b80cc4922fd4cbfd34122ee9501bddb2e0e91e80e501.png)

**Шаг 4: Укажите значение для поиска**

Теперь укажите, что именно искать в выбранном столбце.\
Это значение обычно подставляется из переменной, которую бот уже получил ранее (например, при подписке, вводе или передаче через шаги)

**🔽 Что можно выбрать:**

- Системные переменные. Например: Telegram ID, Email, Телефон, Имя, Статус активности.
- Пользовательские поля. Все поля, созданные вами в разделе: Настройки → Пользовательские поля.
- Глобальные переменные. Доступны в разделе: Настройки → Глобальные переменные.
- Метки. Подтягивается полный список меток в вашей учётной записи, независимо от того, назначены ли они пользователю.

**⚠️ Обратите внимание:**

- Значение должно быть непустым на момент выполнения блока. Если переменная пуста — строка не будет найдена, и обновление не произойдёт.
- Поиск выполняется строго по совпадению — любые лишние пробелы, символы или несовпадение регистра приведут к тому, что строка не найдётся.

💡 Рекомендуем:

Перед использованием блока «Обновить строку» добавьте шаг «Проверка поля» (в блоке Условие), чтобы убедиться, что переменная содержит нужное значение.

Это поможет избежать «тихих сбоев» и точно понять, работает ли поиск.

**Пример.** Вы выбрали:

- Столбец поиска: Telegram ID
- Искомое значение: переменная`{{telegram_id}}`

При выполнении сценария бот найдёт строку, в которой Telegram ID совпадает с ID текущего пользователя, и обновит в ней нужные значения.

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/9301a320f2a58608877587548a55dee7ff8e327220e17e3a26fb4aa5ea595ff4.png)

**Шаг 5: Укажите, какие данные записать в таблицу**

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

Для этого нужно сопоставить:

- слева — переменную BotMan, содержащую нужное значение;
- справа — столбец в таблице, в который это значение будет записано.

Пример сопоставления:

- `{{user_name}}` → столбец Имя
- `{{status}}` → столбец Статус
- `{{comment}}` → столбец Комментарий

Что произойдёт при выполнении блока:

- Если строка найдена — значения из переменных перезапишут содержимое выбранных ячеек этой строки.
- Если строка не найдена — блок не выполнится, но ошибок не будет. Данные не обновятся, сценарий продолжит выполнение.

Обратите внимание:

- Вы можете сопоставить любое количество полей — от одного до всех доступных в таблице (в пределах A–Z).
- Название переменной нельзя вводить вручную — выбирайте из выпадающего списка.

В списке доступны:

🔹 Системные переменные — например, Имя, Телефон, Email\
🔹 Пользовательские поля, созданные вами\
🔹 Глобальные переменные, добавленные в настройках

Если переменная пуста:

- В соответствующую ячейку таблицы будет записано пустое значение (ячейка обнулится).
- Если вы не хотите очищать ячейки — добавьте перед блоком проверку переменной через шаг «Проверка поля».

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/832b53c3ffe35ec4cd3ca7c5592262cb09e731a9ae24e04607e7bdd3c93433fc.png)

---

**Финальный шаг: протестируйте сценарий**

После настройки блока «Обновить строку» обязательно убедитесь, что всё работает корректно:\
данные действительно обновляются, переменные заполняются, сценарий выполняется без сбоев.

Как это сделать:

1. В режиме редактирования сценария перейдите в верхнюю панель.
2. Нажмите кнопку «Тестировать».
3. Выберите режим:

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

![](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/bab93f7a40235a28ad0669c0903bf5541e9e2b6d9207e49baf831b30b75d56aa.png)

Что стоит проверить:

- Обновляется ли строка с нужным значением в таблице?
- Подставились ли значения из переменных?
- Все ли нужные столбцы были обновлены?
- Что происходит, если переменная пуста или строка не найдена

💡 Советы по отладке:

- Добавьте временный шаг с сообщением до или после блока — выведите в сообщении нужные переменные, чтобы убедиться, что они содержат значения.
- Проверьте, что:\
  \- В таблице есть заголовки в первой строке;\
  \- Столбец поиска существует;\
  \- Указано значение для поиска;\
  \- Все переменные сопоставлены корректно.

**Если обновление не происходит:**

- Проверьте интеграцию с Google — возможно, она отключена;
- Убедитесь в наличии прав «Редактор» у подключённого аккаунта;
- Проверьте, что таблица и нужный лист доступны, и названия заголовков не были изменены.

---

**Возможные ошибки и внешние причины, по которым блок может не сработать**

Даже если блок настроен правильно, его выполнение может быть прервано внешними факторами. Ниже — список наиболее частых ситуаций и что с ними делать.

**❌Интеграция с Google была отключена**

Что происходит:

- Таблицы не подгружаются.
- Данные не обновляются, блок не срабатывает.

Причины:

- Интеграция была отключена вручную.
- У пользователя вышел срок авторизации или изменён аккаунт Google.

Что делать:

- Перейдите в «Интеграции» и заново подключите Google-аккаунт.
- Убедитесь, что выбран нужный аккаунт, доступ к которому выданы права.

**❌Права доступа к таблице изменились**

Что происходит:

- Таблица была расшарена ранее, но права были понижены (например, только просмотр).
- Блок не может изменить данные — и "молчит".

Что делать:

- Проверьте права доступа в Google Таблицах.
- Убедитесь, что у подключённого аккаунта есть права “Редактор”.

**❌Таблица была удалена или перемещена**

Что происходит:

- Ссылка остаётся в блоке, но Google Таблица уже недоступна.
- При выполнении блок ничего не делает.

Что делать:

- Проверьте вручную: открывается ли таблица у подключённого аккаунта.
- Если файл удалён — создайте заново и обновите ссылку в блоке.

**❌Таблица изменилась после настройки блока**

Что происходит:

- Был переименован заголовок столбца, используемый для поиска.
- Столбец был удалён.
- Переименован рабочий лист или изменены позиции столбцов.

Что делать:

- Перепроверьте:\
  \- Названия заголовков;\
  \- Наличие столбца поиска;\
  \- Сопоставление переменных.

**❌Таблица принадлежит другому аккаунту**

Что происходит:

- Вы вставили ссылку на таблицу, к которой подключённый аккаунт не имеет доступа.

Что делать:

- Убедитесь, что таблица:\
  \- Либо принадлежит подключённому аккаунту,\
  \- Либо расшарена на него с правами “Редактор”.

**❌Таблица пуста или структура нарушена**

Что происходит:

- В таблице нет заголовков в строке 1.
- Пусто в ячейке, по которой выполняется поиск.
- Несопоставлены необходимые переменные.

Что делать:

- Добавьте строку заголовков в первую строку (строка 1).
- Временно добавьте тестовые строки с реальными значениями для отладки.
- Убедитесь, что переменные заполнены на момент выполнения блока.

---

💡 Как избежать "тихих сбоев"

- Используйте блок “Проверка поля” перед или после “Обновить строку”, чтобы убедиться, что переменные не пусты.
- Тестируйте сценарий вручную с реальными значениями.
- Добавляйте тестовые строки в таблицу, чтобы проверить корректность обновлений.
- Периодически проверяйте ссылку и права доступа к таблице.
- Храните резервную копию таблицы, если от неё зависит критическая логика.

