Действия

С помощью объектов массива actions вы можете настроить поведение смартапа при нажатии на элемент интерфейса — кнопку или ячейку карточки.

Пример массива buttons (кнопок смартапа), который содержит массив действий массив actions.

{
    "suggestions": {
        "buttons": [
            {
                "title": "Кнопка",
                "actions": [
                    {
                        "text": "Текст",
                        "type": "text"
                    }
                ]
            }
        ]
    }
}
Поле Описание

type

Обязательное

string

Тип действия.

Возможные значения:

  • text — действие, которое обозначает отправку сообщения от имени пользователя в чат с ассистентом;

    Пример:

                
    {
    "text": "Текст",
    "type": "text",
    "should_send_to_backend": true
    }
                
                

  • deep_link — действие, которое обозначает обработку диплинка ассистентом или хост-приложением.

    Пример:

                
    {
    "type": "deep_link",
    "deep_link": "example://app/profile"
    }
                
                

  • server_action — произвольное сообщение для бэкенда смартапа. Действия этого типа позволяют запускать сторонние смартапы.

    Пример:

                
    {
        "type": "server_action",
        "message_name": "SERVER_ACTION",
        "server_action": {
            "action_id" : "example_action_name",
            "parameters" : {
                "example_usefull_field": "example_456",
                "example_text": "Привет"
            }
        }
    }
                
                

text

Обязательное

string

Передаётся только в действиях с типом text.

Текст сообщения от имени пользователя.

should_send_to_backend

boolean

Может передаваться только в действиях с типом text.

Указывает, что сообщение нужно не только отобразить в чате с ассистентом, но и отправить в бэкенд.

По умолчанию true.

deep_link

Обязательное

string

Передаётся только в действиях с типом deep_link. Работает только при вызове смартапа в мобильном приложении и в SberPortal.

Диплинк, который нужно открыть.

message_name

string

Может передаваться только в действиях с типом server_action.

Название сообщения. По умолчанию SERVER_ACTION.

server_action

Обязательное

object

Передаётся только в действиях с типом server_action.

Сообщение для бэкенда, представленное в виде произвольного, валидного JSON объекта.




action_id

string

Произвольное название действия.




parameters

object

Произвольные параметры действия.

Запуск сторонних смартапов

Действия типа server_action позволяют запускать сторонние смартапы. Возможность запуска сторонних смартапов согласуется индивидуально на этапе модерации.

Чтобы запустить сторонний смартап, в поле message_name необходимо передать значение RUN_APP. При этом сообщение должно выглядеть следующим образом:

{
    "type": "server_action",
    "message_name": "RUN_APP",
    "server_action": {
        "action_id": "run_app",
        "app_info": {
            "projectId": "example_456",
            "applicationId": "app_456_ios",
            "appversionId": "app_version_456"
        },
        "parameters": {
            "example_usefull_field": "example_456",
            "example_text": "Привет"
        }
    }
}

В действиях, запускающих сторонние смартапы, поле action_id по умолчанию принимает значение run_app.

Помимо стандартных полей, в объекте server_action требуется передать информацию о запускаемом смартапе.

Бэкенд запускаемого смартапа получит запрос RUN_APP.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней