Slack Thread Summarizer App

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

# Initialize the Bolt app with the token and signing secret
app = App(token=os.getenv('SLACK_BOT_TOKEN'))

def summarize_text(text):
    # Clean the text by removing emojis and images
    clean_text = re.sub(r':[^:]+:', '', text)  # Removes Slack emojis
    clean_text = re.sub(r'<[^>]+>', '', clean_text)  # Removes image URLs or any Slack-specific markup

    # Use the llm_prompt ability to generate the summary
    prompt = (
        "Please summarize the following text into key takeaways in English. "
        "The response should be in bullet points, each one concise and to the point. "
        "Minimize the number of bullet points and avoid repeated content. "
        "Ignore any emojis and images. If there is text in any other language, "
        "provide a summary of that text in English. Here is the text:\n\n" + clean_text
    summary = llm_prompt(prompt)
    return summary

About this template

This app listens for mentions in a Slack thread, excluding messages sent by bots and messages where the bot is mentioned. It then summarizes the thread using an LLM, providing a concise summary of 3 to 5 sentences. The summary is sent back to the same thread where the bot was mentioned. The app also improves the prompt given to the LLM, ensuring that the response consists of key takeaways in bullet points, is concise, and avoids repetition. It also handles errors when the app is mentioned directly without any thread.

Introduction to the Slack Thread Summarizer App Template

Welcome to the Slack Thread Summarizer App template! This template is designed to help you create an application that listens for mentions in a Slack thread and provides a concise summary of the conversation. It's perfect for keeping up with important discussions without having to read through every message. Let's walk through the steps to get your app up and running on the Lazy platform.

Clicking Start with this Template

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

Initial Setup: Adding Environment Secrets

Before testing your app, you'll need to set up some environment secrets. These are not the same as environment variables in your operating system; they are specific to the Lazy platform and can be set in the Environment Secrets tab within the Lazy Builder.

You will need to provide the following environment secrets:

  • SLACK_BOT_TOKEN: The token for your Slack bot. You can obtain this from your Slack app's settings under the OAuth & Permissions section.
  • SLACK_APP_TOKEN: The token for your Slack app to use socket mode. This can be generated in your Slack app's settings under the Socket Mode section.

Make sure to keep these tokens secure and do not share them publicly.

Test: Pressing the Test Button

Once you have set up the necessary environment secrets, you can test your app by pressing the "Test" button in the Lazy Builder. This will deploy your app and launch the Lazy CLI. There is no need for user input at this stage, as the app will operate based on events within Slack.

Using the App

After deploying your app, it will listen for mentions in Slack threads. When your bot is mentioned, it will fetch the thread's messages, filter out those from bots or containing mentions of the bot, and then summarize the conversation. The summary will be posted back into the same thread.

Integrating the App

To integrate this app with your Slack workspace, you need to have a Slack bot set up with the appropriate permissions. Ensure your bot has permissions to read messages and post in threads where it is mentioned. You may need to invite the bot to the channels where you want it to operate.

If you need to reference the Slack API documentation for further details on permissions and bot setup, you can find it at Slack API Documentation.

That's it! You now have a Slack Thread Summarizer App ready to help you stay on top of important conversations in your Slack workspace. Enjoy the convenience of automated summaries and never miss out on key takeaways from your team's discussions.

Last published
July 20, 2024

More templates like this

Basic Slack Bot

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


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.

Slack Thread Summarizer App