Front-End Web & Mobile

AWS Amplify presents: “Hey, Amplify!” A Discord Bot

Today, we are announcing “Hey, Amplify!“, a Discord bot aimed at improving the community experience. The AWS Amplify community Discord server has grown to amass nearly 20,000 members since its beginning in May 2020. Over time we have observed how members use Discord and what can be challenging with many supported services and platforms being discussed. In Q1 2022, we observed roughly 31% of all questions asked in Discord were addressed by community members where staff members were able to address about 34% of questions asked across 17 different help channels, leaving the remaining unanswered.

“Hey, Amplify!” includes a wide variety of features such as slash commands, application commands, auto-threading, data visualization, and much more.

New Features

First, we are introducing a feature to automatically thread messages asked in the main thread of our “help” channels. About 35% of all questions asked across 17 help channels were unanswered. Given the span of channels this has led to a reduction in the productivity of staff members and community members to search for relevant responses or previously-asked questions. As a Discord community grows we’ve found that Discord’s “reply” feature presents a disadvantage in that it can be difficult following conversations, which motivated the need for automatically creating threads for conversations. By automatically threading conversations members are now able to quickly view and understand which questions require additional attention. To further assist members managing threads and maintaining visibility we are introducing two commands:

  • /thread – a command suite to manage threads including renaming the thread, marking the thread as “solved”, and reopening a closed thread
  • /q – a command to generate a digest of unanswered questions across all “help” channels

Demonstration of the slash thread command in a public thread on Discord. Developer asks a question, receives an answer, and is able to select an answer in the thread

Demonstration of the slash Q command which is listing the latest unanswered questions, their timestamps, and the channel which they were asked in

Second, “Hey, Amplify!” is launching with a dedicated web application which generates pages for each Discord thread – or “question” in this context – enabling these questions to be discoverable by search engines. Additionally, it will serve as an ever-expanding application to support features such as Discord-exclusive event schedules for events including our weekly office hours, all while empowering Discord moderators and Amplify staff members to modify bot behaviors and view community metrics.

Discord bot frontend web application homepage

Third, now that we have introduced an auto-threading capability and have begun to use Discord’s new forum channels, we can capture and infer “questions” that are asked in help channels. We can also visualize this data in the frontend web application. As previously mentioned, staff members will automatically be given access to view a dashboard that is modeled off of Discord’s Server Insights to provide a familiar interface for staff to understand engagement in help channels and isolate areas of improvement.

Note, the data used in the following screenshots is for demonstration purposes only.

Discord bot frontend web application dashboard page with member activity, high-level metric snapshot, and bar chart

Discord bot frontend web application dashboard (continued) with channel health metrics and pie charts

Fourth, due to the real-time nature of communication over Discord we often find it is difficult to resurface topics previously discussed. Other times we would like to lift a conversation out of Discord and into GitHub where it can be referenced quickly and searched. To accommodate this, we are introducing a feature to empower staff to “mirror” a conversation from Discord to GitHub Discussions. Staff can use a new slash command /admin to mirror a thread to a GitHub Discussion in an AWS Amplify repository that has Discussions enabled. To protect Discord members’ privacy, information such as usernames and avatars are obfuscated allowing the thread to be focused on the content discussed. However, for members that opt to log into and link their GitHub accounts to the bot’s web application, members’ GitHub usernames will be used instead. Overall, this feature will enable members to quickly find previous conversations to further improve the community support experience.

Fifth, we are introducing a mechanism to streamline release notifications from GitHub to Discord. Through the frontend web application, we receive the webhook response from GitHub for a new release and reformat to post to Discord in a readable fashion. Previously staff have manually posted release updates, however by introducing this automation we can quickly deliver release notifications to the Discord community members.

Discord bot webhook post to a dedicated releases channel with markdown content from GitHub embedded into the post

Conclusion

“Hey, Amplify!” will improve the experience for all, and serves as a foundation to continue to iterate and improve the Discord community. As a developer using AWS Amplify, we welcome you to join the AWS Amplify Discord server. Follow @AWSAmplify on Twitter to get the latest updates on feature launches, DX enhancements, and other announcements.

About the authors:

Josef Aidt

Josef is a Developer Experience Engineer working with AWS Amplify’s open-source CLI. He’s passionate about solving complex customer problems in the front-end domain and addresses real-world architecture problems for development using front-end technologies. You can follow Josef on Twitter at @josefaidt

Arundeep Nagaraj

Arundeep (Arun) is a Developer Experience Manager for AWS Amplify working on resolving problems and architecture challenges for front-end developers. You can follow Arun on Twitter at @arun_deepn

Matt Auerbach

Matt Auerbach is a NYC-based Solution Architect on the AWS Amplify Team. The Solution Architecture team educates developers regarding products and offerings, and acts as the primary point of contact for assistance and feedback. Matt is a mild-mannered programmer who enjoys using technology to solve problems and making people’s lives easier. by night, however…well he does pretty much the same thing. you can find Matt streaming on Twitch at /aws or on Twitter @mauerbac. He previously worked in Developer Relations at Twitch, Optimizely, Twilio.