> For the complete documentation index, see [llms.txt](https://docs.fstrk.io/knowledge_base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fstrk.io/knowledge_base/instructions/1.md).

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

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

Соберем сценарий с запросом у пользователя:\
\- имени\
\- номера телефона\
\- 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>" %}
