Build a GitHub Issues Management App in 3 Steps with Slack, Airtable, Standard Library, and Node.js
Github Issues are a great way to keep track of bugs, feature requests and more for your projects. However, while it’s convenient having those roadmap items live where the project resides, it can be easy to miss when people create new issues. Since if you’re at work, you probably already have Slack open, we’re going to solve this problem by using Build on Standard Library to create a Node.js-powered workflow that:
- Upon receiving a GitHub issues.opened event…
- … adds a record of it in Airtable
- … and sends a formatted message to Slack in a
The message will look something like this:
The dropdown attached to the message will allow you to add or remove assignees to the issue, and the message will get updated to reflect the change:
Changes made from GitHub will also be shown in the message. And when the issue is closed, the message will be removed from the
What we’ll need beforehand…
- 1x GitHub Account
- 1x Slack workspace (we recommend starting with a “test” workspace)
- 1x Airtable Account
- 1x Standard Library Account
Step 1: Open the Project Template
The code for this workflow is already set up, and you can view it on GitHub here. To deploy the workflow, you can click the “Deploy” button in the README of the repository. Alternatively, you can follow this link.
Once you land on Build you’ll be greeted by a page like this:
Integrations section describes all the endpoints of your workflow, what events they respond to and what APIs they may call. Below that is a table showing which accounts are required to deploy the workflow:
Which brings us to our next step…
Step 2: Link your Accounts
As was mentioned above, there are three accounts you need to link. Let’s just go down the list.
If you don’t have an Airtable account you can make one here. Once you have one you need to copy this base, as the workflow is expecting certain tables and columns to be present. Once that’s done click “Link Resource” and follow the instructions. Make sure to select the base you just copied when prompted to pick one.
Click the “Link Resource” button. You’ll be asked to install the “Build on Standard Library” application onto your account, or an organization that you have access to. When installing, you can pick which repositories the app has access to. This can also be changed after installation.
Click the “Link Resource” and follow the instructions to build and link a Slack app. After the account is linked, you will still need to create the
/add_user command and set your “Options Load URL” from your Slack app dashboard. From your apps management page click “Slash Commands” followed by “Create New Command”. Fill it out like the image below, where
<username> is your Standard Library username.
Still from your app management page, click “Interactive Components”. Scroll down to “Message Menus” and set the “Options Load URL” to be:
<username> is your Standard Library username.
Now, with all your accounts linked, we can move on to the final step.
Step 3: Ship It!
Click the “Deploy Project” button at the button of the page on Build. Once it’s finished, open up the Slack workspace you installed the app in. Open or create a channel called
#issues and invite your bot to it by typing
@<bot_name>. Then you can run the slash command we just created by typing
/add_user <your_github_username>. If you don’t see an acknowledgment from your bot, please confirm that you have invited your bot to your channel.
Open up your Airtable base and open the
Users table and you should see one entry:
You’ll also get a message in the
#issues channel from your bot. When you click the dropdown you’ll notice only one username is present. That’s because this system is opt-in. A user will have to run
/add_user themselves if they want to be added to the list. Go ahead and create a new issue or assign an existing issue for the GitHub repo you linked to your workflow and open up the
Issues table in your base. You should find one row:
The message in Slack should now also show that you’ve been assigned the issue. Finally, go ahead and close the issue. The message will get removed, and the
Status column in Airtable will change to
That’s it! Thank you!
Thanks to the power of Standard Library and GitHub we were able to ship an issue management system with just a little bit of configuration. The best part is, despite not writing any code, the project fundamentally is code. So feel free to modify the project to your heart's content. If you have an idea for improvements, open up a pull request in the template’s repository. If you think you found a bug with the app, well, you know what to do.
Thanks again. Please feel free to follow Standard Library on Twitter, @StdLibHQ, for product and platform updates! Stay tuned for more.
Steve Meyer is Software Engineer at Standard Library. When he’s not programming you can find him maining Yoshi in SSBU.