# Сценарий с опросом

## Инструкция: сценарий-опрос с сохранением результатов в профиль клиента

Соберем сценарий с запросом у пользователя:\
\- имени\
\- номера телефона\
\- email \
\- региона проживания

Для создания нового узла воспользуйтесь кнопкой "+" или кликните правой кнопкой мышки по существующему узлу и выберите создать новый узел

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/7e6d30d7-4c91-46d0-b36b-4483fa5cd9ca/2024-10-09-08-45-26.png>" %}

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

1. В первом узле спрашиваем у пользователя его имя. Далее создаем второй узел для сохранения введенного имени пользователя и настраиваем передачу входящего контента от пользователя в него

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/ea73accb-594f-4888-9120-6060c4363906/2024-10-09-08-59-01.png>" %}

2. В узле "Сценарий с анкетой сохранение имени" в процедуре прописываем

```
{# то, что пользователь нам отправил приходит в переменной request.content #} 
{# сохраняем ввод пользователя в системный атрибут ФИО #}
{% set_attribute "profile_full_name" request.content %}
```

3. В этом же узле спрашиваем у клиента номер телефона. Если мы хотим сделать пропуск этого шага, если номер нас уже известен, то прописываем в процедуре узла Сценарий с анкетой сохранение имени дополнительное условие

```
{% if attributes.profile_phone_number %} 
    {% switch "Сценарий с анкетой ввод email" %}
{% endif %}
```

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/fca1ff07-14d3-4d73-bbb6-cd0d6c52a9ca/1213.png>" %}

В контенте узла прописываем сообщение для клиента и добавляем кнопку "Поделиться номером"

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/80969cf8-3382-4f98-8f5f-197b57010ddf/2024-12-17-10-21-42.png>" %}

Для кнопки тип действия выбираем "Отправить свой контакт" и нажимаем кнопку "Добавить"

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/c7c502ee-468e-4985-90bd-d747e4374765/2024-12-17-10-23-43.png>" %}

4. Создаем два новых узла "Сценарий с анкетой обработка номера телефона" и "Сценарий с анкетой повторный ввод номера телефона"&#x20;
5. Возвращаемся в узле "Сценарий с анкетой сохранение имени" и в действиях после отправки контента выбираем передать сообщение в узел  "Сценарий с анкетой обработка номера телефона".

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/6e861915-9b6f-457a-8176-91b11712d702/2024-12-17-10-28-03.png>" %}

6. Переходим в узел "Сценарий с анкетой обработка номера телефона" и в процедуре прописываем проверку на корреткность введенного номера телефона. Если номер телефона введен не корректный, то отправляем пользователя в сценарий "Сценарий с анкетой повторный ввод номера телефона". Если номер телефона был введен корректный, то сохраняем его в профиль клиента и отправляем на следующий шаг - ввод email.

```
{# проверяем введенный номер телефона на корректность #}
{% normalize_phone request.content is_forced=True as phone_number %}
{% if phone_number %}
	{# сохраняем номер телефона в профиль клиента #}
	{% set_attribute "profile_phone_number" phone_number %}
	{# переадресуем пользователя в следующий шаг #}
	{% switch "Сценарий с анкетой ввод email" %}
{% else %}
	{% switch "Сценарий с анкетой повторный ввод номера телефона" %}
{% endif %}
```

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/d3e80b8b-f62a-424a-bcc6-ef76ca38f0e7/2024-12-17-10-33-28.png>" %}

7. В узле "Сценарий с анкетой повторный ввод номера телефона" прописываем текст сообщения, добавляем кнопку "Поделиться номером" и указываем действие после отправки контента - переход в узел "Сценарий с анкетой обработка номера телефона".

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/a0c7ab72-166d-4cb2-985f-be43dd92c1c1/2024-12-17-10-36-32.png>" %}

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/70570345-335c-45e5-b032-72c79205945f/2024-12-17-10-36-59.png>" %}

7. Для сохранения email создаем узел "Сценарий с анкетой сохранение email"
8. Переходим в узел "Сценарий с анкетой ввод email". Добавляем текст сообщения для клиента&#x20;

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/1ad532eb-6743-4de3-a4e1-35ab56bba798/1215.png>" %}

Для того, чтобы проверить введенное пользователем значение в блоке "Действия после отправки контента" добавляем проверку на регулярное выражение.&#x20;

* Проверка на регулярное выражение: \
  ^\[a-zA-Z0-9\_.+-]+@\[a-zA-Z0-9-]+.\[a-zA-Z0-9-.]+$
* Сообщение об ошибке: \
  Введите почту в корректном формате.
* Передать сообщение в узел\
  Сценарий с анкетой сохранение email

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/b2429ac4-912c-470f-b0fd-9ee0716bd987/1216.png>" %}

9. В процедуре узла "Сценарий с анкетой сохранение email" в процедуре прописываем сохранение email

```
{# сохраняем в профиль клиента введенный email пользователя #}
{% set_attribute "profile_email" request.content %}
```

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/681dcaac-291f-495e-bbf8-5767f5f3b8b3/1217.png>" %}

В контенте данного узла добавляем сообщение "Выберите регион проживания"

10. Для сохранения выбранного региона создаем узел "Сценарий с анкетой сохранение региона проживания"
11. Возвращаемся в контент узла "Сценарий с анкетой сохранение email". Под сообщением добавляем кнопки для выбора региона. В GET-параметрах кнопкок мы будем передавать выбранное пользователем значение. Название GET-параметра придумываем любое, у каждой кнопки данного узла название параметра будет совпадать.

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/0498c9ae-73db-4d71-a824-bf70f964c34f/2024-12-17-10-49-23.png>" %}

* Название:\
  Москва
* Действие:\
  Узел
* Узел:\
  Сценарий с анкетой сохранение региона проживания
* GET-параметры:\
  city=Москва

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/9edacf53-3d22-4e53-aba7-8b7353e59255/2024-12-17-10-50-00.png>" %}

* Название:\
  Санкт-Петербург
* Действие:\
  Узел
* Узел:\
  Сценарий с анкетой сохранение региона проживания
* GET-параметры:\
  city=Санкт-Петербург

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/6938e2a4-cd12-4f5f-a914-00d03b41816a/1218.png>" %}

* Название:\
  Пермь
* Действие:\
  Узел
* Узел:\
  Сценарий с анкетой сохранение региона проживания
* GET-параметры:\
  city=Пермь

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/a8ddf4af-08e1-497c-a121-0dd0fd7edad3/1219.png>" %}

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/f0a8a0bb-ec9c-43e1-844b-a6f3927c1548/1220.png>" %}

12. Для сохранения региона создадим новый [атрибут клиента](https://dashboard.fstrk.io/settings/profile-fields). <br>

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/6fe6cdeb-80e9-4ba5-a91e-a4463d66622c/2024-12-17-11-05-16.png>" %}

* Название:\
  Регион проживания
* Ключ:\
  profile\_region
* Тип:\
  Список

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/fd68798d-3cc4-434d-957f-e6d71396dcf2/1221.png>" %}

12. Теперь добавим для атрибута "Регион  проживания" варианты значений Москва, Санкт-Петербург, Пермь

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/a6161981-7d67-4d48-b8db-d3541d81d8b4/2024-12-17-11-09-49.png>" %}

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/531b41cd-b8a8-43c9-89dd-5fdc50bda934/1222.png>" %}

12. Возвращаемся в раздел "Конструктор" в узел "Сценарий с анкетой сохранение региона проживания". В процедуре узла прописываем код:

```
{# сохраним переданный GET-параметр в профиль клиента в атрибут Регион проживания #}
{% set_attribute "profile_region" get_params.city %}
```

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/29f514c8-f197-4f84-9040-3f1f3f5108f3/1223.png>" %}

12. Анкета успешно пройдена пользователем, выведем в сообщении все введенные данные:

```
Вы ввели следующие данные:

▪️ Ваше имя: {{ attributes.profile_full_name }}
▪️ Ваш номер телефона: {{ attributes.profile_phone_number }}
▪️ Ваш email: {{ attributes.profile_email }}
▪️ Ваш регион проживания: {{ attributes.profile_region }}
```

{% embed url="<https://getmybot.storage.yandexcloud.net/uploads/dcd34f7a-1772-443d-83f1-8bf66dfc3a04/1224.png>" %}


---

# 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.fstrk.io/knowledge_base/instructions/1.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.
