Перейти к основному содержимому

GoogleSheets

Действие GoogleSheets позволяет работать с данными Google Таблиц из сценария бота. Чтобы воспользоваться тегом, сперва создайте в JAICP интеграцию с Google Таблицами.

Как создать интеграцию
  1. Авторизуйтесь в JAICP и выберите нужный проект.
  2. На панели управления нажмите Каналы, затем Создать интеграцию → Google Таблицы.
  3. Выберите нужный аккаунт и предоставьте доступы для jaicp.com.

На странице Каналы у вас появится новая интеграция с Google Таблицами.

подсказка
Если вы хотите работать с Google Таблицами без тегов действий, но из вставок JavaScript-кода, используйте встроенный сервис $integration.

Параметры

ПараметрТипОписаниеОбязательный
operationTypeСтрокаТип действия. Возможные значения:
• readDataFromCells — получить данные из ячеек.
• writeDataToCells — сохранить данные в ячейки.
• writeDataToLine — сохранить данные в строку.
• deleteRowOrColumn — удалить содержимое ячейки.
• clearCellData — удалить строку или столбец.
Да
integrationIdСтрокаИдентификатор интеграции c Google Таблицами. Можно посмотреть на странице Каналы в блоке Интеграции.Да
spreadsheetIdСтрокаИдентификатор таблицы. Его можно узнать из адресной строки браузера, открыв нужную таблицу:
https://docs.google.com/spreadsheets/d/<id>/edit
Да
sheetNameСтрокаНазвание листа таблицы.Да
bodyОбъектКоординаты ячеек или значения для записи в таблицу. Формат значения зависит от типа действия из параметра operationType.Да
okStateСтрокаСтейт, в который перейдет диалог, если сценарий тега будет выполнен без ошибок.Нет
errorStateСтрокаСтейт, в который перейдет диалог, если сценарий тега будет выполнен с ошибкой: например, если вы укажете недопустимые значения параметров.Нет

Типы действий

readDataFromCells

Действие readDataFromCells позволяет получить данные из ячеек. В параметре body передайте массив объектов с полями:

  • cell — координаты ячейки.

  • varName — имя переменной. Данные из ячейки будут сохранены в $session.<varName>.

    предупреждение
    В значении varName используйте символы Aa–Zz, _, 0–9. Первым символом в имени должна быть буква. Нельзя использовать зарезервированные слова JavaScript.
body =
[
{
"varName": "firstName",
"cell": "B1"
},
{
"varName": "age",
"cell": "B3"
}
]

writeDataToCells

Действие writeDataToCells сохраняет данные в ячейки. В параметре body передайте массив объектов с полями:

  • cell — координаты ячейки.

  • values — массив значений для записи в ячейку.

    подсказка
    Если вы передаете в values больше одного значения, второе и последующие значения запишутся в столбцы, следующие за нужной ячейкой.
body =
[
{
"cell": "B1",
"values": ["Николаевич", "78121770707"]
},
{
"cell": "C1",
"values": ["{{$session.firstName}}"]
}
]
предупреждение
При сохранении данных в непустую ячейку ее содержимое будет перезаписано.

writeDataToLine

Действие writeDataToLine сохраняет данные в начало первой строки с необходимым количеством свободных ячеек. Уже существующие в таблице данные не перезаписываются — к ним добавляются новые.

В параметре body передайте объект с полем values. Оно должно содержать массив значений для записи в строку, например:

body = {"values": ["Василий", "Андреев", "Юрьевич", "45"]}

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

Пример таблицы

deleteRowOrColumn

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

В параметре body передайте объект с полем values. Оно должно содержать массив диапазонов ячеек, которые нужно удалить:

Что удалитьКак указать диапазон
Строкаn:n, где n — номер удаляемой строки.
СтолбецA:A, где A — буква удаляемого столбца.
Несколько строк подрядn:m, где n — первая удаляемая строка, а m — последняя.
Несколько столбцов подрядA:C, где A — первый удаляемый столбец, а C — последний.
body = {"values": ["B:E", "2:8"]}

clearCellData

Действие clearCellData удаляет содержимое отдельных ячеек или их диапазона. Строки и столбцы таблицы при этом не смещаются.

В параметре body передайте объект с полем values. Оно должно содержать массив диапазонов ячеек, которые нужно очистить:

Что очиститьЧто указать
ЯчейкаКоординаты ячейки, например B7.
Диапазон ячеекДиапазон в формате A3:C6, где A3 — верхняя левая ячейка, а C6 — нижняя правая.
body = {"values": ["A3:C6", "D4"]}

Использование в сценарии

  • Получение данных из таблицы.
state: GetContact
script:
$client.row = "123";
GoogleSheets:
operationType = readDataFromCells
integrationId = 34338a54-ii30-9ffa-i6e2-b1b94b8778ob
spreadsheetId = 66tavVasb2b1agpFuvfnMjqD6GpUJ1Hc4ubiUHwQXh8
sheetName = Список контактов
body =
[
{
"varName": "firstName",
"cell": "B{{$client.row}}"
},
{
"varName": "lastName",
"cell": "C{{$client.row}}"
}
]
okState = /GetContact/Verify

state: Verify
a: Вас зовут {{$session.firstName}} {{$session.lastName}}?
  • Удаление данных из таблицы.
state: DeleteData
GoogleSheets:
operationType = deleteRowOrColumn
integrationId = 34338a54-ii30-9ffa-i6e2-b1b94b8778ob
spreadsheetId = 66tavVasb2b1agpFuvfnMjqD6GpUJ1Hc4ubiUHwQXh8
sheetName = Данные по отгрузке
body = {"values": ["1:7", "B:K"]}