Раздел «Таблицы» в Salebot — инструмент для удобного хранения и управления данными внутри платформы. Теперь не нужно переключаться между разными сервисами: все таблицы доступны в одном проекте.

Возможности
- Создание таблиц с любым количеством строк и столбцов.
- Хранение и редактирование данных без сторонних инструментов и сервисов.
- Ввод значений, редактирование строк и столбцов или удаление через чат-бота с помощью функций.
Преимущества
- ✔ Упрощает работу с данными: вводить информацию в таблицу можно прямо из бота.
- ✔ Гибкость и простота: создавайте столько таблиц, сколько нужно, настраивайте их под свои бизнес-задачи.
- ✔ Возможность управлять таблицами без выхода из Salebot.
Таблицы помогают бизнесу структурировать данные и ускорить процессы.
Как создать таблицу
Для начала перейдите в раздел таблиц в необходимом проекте:

Далее вы увидите кнопку «Добавить таблицу», при клике на которую откроется модальное окно. В нём нужно ввести название таблицы:


Пропишите название для таблицы и кликните на кнопку «Готово». Новая таблица будет создана в проекте и появится в разделе «Таблицы»:

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

Вы увидите следующие настройки:

1. Добавление столбцов
Буквенные столбцы

При клике на кнопку в таблицу добавятся столбцы с обозначениями от A до Z.

Столбцы с названиями

При клике на кнопку появится модальное окно, в котором нужно прописать название добавляемого столбца:

После того как вы прописали название столбца, кликните на кнопку «Готово». Новый столбец добавится в таблицу:

2. Добавление строк
Можно добавить фиксированное количество строк — 100:

Или задать необходимое количество строк:

3. Экспорт таблицы

Экспорт позволяет сохранить таблицу в формате CSV со всеми данными и значениями, например, чтобы перенести её в другой проект Salebot или другой сервис для работы с таблицами.
4. Импорт таблицы
Импорт используется для загрузки таблиц из других сервисов.

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

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

На плашке с ненужной таблицей найдите кнопку удаления.
Внимание!
Восстановить удалённую таблицу нельзя.
Как вводить значения в таблицу
Вводить значения в таблицу можно вручную:

Также значения можно вводить с помощью функций в чат-боте.
Где найти ID таблицы?
Чтобы работать с функциями для чат-бота, понадобится ID таблицы.
Для начала перейдите в нужную таблицу: найдите её в списке и кликните по ней:

Далее кликните по адресной строке:

В адресной строке вы увидите адрес вида:
https://salebot.pro/projects/11111/table/2
Последнее число — ID нужной таблицы:

Создать новую запись в таблице
new_record(table_id, data)
Создаёт новую запись в таблице с указанными значениями.
Параметры:
-
table_id— ID таблицы. -
data— словарь с данными, которые нужно записать. Например:{"column_name1": "value1", "column_name2": "value2"}. Если колонки не существует, она создаётся.
Ответ:
ID новой записи.
Пример

Редактировать существующую запись в таблице
edit_record(table_id, record_id, data)
Параметры:
-
table_id— ID таблицы. -
record_id— ID редактируемой записи. -
data— словарь с данными, которые нужно изменить. Например:{"column_name1": "value3", "column_name2": "value4"}. Если колонки не существует, она не создаётся.
Ответ:
Возвращает полные данные по отредактированной записи:
{"column_name1": "value3", "column_name2": "value4"}
Пример

Удалить запись из таблицы по ID записи
delete_record(table_id, record_id)
Параметры:
-
table_id— ID таблицы. -
record_id— ID записи для удаления.record_idможет быть как одним значением, так и массивом значений, например[1, 2, 5].
Ответ:
{"message": "Удалено записей: 1"}
Найти первую запись по указанному значению в таблице
find_record(table_id, value, find_in, return_from)
Параметры:
-
table_id— ID таблицы. -
value— значение, по которому ищем совпадение. -
find_in— необязательный параметр. Название столбца, по которому ведётся поиск. Если не указан, запись ищется по всем столбцам. -
return_from— необязательный параметр. Название столбца, из которого нужно вернуть значение.
Ответ:
Если return_from указан, вернётся значение указанного столбца, если он есть в таблице.
Если return_from не указан или такого столбца нет, в ответе будут полные данные найденной записи:
{"column_name1": "value3", "column_name2": "value4"}
Пример

Получить значения из указанной записи
get_record_data(table_id, record_id, return_column)
Параметры:
-
table_id— ID таблицы. -
record_id— ID записи, из которой берём значения. -
return_column— необязательный параметр. Название столбца, из которого нужно вернуть значение.
Ответ:
Если запись найдена, функция возвращает словарь:
{"column_name1": "value1", "column_name2": "value2"}
Если передан параметр return_column и такой столбец существует, в ответе будет значение только из этого столбца.
Получение всех значений при поиске по нескольким колонкам
find_records_multiple_cols_list(table_id, column_data, return_col, with_index, delimiter, algorithm)
Если необходимо искать сразу по нескольким колонкам и получить список значений из выбранной колонки в строках, где найдены все искомые значения, используйте функцию find_records_multiple_cols_list.
Это аналог функции sheet_search_in_multiple_cols_return_list для Google Таблиц.
Параметры:
-
table_id— ID таблицы. -
column_data— поисковый запрос, то, что нужно найти. -
return_col— название колонки, из которой нужно вернуть значения. -
with_index— формат индексации найденных значений:-
0— нумерация (1, 2, 3, ...); -
1— индекс строки; -
""— список значений с новой строки без индексов и нумерации.
-
-
delimiter— разделитель между индексом и значением. -
algorithm— алгоритм поиска:-
F— полное совпадение; -
K— наличие ключевых слов; -
R— регулярное выражение; -
1-100— процент похожести.
-
Пример
table_id = 7
data = {"возраст": "26", "город": "Москва"}
return_col = "имя"
with_index = 1
delimiter = " - "
algorithm = "F"
res = find_records_multiple_cols_list(table_id, data, return_col, with_index, delimiter, algorithm)
res_list = res["list"]


Если проблем при выполнении запроса не возникло, в ответ приходит словарь, содержащий статус и найденные значения:
{
"status": true,
"rows_index": [2, 3],
"quantity": 2,
"list": "2 - Илья\n3 - Раиса"
}
Где:
-
status— результат поиска. -
rows_index— массив с номерами найденных строк. -
quantity— количество найденных строк. -
list— строка со всеми значениями из выбранного столбца.
Если возникла ошибка, вернётся статус false и описание ошибки:
{"status": false, "error": "Ошибка или описание"}
Получение первого значения при поиске по нескольким колонкам
find_first_record_multiple_cols_row(table_id, column_data, algorithm)
Если необходимо искать сразу по нескольким колонкам и получить первую найденную строку, используйте функцию find_first_record_multiple_cols_row.
Это аналог функции sheet_search_in_multiple_cols_return_row для Google Таблиц.
Параметры:
-
table_id— ID таблицы. -
column_data— поисковый запрос, то, что нужно найти. -
algorithm— алгоритм поиска:-
F— полное совпадение; -
K— наличие ключевых слов; -
R— регулярное выражение; -
1-100— процент похожести.
-
Пример
table_id = 7
data = {"возраст": "26", "город": "Москва"}
algorithm = "F"
res = find_first_record_multiple_cols_row(table_id, data, algorithm)
row_data = res["row_data"]
row_id = row_data["ID"]
row_name = row_data["имя"]
row_age = row_data["возраст"]


Если проблем при выполнении запроса не возникло, в ответ приходит словарь, содержащий статус и данные найденной строки:
{
"status": true,
"rows_index": [2, 3],
"quantity": 2,
"row_data": {
"ID": 2,
"имя": "Илья",
"возраст": "26",
"город": "Москва"
},
"row": 2
}
Где:
-
status— результат поиска. -
rows_index— массив с номерами найденных строк. -
row_data— данные из найденной строки. -
row— номер найденной строки.
Если возникла ошибка, вернётся статус false и описание ошибки:
{"status": false, "error": "Ошибка или описание"}
Арифметика по ячейке
Четыре функции меняют число в ячейке: прибавляют, вычитают, умножают и делят. Значение считает база, поэтому одновременные вызовы от разных клиентов не затирают друг друга — это то, чего не даёт связка «прочитать значение, посчитать, записать». Подходят для остатка на складе, баллов и счётчиков мест.
Прибавить число к ячейке таблицы
Прибавить число к ячейке внутренней таблицы и вернуть новое значение.
table_add_to_cell(table_id, record_id, column, value)
-
table_id— id таблицы -
record_id— id записи -
column— название столбца -
value— число, которое нужно прибавить
Пустая ячейка считается нулём. Если в ячейке лежит текст, функция вернёт ошибку и ничего не запишет. Целый результат возвращается без дробной части.
Вычесть число из ячейки таблицы
table_sub_to_cell(table_id, record_id, column, value)
Параметры и поведение те же, что у table_add_to_cell.
Ответ:
Новое значение ячейки. Если в «Остаток» было 10, то table_sub_to_cell(1, 1, "Остаток", 3) вернёт:
7
Умножить ячейку таблицы на число
table_mul_to_cell(table_id, record_id, column, value)
Параметры и поведение те же, что у table_add_to_cell.
Ответ:
Новое значение ячейки. Если в «Цена» было 12, то table_mul_to_cell(1, 2, "Цена", 1.5) вернёт:
18
Разделить ячейку таблицы на число
table_div_to_cell(table_id, record_id, column, value)
Параметры и поведение те же, что у table_add_to_cell. Деление на ноль вернёт ошибку.
Ответ:
Новое значение ячейки. Если в «Цена» было 18, то table_div_to_cell(1, 2, "Цена", 2) вернёт:
9
Занять первую свободную запись в таблице
Найти первую запись, подходящую под условие, и сразу пометить её. Поиск и пометка выполняются одним запросом, поэтому одна и та же строка не достанется двум клиентам одновременно. Нужна для промокодов, слотов записи и очереди.
table_claim_record(table_id, filter_data, values)
-
table_id— id таблицы -
filter_data— json вида{"Столбец": "значение"}, по которому ищется свободная запись. Сравнение точное. Пустое значение означает «ячейка пустая», то есть запись ещё не выдана. Нужен хотя бы один столбец -
values— json вида{"Столбец": "значение"}с тем, что записать в найденную строку. Без него та же строка выдавалась бы снова
Ответ:
Полные данные занятой записи вместе с её ID — его можно использовать дальше в edit_record. Для таблицы промокодов вызов
table_claim_record(2, '{"Выдан":""}', '{"Выдан":"#{client_id}"}')
вернёт:
{"ID":1,"Код":"SALE10","Выдан":"482913"}
Повторный вызов выдаст следующую свободную запись:
{"ID":2,"Код":"SALE20","Выдан":"482914"}
Когда свободных записей не осталось, возвращается пустая строка — это штатный ответ, а не ошибка. Проверять его удобно условием:
if(table_claim_record(2, '{"Выдан":""}', '{"Выдан":"#{client_id}"}') == '', "Промокоды закончились", "Ваш промокод выдан")
Посчитать значение по столбцу таблицы
Посчитать сумму, среднее, количество, минимум или максимум по столбцу.
table_aggregate(table_id, func, column, filter_data)
-
table_id— id таблицы -
func— что посчитать:count,sum,avg,minилиmax -
column— название столбца. Обязателен для всех функций, кромеcount -
filter_data— необязательный параметр. json вида{"Столбец": "значение"}— считать только по подходящим записям. Сравнение точное, пустое значение означает «ячейка пустая»
Пустые и нечисловые ячейки пропускаются: среднее считается только по заполненным числам, а минимум не становится нулём из-за пустой строки. count при этом считает все подошедшие записи, включая пустые.
Ответ:
Число. Для таблицы «Склад»
| ID | Товар | Остаток | Цена |
|---|---|---|---|
| 1 | Гайка | 8 | 25.5 |
| 2 | Болт | 4 | 9 |
| 3 | Винт | 5 | нет |
вызовы вернут:
table_aggregate(1, "count") -> 3
table_aggregate(1, "sum", "Остаток") -> 17
table_aggregate(1, "avg", "Остаток") -> 5.6666666667
table_aggregate(1, "min", "Остаток") -> 4
table_aggregate(1, "max", "Цена") -> 25.5
table_aggregate(1, "count", "", '{"Товар":"Болт"}') -> 1
table_aggregate(1, "sum", "Остаток", '{"Товар":"Гайка"}') -> 8
В примере с max по столбцу «Цена» значение «нет» пропускается как нечисловое.
Если под условие не подошла ни одна запись, возвращается 0:
table_aggregate(1, "count", "", '{"Товар":"Шуруп"}') -> 0