Telegram Integration with XCALLY
Telegram Account Configuration
Follow these steps to create a Telegram service (bot) and enable its integration with XCALLY Motion:
Access to the Telegram bots app https://t.me/botfather
Type /newbot to create a new bot
Choose a name for your bot
Choose a username for your bot. It must end in bot.
Save the token to access the HTTP API. We will need it to setup the Telegram plugin.
Now your Telegram service is completed!
XCALLY Configuration
In this section you’ll see how to install and configure the XCALLY Motion Telegram Plugin interface, in order to let your Agents interact with Telegram users.
In this phase of the process, you need to access your XCALLY Motion as Admin.
Setup Telegram Account
Access the Open Channel Section:.
Create a new Open Channel Account in your XCALLY Motion, clicking on the plus button and filling the fields:
Complete the Telegram Account configuration.
We will need this new Open Channel (Telegram) Account to setup the Telegram plugin.
3011 OLD PORT…. QUESTO SCRIPT FUNZIONA CON V3?
The default Reply URL is http://localhost:3011/sendMessage and you usually don't need to change it.
But if the 3011 port is already in use (or you want to change it for any other reason), you can modify its value here and also in the configuration file: just before installing the plugin, unzip the files and change the property of the Port variable in the following file: server/config/config.json.
{ "token" : "{TOKEN}", "webhook": "https://{HOSTNAME}/api/plugins/webhook?port=3011&encoding=binary&path=/api/messages", "openChannel": { "id": "", "receiveUrl": "", "mapKey": "" }, "authentication": { "username": "", "password": "" }, "port": "3011" }
At the end of these changes, zip all the folder files and upload the plugin you modified.
Perché dovrei farlo?
Don't forget to select telegram (or any other custom field of the Customer profile) as mapKey and add the proper Agents to the account used for Telegram interactions.
Setup Telegram Queue
In order to have Agents receive notifications from the Telegram Account and manage interactions, you need to configure a specific Queue.
Follow the next steps:
Create a new Open Channel Queue, as Telegram Queue.
Add Agents or Teams to the Telegram Queue.
Associate he Telegram Queue to the Telegram Account.
Please refer to this documentation to complete this phase of the process.
CREATE ACTION FLOW IN NEW OPEN CHANNEL SETUP PAGE
Generate API Key
Plug-ins, as Telegram, are connected to XCALLY Motion through the API Key.
To generate the API Key, go to the Staff section and open the User section
Select your Admin user and press on the three dots button to Edit it:
Click on the API Key Manager Icon:
Generate the API KEY, clicking on GENERATE button:
Save the API Key. We will need it to setup the Telegram plugin.
Upload the Plugin to XCALLY Motion
Download the Telegram Plugin zip file.
Open the App Zone section
Upload the Telegram Plugin:
After the upload, you will find it in the list of the uploaded App Zone Plugins:
To Install the plugin, click on button, and click Install plugin:
Click on the button to edit the plugin. Select in the Sidebar field how/to whom this integration must be shown in the menu (default value: Admin Only):
Now your Telegram Plugin is active!
Setup Telegram Plugin
Configure the Plugin for Telegram by selecting Telegram integration from the list of Plugins:
Insert BOT Token (the one you obtained in previous steps)
Select your Open Channel account from the list (as created in the previous step)
Insert the admin username and password
Update the Webhook inserting your server name
The webhook URL should follow the format: https://{HOSTNAME}/api/plugins/webhook?port={PORT}&path=/api/messages&token={TOKEN}
where {HOSTNAME} is usually your XCALLY hostname or IP address, or the hostname of another server in case you would like to host your integration/application separately.
{PORT} is usually 3011, or the specific port you have defined in your Telegram Plugin settings inside XCALLY Motion.
{TOKEN} is the Open Channel Account token
Remember to modify the admin password you inserted here anytime you change it!
Pay attention to the Port value: each Port can be associated only to one service. Check if the chosen value has already been assigned to another service.
After saving the changes, remember to Restart the Plugin: click on the button and you'll find the proper command
Now you can test the communication between the Telegram users (who will write messages to the Telegram Bot you created) and your Agents (who will interact from the XCALLY Omnidesktop Interface)!
Telegram Interactions
The integration allows you to exchange text or attachments. Each message could transfer a text message or a file at a time.
Additional Information
Configuring your firewall
If your XCALLY service is hosted behind a firewall then please make sure that the HTTPS port is able to accept incoming requests from Telegram webhook server.
A few suggestions in this regard:
Try to find the IP address for Telegram server, that is sending webhook requests to XCALLY, using your preferable network analysis tool.
Add the rule to allow incoming traffic from Telegram IP address, on Port 443, in your firewall policy.
-- OR --
Modify the file /etc/sysconfig/iptables and add the following line:
-A INPUT -s 0.0.0.0/0 -p tcp --dport 443 -j ACCEPT
Disclaimer: This method will open port 443 of your XCALLY server for all IP addresses.
-- OR --
Accordingly to the following link https://core.telegram.org/bots/webhooks you can open just the following TCP ports from the specified networks:
149.154.160.0/20
and
91.108.4.0/22
on port 443, 80, 88, or 8443.
Debugging/Troubleshooting
All of the log files for Telegram Messenger plugin events are available at /var/log/xcally/ directory under openchannel-line- naming convention.