# Использование кнопок в сообщениях бота | Слот Button Menu и под-слот Button

## Назначение и общая информация

Слот Button Menu — Слот, объявляющий блок кнопок button, которые определяются после этого Слота.

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-fF1RX8uh18/9cf7b4f0b7e07bfa457a464a173afcd09d12afd134c49d01f79cee57a811e489b5fdc8445dbbaf54d9fc39daf2c8c61b78631d8e7ed52e36e36e09d375e318dc3760cfb19854a8fe20ce7dca810545b93c5522bcc4d3a6303b6b2333a7e8564cd5db65f9)

## Создание и настройки комплексного слота Button Menu (Button Menu+button+fallback)

### Атрибуты слота Button Menu

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-lIGNS17GyF/03c9ef2fef4547d67e0c1398b795ab85f3af8a927f04f0164d1172ef096bb3a00812d400ebfb94e0d5b7420c69696eea655808c79d3b07ad3efbf39461b93df542d1ecc8e8a5371b92580c565af6a79c6541fa7148a010eb51cae23da5675a84140687f4)

NAME\* — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов.

### Атрибуты подслота Button

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-OJz_Q4J2uy/2adc518be40da920ef9779708244baa4cc798e3e1f073c82fa1bf6176c720438cb46c94fc3e2e14d82ecfb26b40564689a2aeae63d0c488487214b38868c2e85814522d9887b902d324b6d60bb1d62b4bb56b2cd2c359f5cc71979af3de6e7222b2ddfbb)

1. Name — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов. Если название не введено, на Подслоте в Дерево сценария будут отображаться первые 34 символа из поля Label.
2. Label\* —  название кнопки, которое увидит Собеседник при Общение с Агентом.
3.
   1. Обрезка пробелов: по нажатию кнопки CREATE (при создании слота) или SAVE (при редактировании слота) обрезаются пробелы и переносы строк в начале и в конце поля Label.

Изменить текст в сгенерированных Подслотах button можно, развернув подслот двойным нажатием мышки, введя в поле LABEL название кнопки и нажав кнопку Save.

> Важно: конкатенация строк и переменных в Подслотах button не поддерживается. Если в поле LABEL кнопки содержится конкатенация переменных или строки с переменной, то при нажатии такой кнопки Общение перейдет в button.

### Атрибуты подслота Fallback

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-SmU3Uwz1Cn/e49fa41c54a0df68e2037cdd4e2050300f7efdf5d0f975760df69541a3f2d534a0789da987b88bb5828d2705f5cb8b5a09c2dcbe57a2c9fda25acf84f39270865c7d52df0e08019a1c24e3b6fa7902f14fb46bd089aa0ab104026b72900b723133a47d7c)

Name — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов. При создании Слота Button Menu в поле Name Подслота Fallback автоматически подставляется содержимое поля Name Слота Button Menu. Если содержимое поля Name удалено, Подслот в Дерево сценария будет отображаться без названия.

### Подслоты Button и Fallback

#### Автоматическая генерация подслотов при создании Button Menu

* При создании слота Button Menu автоматически создаются два Подслота button с названиями “Button 1” и “Button 2” и Подслотbutton.

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-BhOc5QW4NT/96b7a7a0e742f2d1b514250d2bf317c6604df34ec3f9c58e0487aeb132fab9ee6529027a13a3578e60fa9a2ab2528aa4c948a3a25f0a70c6456d889e057e0f6ced2816a10e71735de22e87d6daa2b693ba36926d6005cd2c1be5b40e2e2bcbce852ba0dd)

* Изменить текст в сгенерированных Подслотах button можно, развернув подслот двойным нажатием мышки, введя в поле LABEL название кнопки и нажав кнопку Save.

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-XjYSr0iwzo/fc0c877670b8649d941baee7a94c8d5d3eb9bc22d82243a9758e03af9b7174a132f8af6eccdf3dfb5af8a75ed8ce2d110ec8f0cca99591a025904fdbe8794732fdcaf1aa6eac57e9114cef956c44de750194afb39d1aeabbb792f9f1e291607fa6c94c75)

* Всегда должен существовать как минимум один Подслот button, поэтому последний Подслот нельзя удалить самостоятельно – он удаляется только вместе со Слотом Button Menu.

#### Добавление подслотов Button

Используя кнопку “+” можно создать новый Подслот button. Новый Подслот button будет создан ниже автоматически сгенерированного Подслота button со значением “Button 2”.![новая кнопка.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-qYDi07Jsxz/5e2368768d25439a6e67ddd9ed1f2818005eb26c0cbb5007d754fd59d3a7a5c43a0cc80b063f50520a9b705478a7463cd8ebd9140aa2612fd24f597dc07d4efedd3a730ef50df77ff367e02d9a9f693dfe8700c0145b6814f984e424ceea027ad3052dfb)

#### Удаление подслотов Button

* Чтобы удалить Подслот button, необходимо кликнуть по нему правой кнопкой мыши и нажать кнопку Remove Branch, затем нажать OK во всплывшем диалоговом окне.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-rssygi5TFB/ed041d3385c7aaa01a345bea134a854c4d31173bb6031fba3aab5fb6b7b099ed271447811c988631c826a4375c9adc1d27dad70341c8dc4eb3a3c4fdab607a2978f61199b7a92914b5bc863c4051e06828b475602a496d6124e78ad84919ff5184296af2)![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-wbbA6zFIAb/160c55e7e55dc39bf63f2a53729f9494fba46fd4b62976bfa626dfbcc17cf231e0b48866b1fb196cd7c70d300f2e33df844f23d1c59be4e4a8d18778f0d5ab0aa2c1385995d48b1992d67bc5e75194e3061ae665df233fa764076a92a12bb18f1066d1de)
* Возможно удалить любой Подслот button, если после удаления у Слота Button Menu остается хотя бы один Дочерний слот button.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-9p79HGtA6U/79b7aeac68457ed5f2b43011565ed37c5e1a2944b86d13f73363dbd72636bfd120a53c3417f23fdb0da345014c24c11d0ff7e4c43ee6043447458dad952adf5cfc646c0e342092e753441623b4ddf31353586e3b8706f144901d5c106a282b29363b2211)
* Удаление Подслот button невозможно. При попытке это сделать появится следующая ошибка по центру внизу:
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-FZObnHmAeI/9b36c0f47924848e8c67dcf9ef17ea67ac5194160b83404768a1b33ab938a007cfba67b46482694392526bba2705f970389d73b1cd6c7a79d64ceed54165c9ca73624bc3baa8337bfeb3fed034110561bb7fab77a54eece060e103915b590c2cdad0d7ea)
* Удаление  и единственного Подслот button невозможно. При попытке это сделать появится следующая ошибка по центру внизу:
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-8zweYyxEbO/dd95a761de51d0a9f0bfd643de6bdd655c71180d25a16c25506474f09b3281e1ca7f119d3cc621b1a11012265a7e62f6813eebcb1b72589726d70d139b2f15090b0e1a54c0caf10ea597ffe6cd0c1231f016265661a5e105bb92baadd968424c60278417)

### Использование синтаксиса в Подслоте Button

В Подслоте Button допустимо использование Выражение в поле Label. Подробнее: Синтаксис

## Работа слота

Слот Button Menu является пустым по своему содержанию и выполняет лишь формальную роль — определяет блок кнопок, названия которых указываются после него в Подслотах button.

1. При выполнении слота Button Menu на экран выводятся кнопки, на которые может нажать Собеседник в процессе общения с Агентом.
2. Если Собеседник нажимает одну из кнопок, Общение переходит в Подслот button, соответствующий этой кнопке. При этом в client\_message записывается содержимое этой кнопки.
3. > Важно: некоторые Конечный каналы добавляют пробелы в начало и конец сообщения, в том числе в лейблы нажатой Собеседником кнопки, также Собеседник может случайно поставить пробел в конце сообщения. В таких случаях происходит обрезка крайних пробелов сообщения и происходит нажатие кнопки, с лейблом которой совпадает полученная строка.
4. Если Собеседник ввел текст, совпадающий с текстом одной из кнопок (независимо от регистра), то Общение перейдет в Подслот button, соответствующий этой кнопке. При этом в client\_message записывается текст, введенный Собеседником.
5. Если вместо нажатия кнопки Собеседник ввел какой-либо текст, не совпадающий с текстом ни одной из кнопок, Общение переходит в Подслот fallback.
6. Если Собеседник отправил файл, Общение переходит в Подслот fallback.

\
\
