Proxy Bot : A powerful bot testing tool
When developing a cross-platform bot, one of the most frustrating challenges is the difficulty in testing the bot in-channel across multiple channels (such as Slack, fbm, Telegram etc). In-channel testing enables the developer to instantly review the end-user experience, speeding up the iterative dev-test bot lifecycle. This problem is even more acute for cross-platform bots since the testing has to be done on multiple messaging channels.
However, developing and testing bots isn’t easy. First, the test bot has to be integrated with the channel before you can even start testing. Most channels do allow developers to test, but only with major constraints. In some cases, only testers individually approved by the bot developer can do the testing. This slows down the process or even prevents testing by people whose personal contact information may not be readily available (e.g. company employees, beta testers, prospects, advisers etc.) In other cases, full testing cannot be done until the bot is published after an approval process that can take many days. This forces the developer to publish bots that aren’t fully tested, which hurts the developer and even the whole bot ecosystem. Good, unrestricted bot testing is critical to the rise of bots.
A clever solution to these recurring problems is the Proxy Bot. The Proxy Bot acts as a proxy for another bot — it’s an intermediary that relays messages from the end-user to another bot and vice versa. By directing the Proxy Bot to connect to a specific test bot, the end-user can test that bot quickly and comprehensively. For the tester, the user experience is exactly as if she was directly using the test bot.
My company Gupshup (www.gupshup.io) has built Proxy Bots across all major channels. You can find the Proxy Bot on fbm, Slack, Twitter, Telegram, SMS(US:+14084449311 or India: +919223079906), Skype, Kik (Userid: gupshup.proxybot), Line(Userid:@kxg5210l), etc. See below a few self-explanatory examples of testing bots using the Proxy Bot.
For developers, the Proxy Bot is a powerful tool that dramatically increases the speed and quality of bot development. Developers can test the bot nearly simultaneously with coding. By immediately seeing the impact of new code, developers can validate or debug the code rapidly. Since the Proxy Bot is already approved and published on each channel, it requires no additional approval process for the test bot during the testing phase. The Proxy Bot also enables unrestricted testing i.e. the bot developer can just send proxy instructions to any tester (can be prospective customers, advisers, 3rd party testers etc.) to quickly test the bot. Here’s a video that demonstrates the ability to develop, deploy and test a “hello world” bot in a couple minutes by leveraging the Proxy Bot.
For regular consumers, there is no risk of accidental contact with raw, untested and unpublished bots. Since connecting to a test bot requires prior knowledge of the bot’s name and an extra step to redirect the proxy bot, it’s not possible for an average user to accidentally stumble into a test bot.
For messaging channels, this is a clever way to reconcile two seemingly opposite goals: developers want to be able to freely test their bots, but regular users want to stay away from untested bots. The Proxy Bot provides a quick and easy sandbox to the bot developer without impacting the experience of regular users. More importantly, good testing tools lead to more and better bots, which is good for consumers, developers and the messaging channel.
Bots built using the Gupshup platform are automatically accessible through the Proxy Bot. Bots not built using the Gupshup platform can also use the Gupshup Proxy Bot by linking that bot to the Gupshup platform using the “Callback URL” method.
The Proxy Bot is one of the earliest use cases of bot-to-bot communication, an exciting area with unlimited potential. We are actively building tools to enable more such examples and can’t wait to see what emerges.
Blogs you will want to share. Delivered to your inbox.