We may earn an affiliate commission when you visit our partners.
Andrew Golightly

Note: Slack has been updated quite a lot since this course was created. My latest course How to build an OpenAI bot for Slack uses the latest APIs for both Firebase and Slack.

There are so many aspects of businesses that can be automated using Slack.

What does it mean to automate a task?

Read more

Note: Slack has been updated quite a lot since this course was created. My latest course How to build an OpenAI bot for Slack uses the latest APIs for both Firebase and Slack.

There are so many aspects of businesses that can be automated using Slack.

What does it mean to automate a task?

Imagine being able to take a process in your business, and be able to get a bot to not only do it for you, but also do it perfectly every time. Not to mention your bot can be working 24/7, often perform tasks much faster than a human, and check on updates to systems every few seconds instead of hours or days. aka. the perfect employee.

What sort of tasks can be automated in Slack?

Almost anything you can think of. You're only limited by your creativity.

Say a client wants to know their balance on their account. They could email you, and then you reply. Or you could give them a slash command to retrieve their balance whenever they want.

Maybe a developer needs to log time they've worked. They could go into an accountancy system and manually enter that time, and then send a message to a project manager to let them they've finished their task. Or... you could give that developer a single custom slash command that will perform all those tasks for them.

So what are we going to learn in this course?

Let's say you have a company where employees can submit purchase requests for things they might want. They would normally fill out some form, give it to a secretary, who would then take it to the CEO to make a decision on. That secretary then needs to give that feedback to the employee who requested the purchase.

The secretary will also monitor all the purchase requests, so that if the CEO has forgotten to make a decision on one of them, that secretary will remind the CEO.

In this course we're essentially going to code up this entire flow, primarily by turning the human secretary into a Slack bot. So that the only human beings who will use the system is the CEO and the employee making the purchase request.

Pretty amazing right?

Enroll now

What's inside

Learning objectives

  • Build a slack bot
  • Build a custom slash command for slack
  • Respond to interactive slack messages
  • Persist state in a conversation flow

Syllabus

The Atom code editor is no longer available.


I now use Visual Studio Code: https://code.visualstudio.com/

Introduction
Read more
Welcome
What we are building
Setup core infrastructure
Create a Slack app
Create a custom slash command for Slack
Get an Express server up and running
Setup ngrok
Using git and an introduction to Slack's message builder
Creating a Slack bot
Create a Slack bot in our Slack app
Coding up the sendDM function
Review of sendDM and using it to send a direct message
Formatting and creating dynamic messages
Displaying buttons in Slack messages
Refactoring our code for handling routes
How to process button clicks in Slack messages
How to modify original interactive message after button click
Send feedback to the user who made a purchase request
How to keep track where in the conversation flow you are
Introduction to state management
Scaffolding a code module for Firebase
Saving data to Firebase
Review and getting the key for each record
Overview of using Firebase as the memory of our Slack bot
Reading data from Firebase
Code cleanup and planning on sending reminders to the CEO
Adding a timestamp when a purchase request was made
Recording the CEO's decision in Slack bot's memory
Review and code cleanup
Implementing a personal assistant for the CEO
Read all the purchase requests
Iterating over the purchase requests
Analysing each purchase request
Making a decision when to remind the CEO of specific purchase requests
Sending a message reminder to the CEO for specific purchase requests
Concluding thoughts
Summary of entire application
Overview of how to move this application into production
Some final tweaks to the CEO's personal assistant

Save this course

Save How to create a Slack bot to automate tasks for you to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in How to create a Slack bot to automate tasks for you with these activities:
Review Basic JavaScript Concepts
Reinforce your understanding of JavaScript fundamentals, as Slack bot development often involves manipulating data and handling asynchronous operations using JavaScript.
Browse courses on JavaScript Fundamentals
Show steps
  • Review variables, data types, and operators.
  • Practice writing functions and control flow statements.
  • Familiarize yourself with asynchronous JavaScript.
Brush up on Node.js and Express.js
Refresh your knowledge of Node.js and Express.js, as these are used to create the server-side logic for handling Slack bot interactions.
Browse courses on Express.js
Show steps
  • Set up a basic Node.js server with Express.js.
  • Practice handling HTTP requests and responses.
  • Review middleware concepts in Express.js.
Build a Simple Echo Bot
Create a basic Slack bot that echoes back user messages to gain hands-on experience with the Slack API and bot interactions.
Show steps
  • Set up a Slack app and obtain API credentials.
  • Implement a simple endpoint to receive Slack events.
  • Parse the incoming event and send a response back to Slack.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow Slack API Tutorials
Work through official Slack API tutorials to deepen your understanding of various bot functionalities and integration options.
Show steps
  • Explore the Slack API documentation.
  • Follow tutorials on interactive messages and slash commands.
  • Experiment with different API methods and event types.
Document Your Bot-Building Process
Create a blog post or tutorial documenting your experience building a Slack bot, sharing insights and tips with other learners.
Show steps
  • Outline the key steps involved in building a Slack bot.
  • Document code snippets and configurations.
  • Share your learnings and challenges encountered.
Contribute to a Slack Bot Library
Contribute to an open-source Slack bot library or framework to enhance your skills and collaborate with other developers.
Show steps
  • Identify an open-source Slack bot library on GitHub.
  • Review the library's documentation and contribution guidelines.
  • Contribute bug fixes, new features, or documentation improvements.
Expand the Purchase Request Bot
Extend the purchase request bot with additional features, such as integration with a payment gateway or a reporting dashboard, to solidify your understanding of bot development.
Show steps
  • Identify areas for improvement or new features.
  • Design and implement the new functionality.
  • Test and deploy the updated bot.

Career center

Learners who complete How to create a Slack bot to automate tasks for you will develop knowledge and skills that may be useful to these careers:
Chatbot Developer
A Chatbot Developer designs, builds, and maintains conversational bots that can interact with users through text or voice. This course is directly applicable as it focuses on building a Slack bot, which is a specific type of chatbot. The course covers creating custom slash commands, responding to interactive messages, and persisting state in a conversation, all crucial skills for a Chatbot Developer. This course helps establish a foundation for building more complex chatbot systems. As well, this course specifically explores how to automate tasks, which a Chatbot Developer often enables.
Automation Engineer
An Automation Engineer focuses on streamlining processes by implementing technological solutions, often involving software and scripting. This course fits well with the role as it explores automating tasks within Slack using a custom-built bot. The course emphasizes how a bot can handle tasks such as purchase requests, which are normally performed by people. An Automation Engineer would benefit from the practical experience gained in the course, learning how to implement automated workflows using interactive messages and data persistence. The course offers an exceptional entry point into task automation.
Software Developer
A Software Developer creates and maintains software applications. This course offers relevant practical experience in building a software application, specifically a Slack bot. The concepts covered, such as setting up a server, using version control with git, and integrating with APIs (like Slack's) help build a foundation in software development. Additionally, this course touches on state management and database interactions using Firebase, which are common tasks for a Software Developer. The course helps you gain experience in important areas of coding and software functionality.
Backend Developer
A Backend Developer focuses on the server-side logic of applications, handling data and APIs. This course introduces core concepts related to backend development, such as setting up an Express server, managing routes, and interacting with a database (Firebase). The course provides experience in creating an application that responds to user interactions and persists data, which is part of the work of a Backend Developer. This course explores how a backend manages state and processes messages, important for building robust applications. It is an excellent way to learn the basics of backend development.
Solutions Architect
A Solutions Architect designs and oversees the implementation of technical solutions for business problems. This course provides a practical example of how to create a solution using a Slack bot to automate a common workflow, such as purchase requests. The course teaches how to identify the requirements of a project, and then translate it into a working system. A Solutions Architect would find understanding the process of building such a solution valuable, especially in regards to integrating different technologies to address business needs. It teaches practical problem solving skills.
Technical Project Manager
A Technical Project Manager oversees technology-focused projects, and needs to understand the technical challenges involved. By taking this course, the Technical Project Manager gains insights into the process of building a software application. The course covers aspects of software development, such as coding, server setup, and database integration. This understanding enables a Technical Project Manager to better manage projects involving software development teams. The course also demonstrates the importance of planning and execution in the life cycle of a software project. This helps one better manage the team and work.
Business Analyst
A Business Analyst analyzes business processes and identifies areas for improvement, often involving technology solutions. This course demonstrates what is possible in terms of automating business processes with the help of bots. A Business Analyst would benefit from understanding how a Slack bot can take over the tasks of a human, and also how to streamline workflows. The knowledge of how to build a bot, as covered by this course, gives a Business Analyst a tangible example of what is possible. This may be useful in their work.
IT Support Specialist
An IT Support Specialist provides technical support and troubleshooting for computer systems and software. This course may be useful due to the exposure to some software development, and the understanding of how a particular type of application operates, specifically a Slack bot. While not directly related to systems monitoring, troubleshooting, and setup, it may prove useful in learning more about how software systems work. The course provides knowledge about the inner workings of the bot. This may be useful for an IT support specialist.
Process Improvement Specialist
A Process Improvement Specialist focuses on optimizing business processes to increase efficiency and reduce costs. This course offers clear practical examples of how technology, such as Slack bots, can be used to automate manual processes. For example, the course details how a purchase request workflow can be automated through a Slack bot. A Process Improvement Specialist may find the course helpful in their approach to streamline workflows and identify areas where automation can be used. The course provides a concrete foundation for improving processes.
Technology Consultant
A Technology Consultant advises organizations on how to best use technology to meet their business goals. This course provides a practical example of how a specific type of technology, namely a Slack bot, can be used to automate tasks and streamline workflows. Understanding how this bot is built, as covered by the course, may be helpful for a Technology Consultant in recommending solutions to their clients, even if they end up using a different type of technology. It shows some real world examples of where bots can be useful.
Data Analyst
A Data Analyst analyzes data to provide insights and recommendations to assist decision-making. This course may be useful in understanding how data is handled in a software application. The course provides practice in how to save and retrieve data using Firebase. While the specific type of data manipulation covered in the course might not be exactly what a Data Analyst usually works with, the course may be helpful in understanding data persistence mechanisms. It provides context for how data can be used.
Technical Writer
A Technical Writer creates documentation for software and technical products. This course may be helpful in understanding the process of creating a software application. While not directly related to documentation, the course provides some context into the inner workings of software. A Technical Writer may find this understanding helpful in documenting similar applications, though the course is not focused on writing itself. The course might give perspective on what it is like to build software.
Sales Engineer
A Sales Engineer uses their technical knowledge to support the sales process, often demonstrating how a product or service works. This course may be useful in building an understanding of a certain type of technology. Though the course focuses on building a Slack bot, not selling one, the understanding of the underlying technology could be helpful in demonstrating similar types of systems. The course could provide insights into what certain types of automation are like, from a technical perspective. This could be useful during the sales process.
Quality Assurance Analyst
A Quality Assurance Analyst tests software to ensure it meets the required standards and functions correctly. This course may be helpful for gaining an understanding of software and the software development process. While the course primarily focuses on creating a Slack bot, it might be useful in understanding how software works. The knowledge of how the application flows may be useful for testing in similar scenarios, though the course is not directly related to quality assurance. It may help give context for a Quality Assurance Analyst.
Customer Support Representative
A Customer Support Representative assists customers with inquiries and issues related to a company's products or services. This course may be useful in better understanding software systems. Though the course is not directly related to customer service, understanding the technical side of software may be useful in addressing customer issues. The course may be helpful in understanding the workflow of software, and provide more insight into processes that may be used for customers. It may be helpful in a peripheral way.

Reading list

We haven't picked any books for this reading list yet.
Focuses on task automation using PowerShell, a powerful scripting language designed for system administration and automation. It provides a solid foundation for those interested in using PowerShell for automating tasks in Windows environments.
Introduces task automation using Node.js, a popular JavaScript runtime environment. It is designed for developers who want to use Node.js for automating tasks and building efficient scripts.
Covers task automation using Java, a widely used programming language. It is suitable for developers who want to use Java for automating tasks and developing complex automation solutions.
Focuses on task automation using C#, a powerful programming language for developing various applications. It is suitable for developers who want to use C# for automating tasks and creating robust automation solutions.
Specializes in task automation for web applications using Selenium WebDriver, a popular tool for web automation. It is particularly relevant for those interested in automating web-based tasks and testing web applications.
Provides a comprehensive overview of Firebase for Swift developers, covering all the essential concepts and features.
This cookbook provides a practical guide to building Firebase apps for Android, with over 40 recipes covering common tasks and scenarios.
Provides a comprehensive overview of Firebase for web and cloud developers, covering all the essential concepts and features.
Provides a comprehensive overview of Express.js, from installation and setup to advanced topics such as security and performance optimization. It valuable resource for both beginners and experienced developers looking to enhance their Express skills.
Covers a wide range of topics related to Node.js web development, including Express.js. It provides a solid foundation for building and deploying web applications using Node.js and Express.
Focuses specifically on building web applications with Express.js. It provides step-by-step instructions and real-world examples to help developers create robust and scalable applications.
Explores various design patterns commonly used in Node.js development, including patterns relevant to Express.js. It provides valuable insights for building maintainable and efficient web applications.
This cookbook provides a collection of practical recipes for solving common problems encountered when building web applications with Express.js. It handy reference for developers looking for quick and effective solutions.
This video course from Brad Traversy provides a comprehensive introduction to Node.js and Express.js. It covers a wide range of topics, including routing, middleware, and database integration.
Provides a comprehensive overview of Node.js and Express.js. It covers a wide range of topics, from the basics of Node.js and Express to advanced topics such as security and performance optimization.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser