# Робота з промокодами

Ви можете надати клієнту промокод одним із двох способів:

1. Підготуйте список промокодів у Google Sheet, навчіть Mavibot знаходити доступний код, передавати його клієнту, а потім позначати його як виданий у таблиці.&#x20;
2. Навчіть Mavibot генерувати промокоди за певними правилами, надайте код клієнту, а потім запишіть його в таблицю.

Ви можете перевіряти дійсність кодів за допомогою Google Sheets і його API-запитів.

Докладніше про ці процеси читайте нижче:

* [Як перевірити промокод із Google Sheets](#how-to-check-the-promo-code-from-google-sheets)&#x20;
* [Як надати промокод із Google Sheets](#how-to-give-a-promo-code-from-google-sheets)&#x20;
* [Як згенерувати промокод за допомогою Salebot](#how-to-generate-a-promo-code-with-the-help-of-salebot)

## Як перевірити промокод із Google Sheets

Якщо ви хочете обмежити доступ до бота або спеціальних пропозицій, ви можете скористатися функцією перевірки промокодів.

Підготуйте Google Sheet, у якому в одному стовпці буде список ваших промокодів. Встановіть налаштування доступу на “Anyone with this link can edit”. Як це зробити, читайте в [цю статтю](https://docs.salebot.ai/integrations/google-sheets)

Ось як працює функція: Клієнт вводить свій промокод у бота. Потім функція перевіряє, чи існує код у зазначеному вами стовпці. Якщо код знайдено, у сусідню клітинку додається фраза "Promo code was used", а функція повертає таку відповідь:

`{“status”: ‘’0’’}`

Адреса функції: <https://store.mavibot.ai/function/check-promocode&#x20>;

Для перевірки коду потрібно надіслати з блоку такі параметри:

`{"id":"1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf_OKvDMrOI", "promocode": "#{question}", "col_number": "1"}`

**id** це ID вашого Google Sheet, що містить промокоди. Ви можете знайти його в URL вашого документа. Переконайтеся, що параметри доступу до документа дозволяють будь-кому за посиланням редагувати його.

![](https://lh6.googleusercontent.com/cvcU-bsobIQ-uD5iqEzNsEbnTep8loKIyZrIlfPKkqUF7qTLewOTk8-L6RwUkXBlTGM8K_yQCn-jujDlBBuzH-_bIwhKvtOgRB-pkQnd5VpA108jCx75_UKlEV5mphSWkEsSwR5_7zrBwS9Sag)

Якщо промокоди розміщені *на окремому аркуші*, тоді потрібно використати параметр **list\_name**, у який слід вказати його назву, наприклад:

`{"id":"1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf_OKvDMrOI", "promocode": "#{question}", "col_number": "1", "list_name": "Sheet name"}`

Наступний параметр — це промокод, який вводить клієнт.

**col\_number** - номер стовпця, у якому зберігаються коди

`{“status”: ‘’1’’}`, після цього ви не зможете використати код повторно

Якщо функція не знаходить промокод у таблиці або він уже був використаний, тоді вона відповідає

`{“status”: ‘’0’’}`

Якщо вам цікаво, як це використовувати і куди це вставити, подивіться на скриншот нижче.

![](https://lh5.googleusercontent.com/WqtuqryusiRuwOBWKF80lAl2Q4HC5EfWZoSxDMw367AzRceNWRf01XyDVO6mfvIxAXan1-Ejzvg8iYl36yDUzfmdqP62nMNe1xqNAuZ-BjON9_F1oC7gsFBb2Ta_GZZyoWZy3tFKtmQzUv3OSA)

**#{custom\_answer}** - відповідь від сервера, про який згадується у вкладці "URL request".

Використайте цю змінну у вкладці відповіді, щоб побачити її вміст. Якщо все налаштовано правильно, збережіть status->status, потім у стрілках під вкладкою “Variable for comparison” встановіть умови **"status == 0"** (повідомляючи користувачу, що код уже був використаний) або **"status == 1"** (дозволяючи користувачу продовжити).

Приклад показано нижче.

![](https://lh3.googleusercontent.com/IBr66uuikrvi9s4hR82FHYxdxVpsRqtNVysc8obCZQzjFxMThrTz0jsbHWdgMCrv6iP0fU_9axov9EhL9CMeiUtZVFqNUK8Hk22grZ_x3Tr4JPVqI5oAxQmca_da1D2fta03u3e7Qy9tAwig3g)

## Як надати промокод із Google Sheets

Підготуйте вашу таблицю, як показано на зображенні нижче, з промокодами в першому стовпці та словом "Available" у другому стовпці. Налаштуйте доступ на “Anyone on the Internet with this link can edit”. Як це зробити, читайте в [цю статтю](https://docs.salebot.ai/integrations/google-sheets)

![](https://lh5.googleusercontent.com/XkxdMscLWR-5FE8V2c53KehWDsbt7XP6TAxVuVRsHrxSKlFPeM8xEAgvIENjRxWS_Z2bU8KtxEIQkz6NgExRYSr6qWu207cGuybkb_kAwDg_J0RotfpPSKRCQ4z8w3lFVLClEW9oYNFPnikWww)

Ви отримаєте посилання, подібне до цього: <https://docs.google.com/spreadsheets/d/**1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf\\_OKvDMrOI**/edit?usp=sharing>

Жирний текст тут — це ID вашої сторінки. Він знадобиться вам пізніше.

Створіть блок у Mavibot і вставте ці параметри в його налаштування:

Тип запиту: `POST-json`

URL request: `https://store.salebot.ai/function/findcell`

Збережені значення:

`data->Promo code;` \
`cell_number|row ->line;`

Параметри JSON:

`{"id": "1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf_OKvDMrOI", "find": "Available", "col": 2, "return": 1}`

де вам потрібно замінити 1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf\_OKvDMrOI на свій власний ID сторінки

![](https://lh5.googleusercontent.com/hr0fmr7F_klICs6FDm8ay1majH0R_GQ3EDsxvzFq-IWYJhP_DhvaoSKfGhr7O5aZSY0xUzC6YLb8pzcryhs7IK9J_4ACyjfeEAT_0PApcS27OXKP3QPfeSmcq_rTNLw9EIFA99NADl5QipPWLg)

Створіть блок нижче та натисніть "Time settings" у налаштуваннях з’єднання. У відкритому розділі, у вкладці **"Delay before answer"** введіть -1, щоб перехід відбувся якомога швидше.

У новому блоці встановіть параметри, зазначені нижче.

Щоб показати клієнту його код, введіть **#{Promo\_code}**

Тип запиту: `POST-json`

URL request: `https://store.mavibot.ai/function/gsheets`

Параметри JSON:

`{"id": "1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf_OKvDMrOI", "write":{"b#{line}":"Used"}}` \
де вам потрібно замінити 1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf\_OKvDMrOI на свій власний ID сторінки

![](https://lh3.googleusercontent.com/PtlosYtM_SMivssLQ1toFXIoerd7SenhhPtw_Doy-KDgB6G4Ycp3P02IO4LQyYqK8wiLbP_q7zL81wcguaIeHDSBQGVSk-HpXPMnmgnRvbs7thEsarKGaT5xIt3n4T979FEaHz52pvEikeCyfA)

## Як згенерувати промокод за допомогою Mavibot

Якщо промокод можна створити за певними правилами, тоді ви можете згенерувати його прямо в Mavibot і записати в Google Sheets для подальшої перевірки.

Для цього вам знадобляться змінні. Наприклад, щоб згенерувати унікальний промокод, ви можете використати змінну **#{client\_id}**. Це змінна в Mavibot, яка вказує номер вашого клієнта в системі.

У налаштуваннях блоку Advanced -> Calculator запишіть: \
`Promocode = promo#{client_id}`&#x20;

Вставте **#{Promo\_code}** у поле "Answer" \
Ви отримаєте промокод promo1330882.

Якщо ви хочете додати ще більше *випадкового* елемента до свого коду, тоді додайте виклик функції **random()** \
`Promocode = 'promo' + '#{client_id}' + random(0,10)` \
У цьому випадку в кінці додається 1 випадкова цифра

Тепер давайте вставимо його в нашу таблицю кодів.

Спочатку створіть нову порожню Google Sheet. Встановіть права доступу на "Anyone with the link can edit."\
Потім введіть Promo codes у клітинку A1.

{% hint style="warning" %}
Якщо перша клітинка порожня, функція не працюватиме. Ви маєте обов’язково її заповнити!
{% endhint %}

Ви отримаєте посилання, подібне до цього:

<https://docs.google.com/spreadsheets/d/**1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf\\_OKvDMrOI**/edit?usp=sharing>

Жирний текст тут — це ID вашої сторінки. Він знадобиться вам пізніше.

Тепер повернімося до Mavibot і продовжимо роботу над вашим блоком із промокодом

Тип запиту: `POST-json`

URL request: `https://store.mavibot.ai/function/gsheets`

Параметри JSON:

`{"id": "1sl15vKFjo5TFD98GnVjF3AlLtdhr85-AkEjoeJkgDxE", "mapping":{"a":"#{Promo_code}"}}`\
де вам потрібно замінити 1HfnHDbJYTGz68-3KWIcRISncTmdEn8v7Vf\_OKvDMrOI на свій власний ID сторінки

Ви повинні створити щось подібне до цього:

![](https://lh4.googleusercontent.com/Eivmw4kvkhay9Mt7Lc8pZiby50doKFXS8QDuFR75JJwP2UKLAs3EDUuB4IoWG0h8nl3f9xXk4TtEzfqNhxNhtAF6DQVg7QHCDy9bZRrAi9N2HAnWVv6gByBr46p0IzKg0338chEt1cWplmhvKg)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/uk/osoblivi-mozhlivosti/robota-z-promokodami.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
