cotton.org.uk

AboutContributionsDownloadsMy GitHub

AIO (All-In-One) Bot

Example chat with the AIO Bot
Example chat with the bot. Not a real conversation – representation only.

The AIO Bot is a Node.js Bot for the Symphony messaging client, used internally at my company when I was a DevOps Engineer between 2022-2024. I was responsible for most of the development of the Bot during my time here, and was involved in implementing several new features, fixing bugs, as well as deploying the changes to a production environment.

The Bot's primary two features are sending notifications and responding to commands through the chat client. There is an accompanying web UI, which users can use to configure notifications to be triggered by a webhook. This makes it possible to integrate with several other applications – e.g. a chat group may receive a ping from the Bot when a Jira ticket is raised.

Commands, too, are highly configurable through the web UI. They can trigger an API with some arguments, in order to control various systems, all without leaving the chat client. For example, a command "resolvejira" might take the Jira issue key and a message as parameters. Then, it can externally trigger Jira's API to mark that issue as resolved. The screenshot pictured shows how such a flow might appear in the chat client (not an actual example).

This project was my first hands-on experience with JavaScript and with Node.js. It was also my first time handling production-level code – I learnt most of what I know about these over my time working at this company, on this project.