Overview
Bots are automated users in Sendbird Chat that can interact with normal users in group channels. The bot interface is designed on the basis of RESTful principles.
The bot feature allows you to create a bot with a callback URL to monitor events from users. You can make the bot join channels and send messages to add convenience to users' chat experience. Processing incoming data and generating relevant responses are under your control.
You can configure your bot to build helpful, engaging features for your users. The following are some examples of bots you can create.
- Helper bot: Users can ask a helper bot questions and receive immediate answers.
- GIF search bot: Users can search GIFs with a command. For example, you can configure a bot to return a list of cat GIFs when "/gif cats" is typed.
- Assistant bot: An assistant bot can monitor chat messages and automatically suggest nearby restaurants or venues related to the context of the chat.
- AI chatbot: An AI chatbot can provide customers with a more engaging and personalized conversation experience. To learn more, see our documentation.
Note: To implement chatbots with Google Dialogflow, see this tutorial.
Resource representation
The following table shows the list of properties in a bot resource.
Property name | Type | Description |
---|---|---|
bot | nested object | The information on the bot. |
bot.bot_userid | string | The unique ID of the bot. |
bot.bot_nickname | string | The bot's nickname. |
bot.bot_profile_url | string | The URL of the bot's profile image. |
bot.bot_type | string | The bot's type that indicates its category. |
bot.bot_token | string | An opaque string that identifies the bot. This token should be added to all requests sent to |
bot.bot_metadata | object | One or more key-value pair items which store additional bot information like a user metadata. For more information, see user metadata and channel metadata. |
bot_callback_url | string | The server URL where the bot is located to receive all events, requests, and data forwarded from an application. |
is_privacy_mode | boolean | Indicates whether to only forward messages that meet specific conditions or forward all messages to the bot. If set to |
enable_mark_as_read | boolean | Indicates whether to mark the bot's message as read upon sending it. |
show_member | boolean | Indicates whether to include information about the members of each channel in a callback response. |
channel_invitation_preference | int | Indicates whether the bot automatically joins the channel when invited or joins the channel after manually accepting an invitation using the API. The value of |
created_at | timestamp | The timestamp at which the bot was created in Unix seconds format. |
Bot callback URL requirements
The following are the requirements for your bot callback URL:
- Your URL is required to handle
POST
requests withapplication/json; charset=utf8
type. - Your URL is required to return a
200 OK
HTTP code if you successfully receive a callback. Otherwise, Sendbird server calls your URL several times until it gets a200 OK
. - For security reasons, we recommend that you use an SSL server.
Bot callback JSON body
Property name | Type | Description |
---|---|---|
category | string | The type of the bot notification. The only valid value is |
app_id | string | The unique App ID of the application where the message was sent. |
ts | long | The time that the message was sent in Unix milliseconds format. You can use this property to sort messages sent to the bot. |
sender | nested object | The user who sent the message. |
bot | nested object | The bot that received the message. |
members[] | array of objects | An array of users who are members of the channel. |
mentioned[] | array of strings | An array of unique IDs of the users mentioned in the message. |
message | nested object | The sent message that triggered the callback. |
channel | nested object | The group channel where the event occurred. |
Actions
The following table shows a list of actions supported for bots. API endpoints are relative to the base URL allocated to your Sendbird application. In this page, the /bots
endpoint refers to https://api-{application_id}.sendbird.com/v3/bots
.
Note: If you want to know the ID and base URL of your application, sign in to the Sendbird Dashboard, go to the Settings > Application > General, and then check the Application ID and API request URL.
- It's recommended that the parameter values in API URLs be urlencoded, such as
{botuser_id}
and{channel_url}
.
Action | HTTP request |
---|---|
| |
| |
| |
| |
| |
| |
| |
|