Send & Post Message to Slack using API

import os
import logging
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
from abilities import llm_prompt

# Configure logging

# Environment variables to be set in the Env Secrets tab
slack_bot_token = os.environ['SLACK_BOT_TOKEN']
slack_app_token = os.environ['SLACK_APP_TOKEN']

# Initializes your app with your bot token and socket mode handler
app = App(token=slack_bot_token)

# Listens to all messages sent in the channel it is added to
def handle_message_events(event, say, client):
    # Exclude messages from the bot itself
    if event['user'] != app.client.auth_test()['user_id']:
            # Generate a response using the llm_prompt ability

About this template

This Slack Send & Post Message app will respond to messages sent to a channel. It will include the original message as a quote and the channel name in the private responses it sends. It will use the `llm_prompt` ability to generate responses. The app will ensure secure handling of Slack API credentials and log errors for maintenance and review. Make sure Event Subscriptions and `message.channels`, `` and `message.groups` bot events have been enabled for your Slack App.

Introduction to the Slack Send & Post Message App Template

Welcome to the Slack Send & Post Message app template! This template is designed to help you create an application that listens to messages in a Slack channel and responds privately to the user with a quote of the original message and the channel name. It uses the built-in 'llm_prompt' ability to generate responses, ensuring a seamless and interactive experience within Slack. This step-by-step guide will walk you through the process of setting up and deploying your app on the Lazy platform.

Getting Started

To begin using this template, simply click on "Start with this Template" on the Lazy platform. This will pre-populate the code in the Lazy Builder interface, so you won't need to copy or paste any code manually.

Initial Setup: Adding Environment Secrets

Before you can test and deploy your app, you'll need to set up a couple of environment secrets within the Lazy Builder. These secrets are the Slack Bot Token and Slack App Token, which are essential for authenticating your app with Slack's API.

  • Go to the Slack API website and create a new app.
  • From the 'OAuth & Permissions' page, copy the 'Bot User OAuth Token'.
  • From the 'Basic Information' page, scroll down to the 'App-Level Tokens' section and generate a token with the 'connections:write' scope.
  • In the Lazy Builder, navigate to the Environment Secrets tab.
  • Add a new secret named 'SLACK_BOT_TOKEN' and paste the 'Bot User OAuth Token' as its value.
  • Add another secret named 'SLACK_APP_TOKEN' and paste the 'App-Level Token' as its value.

Make sure to enable Event Subscriptions and subscribe to the 'message.channels', '', and 'message.groups' bot events in your Slack App settings.

Test: Pressing the Test Button

Once you have set up the environment secrets, press the "Test" button on the Lazy platform. This will deploy your app and launch the Lazy CLI. If the code requires any user input, you will be prompted to provide it through the Lazy CLI.

Using the App

After deployment, your app will be running and listening to messages in the Slack channel it has been added to. When a user sends a message, the app will generate a response using the 'llm_prompt' ability and send a private message back to the user with the response formatted as a quote of the original message, including the channel name.

Integrating the App

With your app now running, you can integrate it into your Slack workspace by inviting the bot to the channels you want it to listen to. Use the '/invite @YourBotName' command in Slack to add the bot to a channel.

If you need to make any adjustments or further integrate the app with other tools or services, you can refer to the Slack API documentation provided in the code for guidance:

Remember, the Lazy platform handles all deployment aspects, so you don't need to worry about installing libraries or setting up your environment. Enjoy building and using your Slack Send & Post Message app!

Last published
June 15, 2024

More templates like this

AI Query Generator Slack Bot for BigQuery

This app allows users to interact with a Slack bot, ask a question about the data in a table or request the table schema, and then uses the latest ChatGPT to generate a query that is executed on BigQuery to return the results. The app includes a retry mechanism for query generation in case of an error (up to two retries) and provides the LLM with the table info to generate more accurate queries. The table schema is only printed if it is successfully retrieved. All errors from retries are now passed to the LLM. The generated query is printed before the results, and the results are displayed in a pretty table format. The bot uses the Slack API to send and receive messages and parses the user's message to determine the action to take. The bot always responds in a thread to the original message.


Basic Slack Bot

This is a simple starting point for a Slack bot it just responds hi to a mention.


Create Slack Channel using API

An app for Slack integration allowing the creation of public channels using the Slack API. This webhook app requires 'SLACK_BOT_TOKEN' to authenticate with slack api. It also requires channels:manage scope enabled to create channels. Further enchancements to prompts may allow the app to add the user to the channel.

Send & Post Message to Slack using API