What I Built
Today I started Echo , an AI Slack bot that acts as a teammate inside your workspace. The idea hit me because our team was constantly switching tabs to look things up, ask questions, check what happened in a channel yesterday. I thought what if there was a bot that just lives in Slack and handles all of that?
What I Did
1. Created the Slack App
Went to api.slack.com/apps and created a new app from scratch.
- Chose Socket Mode instead of HTTP webhooks, this means the bot connects outbound to Slack, so I don’t need to expose a server or set up ngrok during development. Way easier for local dev.
- Added the required OAuth scopes:
chat:write,commands,channels:history,users:readetc everything Echo would need to read messages and respond. - Grabbed the three tokens I’d need:
-
SLACK_BOT_TOKEN(xoxb-…) SLACK_SIGNING_SECRET-
SLACK_APP_TOKEN(xapp-… for Socket Mode)
-
2. Initialized the Node.js Project
I’ve used Node.js for my project
npm install @slack/bolt dotenv axios cheerio
Dependencies I’m working with:
-
@slack/bolt— Slack’s official framework for building bots. Handles all the event routing, slash commands, and ack() timing . -
dotenv— keep tokens out of the code -
axios— for hitting the HackClub AI API later -
cheerio— for parsing web content (I’ve planned for search in some cmds)
Problem I Had:
Socket Mode confusion , at first I wasn’t sure whether to use Socket Mode or HTTP. Read through the Bolt docs and realized Socket Mode is the right call for development because I don’t need a public URL. HTTP is for production deployments.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.