Боты для Workplace

Создание ботов для групп и чата Workplace

Обзор

С помощью пользовательских интеграций в Workplace теперь можно создавать функциональные боты, способные взаимодействовать с людьми в группах и чатах.

Можно создать бот, который автоматически публикует контент в группах, отвечает на вопросы и предоставляет дополнительную информацию или предпринимает определенные действия, когда кто-то упоминает его в комментариях к публикации. Также можно создавать боты, которые общаются в людьми в рабочем чате и предоставляют им информацию в режиме реального времени или обрабатывают запросы с использованием элементов структурированной беседы, таких как быстрые ответы и постоянные меню.

Чтобы создать бота для сообщества, понадобится роль системного администратора.

Если вы не являетесь администратором своего сообщества Workplace, для создания бота вам потребуется помощь администратора.

Боты в виде страниц

В Workplace, как и на платформе Messenger, боты представлены в виде страниц. Страница автоматически создается при создании приложения с пользовательской интеграцией и позволяет пользователям сообщества Workplace находить ваш бот и взаимодействовать с ним.

Страницы ботов являются общедоступными в масштабах компании, поэтому любой участник сообщества Workplace может увидеть или отметить его, а также отправить ему сообщение. Однако в зависимости от уровня разрешений, выбранного вами при создании бота, у него может отсутствовать возможность видеть все содержимое Workplace и взаимодействовать с ним.

Например, если у вашего бота разрешение на чтение контента группы, он сможет видеть групповой контент. Однако если у него нет разрешения на публикацию в группах, он не сможет публиковать ответы на контент в какой-либо группе.

Кроме того, чтобы найти вашего бота в рабочем чате и отправить ему сообщение, у пользователя должно быть разрешение на отправку сообщений любому участнику.

Боты в группах

Боты в группах могут выполнять многие действия, доступные обычным пользователям. Это означает, что можно создавать боты для публикации нового контента, размещения комментариев с новой информацией к уже существующему контенту и добавления отметок "Нравится", чтобы поддержать или одобрить чужую публикацию.

Боты также могут @упоминать людей для привлечения их внимания. Пользователи также могут @упоминать ботов, чтобы инициировать определенный рабочий процесс или задать вопрос.

Наконец, боты могут подписываться на группы и @упоминать объекты webhook для отслеживания контента и гибкого взаимодействия с пользователями.

Боты в чате

В то время как боты в группах потребляют информацию и распространяют ее среди людей в асинхронном режиме, боты в чате лучше всего подходят для непосредственного взаимодействия в режиме реального времени с одним человеком или определенной группой людей.

Например, чат-бот может рассылать пользователям важные напоминания и уведомления о предстоящих событиях, таких как собеседования и встречи. Боты в рабочем чате также могут участвовать в беседах с пользователями и выполнять различные действия в зависимости от полученной обратной связи.

Эта модель взаимодействия основана на той же концепции, что и на платформе Messenger. Благодаря этому боты в рабочем чате могут использовать такие функции, как постоянные меню, быстрые ответы и шаблоны, делающие взаимодействие с пользователем более гибким.

Чат между ботом и пользователем

Если у бота есть разрешение на отправку сообщений любому участнику, он может отправлять прямые сообщения любому пользователю Workplace на его электронный адрес или с использованием его ID Workplace через API Send для Messenger.

Отображение бота в подсказках при вводе в новом сообщении

При наличии разрешения на отправку сообщений любому пользователю бот тоже может отображаться в подсказках при вводе в чате Workplace.

Отображение бота в подсказках при вводе в новом сообщении

Подписавшись на webhook отправки сообщений странице, бот также будет получать уведомления каждый раз, когда пользователь отправляет ему сообщение, благодаря чему можно построить беседу с отправкой и приемом сообщений.

Беседа между ботом и пользователем

Чат между ботом и группой

Если у бота есть разрешения на отправку сообщений любому пользователю и участие в групповых чатах, его можно добавлять в групповые чаты, а также он может создавать их и управлять ими. Чтобы создать групповую беседу, бот должен указать список получателей. Он также может переименовывать беседы для создания обсуждений в чате на определенные темы с определенными людьми.

Именованная беседа с определенным набором пользователей, созданная ботом.

Когда вы активируете поддержку групповых чатов, бот будет появляться в подсказках при добавлении пользователей в существующих групповых беседах. Он будет получать webhook для каждого сообщения, отправляемого пользователями в этом чате, и сможет публиковать ответы с помощью соответствующего thread ID.

Добавление бота в групповой чат и его @упоминание

Создание именованных бесед

Чтобы создать беседу с определенными получателями, отправьте запрос POST к конечной точке /me/messages, указав массив recipient IDs и следующие начальные полезные данные в объекте message:

POST /me/messages
{
  "recipient": {
    "ids": [<user_ids>]
  },
  "message": <message_payload>
}

Вы получите ответ с полезными данными, содержащими значение thread ID, которое можно использовать для публикации дальнейших сообщений.

Если вновь воспользоваться той же конечной точкой с тем же списком получателей, будет создана новая беседа. Для отправки сообщений в уже созданную беседу используйте запрос POST к конечной точке /me/messages, указывая thread_id в полезных данных recipient, как в следующем примере:

POST /me/messages
{
  "recipient": {
    "thread_key": <thread_id>
  },
  "message": <message_payload>
}

Чтобы переименовать созданную ботом беседу, отправьте запрос POST к границе контекста /{thread}/threadname, как в следующем примере:

POST /t_<thread_id>/threadname
{
  "name": "new name"
}

Обратите внимание: перед значением thread_id в пути к границе контекста необходимо указывать префикс "t_".

Для добавления и удаления участников в беседах используйте запросы POST и DELETE к границе контекста /{thread}/participants, как в следующем примере:

POST t_<thread_id>/participants
{
  "to": [<user_ids>]
}

DELETE t_<thread_id>/participants
{
  "to": [<user_ids>]
}

Обратите внимание: операции на границе контекста /{thread}/participants доступны для бесед, созданных с помощью интеграции.

Упоминание в беседе

Когда ваш бот упоминают в сообщении, наши webhook отправляют список отмеченных в этом сообщении участников в виде следующей полезной нагрузки:

{
    "object":"page",
    "entry":[{
        "id":"746230239054322",
        "time":1539281406974,
        "messaging":[{
            ...
            "message":{
                "mid":"<message id>",
                "seq":2192,
                "text":"@Edu Gomes @Example Bot What's 2+2?"
            },
            "mentions":[{
                "offset":0,
                "length":10,
                "id":"100017376437045"
            },
            {
                "offset":11,
                "length":12,
                "id":"746230239054322"
            }]
        }]
    }]
} 

Партнерские платформы ботов

У Workplace есть партнерские платформы, которые обеспечивают поддержку ботов Workplace. Их список можно найти здесь. Вы можете воспользоваться любой из этих платформ для создания функционального бота без написания программного кода.

Рекомендации

Выбирайте подходящий канал

Принимая решение о создании бота для группы или чата, следует проанализировать его пользу в том и другом случае.

  • Если вам нужен бот, с которым смогут одновременно взаимодействовать несколько пользователей или который должен публиковать контент, предназначенный для нескольких людей, имеет смысл создать бот, который сможет размещать материалы в группах, отвечать на комментарии и упоминания в групповых публикациях.
  • Если вам нужен бот, который сможет оповещать пользователей о предстоящих событиях (например, о таких, которые требуют быстрой реакции) или о чем-то, что предполагает личное взаимодействие, реализуйте для него поддержку бесед в рабочем чате.

Одно приложение может работать с обоими этими каналами. Например, иногда бот службы поддержки может принимать сообщения в рабочем чате, а иногда — публиковать контент в группах и реагировать на ответы.

Глубокие ссылки на боты

Используйте ссылки в формате https://w.m.me/{page-id}, которые будут указывать непосредственно на вашего чат-бота в Workplace. В настоящее время глубокие ссылки в Чате Workplace поддерживаются в браузерах, а также в Android и iOS. На мобильных платформах, где установлено приложение Чата Workplace, ссылка открывается непосредственно в нем.

Реферальные параметры

Чтобы добавить в ссылку дополнительную информацию, можно также использовать реферальный параметр. Благодаря этому бот может, например, выполнять разные действия в зависимости от того, что именно пользователь нажал, прежде чем попал в чат с ним.

Для работы с этой функцией используйте ссылки в формате https://w.m.me/{page-id}?ref={referral_parameter}. Эта функция реализована так же, как и на платформе Messenger. Подробные сведения см. в документации по Messenger.

Соответствующее поле webhook — messaging_referrals. Для него необходима новая подписка. Ранее это поле webhook было недоступно для приложений Workplace, однако теперь на него можно подписываться обычным образом.

Полезные данные webhook имеют тот же формат, что и в Messenger, за исключением очевидных различий: в Workplace используются ID внутри приложения, а не страницы. Кроме того, в Workplace в webhook есть поле сообщества с соответствующим ID.

Взаимодействие с группой

После того как приложение подпишется на webhook, бот будет получать уведомление каждый раз, когда его будут упоминать в публикациях или комментариях в группе. Важно, чтобы бот своевременно реагировал на упоминания. Если перед ответом боту нужно как-то обработать запрос, имеет смысл добавить к комментарию отметку "Нравится", чтобы дать пользователю понять, что боту известно об упоминании.

Если после упоминания в комментарии вы предоставляете какую-то информацию, добавьте ответ в цепочку, чтобы не нарушать поток групповой беседы.

Если бот должен предоставить информацию исходному отправителю публикации, добавьте комментарий непосредственно к этой публикации, чтобы он также получил соответствующее уведомление.

Взаимодействие в чате

В рабочем чате поддерживаются те же функции взаимодействия с ботом, что и на платформе Messenger. Они включают кнопки для быстрого ответа и шаблоны, позволяющие реализовать деревья решений в беседе с ботом.

Это существенно упрощает создание полезных рабочих процессов и сокращает объемы текста, который пользователям приходится вводить вручную. При этом не приходится реализовывать сложные алгоритмы обработки естественного языка, так что создавать боты с поддержкой разных языков для пользователей из различных стран становится намного проще.