Работа с промокодами
Бот позволяет не только раздавать промокоды пользователям, но и проверять их валидность, контролировать, чтобы их не использовали по нескольку раз.
Выдать клиенту промокод на покупку можно двумя способами:
- 1.Подготовить список промокодов в Гугл таблице, научить Salebot находить свободный промокод, выдавать его клиенту и отмечать его как выданный в гугл таблице;
- 2.Научить Salebot генерировать его по некоему правилу, выдавать клиенту и вносить в Гугл таблицу.
Проверить валидность промокодов можно, используя Гугл таблицу и API запросы к ней.
Обо всем этом читайте ниже.
Если у вас стоит задача ограничить доступ к боту или специальным предложениям, вы можете воспользоваться функцией проверки промокодов.
Подготовьте Гугл таблицу, в которой в одном столбце будет список ваших промокодов. Настройки доступа в этой таблице выставьте «Редактировать могут все, у кого есть ссылка». Как это сделать читайте в статье Работа с Google таблицами
Функция работает следующим образом. Клиент вводит в бота свой промокод, функция проверяет есть ли этот промокод в таблице в колонке, которую вы указали. Если промокод найден то в соседнюю ячейку добавляется надпись "Промокод использован" при этом функция возвращает следующий ответ:
{“status”: ‘’0’’}
Для проверки промокода вам необходимо отправить из блока следующие параметры
{"id":"1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYKc4", "promocode": "#{question}", "col_number": "1"}
Где id это id вашей гугл таблицы где хранятся промокоды. Вы можете получить его из ссылки на вашу гугл таблицу. Сама таблица должна быть доступна на редактирование для всех у кого есть ссылка.
Если промокоды находятся на отдельном листе, то вы можете использовать параметр list_name, в который необходимо передать название листа, например:
{"id":"1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYKc4", "promocode": "#{question}", "col_number": "1", "list_name": "Название листа"}
Следующий параметр это промокод который вводит посетитель.
col_number это номер колонки в таблице в которой хранятся промокоды.
{“status”: ‘’1’’}
, после этого повторно ввести промокод нельзя.Если функция не находит промокод в таблице или он уже использован то она возвращает ответ
{“status”: ‘’0’’}
Как это использовать и куда вводить, показано на рисунке ниже

#{custom_answer} - ответ с сервера, указанного в поле 'URL запроса"
Используйте эту переменную в поле ответ, чтобы посмотреть, что в нем содержится. Если вы все сделали правильно, то можете сохранить status->status, и в стрелках, в поле "Переменная для сравнения" выставить значения "status == 0" (и дать ответ пользователю, что код уже использован) или "status" == 1 (пользователь проходит дальше). Пример показан на рисунке ниже:

Подготовьте таблицу как на рисунке ниже. В первом столбце промокоды, а во втором пометка «Свободен». Настройки доступа в этой таблице выставьте «Редактировать могут все, у кого есть ссылка». Как это сделать читайте в статье Работа с Google таблицами

Вы получите ссылку вида:
https://docs.google.com/spreadsheets/d/1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg/edit?usp=sharing
Выделенный жирным фрагмент – это id вашей таблицы. Он нам понадобиться дальше.
В Salebot создайте блок в настройках которого укажите следующие параметры:
Тип запроса. POST-json
URL запроса. https://store.salebot.pro/function/findcell
Сохраняемые данные из JSON-ответа:
data->Промокод;
cell_number|row ->Строка;
JSON POST-параметров:
{"id": "1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg", "find": "Свободен", "col": 2, "return": 1}
Где вместо 1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg вставите id, полученный выше из адреса вашей таблицы.

Из этого блока создайте переход в следующий блок. В настройках Соединения кликните по фразе Настройки времени. В развернувшемся разделе в поле Задержка перед ответом выставьте -1, чтобы переход осуществлялся как можно быстрее.
В новом блоке выставьте настройки, описанные ниже.
Чтобы показать пользователю его промокод вставьте #{Промокод}.
Тип запроса. POST-json
URL запроса. https://store.salebot.pro/function/gsheets
JSON POST-параметров. {"id": "1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg", "write":{"b#{Строка}":"Использован"}}
Где вместо 1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg вставите id, полученный выше из адреса вашей таблицы.

Если промокод может создаваться по определенному правилу, то можно генерировать его прямо в Salebot и записывать в Гугл таблицу для дальнейшей проверки использования.
Для этого нам понадобятся переменные.
Например, чтобы сгенерировать уникальный промокод, мы можем использовать переменную #{client_id}. Это уникальная в Salebot переменная, обозначающая номер вашего клиента в системе.
В поле блока Расширенные настройки – Калькулятор при переходе запишите:
Промокод = промо#{client_id}
В поле Ответ в этом блоке запишите #{Промокод}.
В моем случае вы получите промокод вида промо1330882.
Если вы хотите добавить промокоду больше случайности, то можете добавить вызов функции random()
Промокод = 'promo' + '#{client_id}' + random(0,10)
В данном примере в конец добавляется одна случайная цифра
Теперь запишем его в Гугл таблицу промокодов:
Для начала создадим пустую таблицу. Настройки доступа в этой таблице выставьте «Редактировать могут все, у кого есть ссылка». В ячейку A1 напишем слово Промокод
Если первая ячейка будет пустой, то функция не сработает, п оэтому заполняем обязательно
Вы получите ссылку вида: https://docs.google.com/spreadsheets/d/1sl15vKFjo5TFD98GnVjF3AlLtdhr85-AkEjoeJkgDxE/edit?usp=sharing
Выделенный фрагмент – это id вашей таблицы. Он нам понадобится дальше.
Теперь вернемся в Salebot. Продолжим редактировать наш блок с промокодом.
Тип запроса. POST-json
URL запроса. https://store.salebot.pro/function/gsheets
JSON POST-параметров. {"id": "1sl15vKFjo5TFD98GnVjF3AlLtdhr85-AkEjoeJkgDxE", "mapping":{"a":"#{Промокод}"}}
Где вместо 1sl15vKFjo5TFD98GnVjF3AlLtdhr85-AkEjoeJkgDxE вставите id, полученный выше из адреса вашей таблицы.
У вас должно получиться как на рисунке ниже:

Last modified 1yr ago