Skip to content

Chat Bots Getting Started

Bots are computer programs - third-party applications, that run inside ConnectyCube platform. Bots have almost same qualities as human: they have profile photos, names, they can send messages and upload files, and they can be added to and removed from group chats.

Use chat bots to enable users to conversationally interact with your service or your product.

Chat bots are controlled programmatically via ConnectyCube Javascript SDK

Before you start, make sure:

  1. You have access to your ConnectyCube account. If you don’t have an account, sign up here.
  2. An app created in ConnectyCube dashboard. Once logged into your ConnectyCube account, create a new application and make a note of the app credentials (App ID and Auth Key) that you’ll need for authentication.

At ConnectyCube Dashboard, in Users module - create a new user to control your chat bot. Then save somewhere the user’s ID, login and password. We will need these values later.

Step 2: Create Node.js application to control your bot

Section titled “Step 2: Create Node.js application to control your bot”

Open terminal and type the following commands:

Terminal window
mkdir my-chat-bot
cd my-chat-bot
npm init

This will ask you a bunch of questions, and then write a package.json file for you. More information on npm init.

The main thing is that we have now a package.json file and can start develop our first chat bot.

In terminal type the following command:

Terminal window
npm install connectycube --save
# yarn add connectycube

In terminal type the following command:

Terminal window
touch index.js

It will create the main entry point for your bot.

Then also open package.json file and add command to run our bot:

"scripts": {
"start": "node index.js"
},

Now open the index.js file and let’s write some logic.

Open index.js file and write the following code:

const Connectycube = require("connectycube");
// Initialise SDK
const APPLICATION_CREDENTIALS = {
appId: 0, // put your ConnectyCube App Id
authKey: "...", // put your ConnectyCube Auth Key
};
ConnectyCube.init(APPLICATION_CREDENTIALS);
// Connect to Real-Time Chat
const BOT_USER_CREDENTIALS = {
userId: 0, // put your Bot user id
login: "...", // put your Bot user login
password: "...", // put your Bot user password
};
const onError = (error) => {
console.log("Chat connect is failed", JSON.stringify(error));
process.exit(1);
};
const onConnected = () => {
console.log("Bot is up and running");
// Add chat messages listener
Connectycube.chat.onMessageListener = onMessageListener;
};
function onMessageListener(userId, msg) {
// process 1-1 messages
if (msg.type === "chat" && msg.body) {
const answerMessage = {
type: "chat",
body: msg.body, // echo back original message
extension: {
save_to_history: 1,
},
};
Connectycube.chat.send(userId, answerMessage);
}
}
const userCredentials = {
login: BOT_USER_CREDENTIALS.login, password: BOT_USER_CREDENTIALS.password
};
ConnectyCube.createSession(userCredentials).then((session) => {
Connectycube.chat.connect(BOT_USER_CREDENTIALS).then(onConnected).catch(onError);
}).catch((error) => {});
process.on("exit", function () {
console.log("Kill bot");
Connectycube.chat.disconnect();
});

This is a simple bot that simply reply back with origin message. Nothing especial. But you got the idea.

You just need to put in APPLICATION_CREDENTIALS variable your ConnectyCube Application credentials and in BOT_USER_CREDENTIALS variable - you bot user credentials.

The complete source code of chat bot template is available https://github.com/ConnectyCube/connectycube-chatbot-template

In terminal type the following command:

Terminal window
npm start

Now you can send a message to your bot and will receive a reply.

Step 7: Improve bot’s intelligence - add AI

Section titled “Step 7: Improve bot’s intelligence - add AI”

Usually, it’s not enough just to build simple bot which echoes your messages. It’s better to add some intelligence for you bot.

Here is where ChatGPT OpenAI API comes to the rescue.

After making an OpenAI account, you’ll need an API Key. You can get an OpenAI API Key here by clicking on + Create new secret key.

Create OpenAI API Key

Save that API key for later to use the OpenAI client library in your ConnectyCube Chat Bot.

Open index.js file and write the following code:

const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({ apiKey: <YOUR_OPENAI_API_KEY> });
const openai = new OpenAIApi(configuration);
const response = await openai.completions.create({
model: "gpt-3.5-turbo-instruct",
prompt: msg.body,
temperature: 0.7, // Creative risks the engine takes when generating text.
max_tokens: 3000, // Maximum completion length. max: 4000-prompt frequency_penalty: 0.7 // # between 0 and 1. The higher this value, the bigger the effort the model will make in not repeating itself.
});

And then modify the answer message object:

const answerMessage = {
type: "chat",
body: response.choices[0].text,
extension: {
save_to_history: 1,
},
};

This code imports openai, initializes a Configuration object. The function then calls the openai.completions.create function to use one of their language models to generate text based on msg.body.

You can host your chat bot on any virtual server. If you do not have any in your mind - we will recommend the following:

From here you can do a 1-1 chat with your chat bot. Simply use ConnectyCube.chat.send API from your mobile/web app to reach the bot.

You also can add a bot to group chat, so the bot can listen for all conversation within group chat and react accordingly. To add a bot to group chat, use ConnectyCube.chat.dialog.update API and pass bot User Id in push_all.occupants_ids param. To send/receive messages in a group chat - refer to Send/Receive chat messages - Group chat API documentation.