Back/Personal/OpenClaw
AdvancedPersonal

How to Build a Custom AI-Powered Text Digest for Slack Notifications

Turn Slack notifications into a scheduled text digest organized by rules that reflect how the user actually prioritizes work.

How to Build a Custom AI-Powered Text Digest for Slack Notifications

05:57 to 12:24: Yash reverse-engineers Slack’s notification timestamps, builds a Jarvis digest channel, and applies his own urgency categories to the messages.

Before you start

What you need

  • Slack access and a bounded notification source
  • Personal urgency and category rules
  • A destination channel and schedule

What you’ll make

A recurring digest that groups new messages by urgency, category, source, and action needed.

Tools used

Step by step

The workflow

Follow the sequence once, then adapt the prompts, checks, and handoffs to your own setup.

6 steps

Step01

Define Categorization Rules

Before you start, define your notification categories. A useful approach is to sort by two layers: Source (e.g., DMs, Group DMs, Threads, Group @mentions) and Urgency (e.g., Action Required, Need to Read, FYI).

Example prompt
Define urgency levels, categories, senders, keywords, and examples of what belongs in each.
Step02

Choose an AI Coding Agent

Select an AI agent that can write and execute code, such as OpenClaw. Host the agent in a platform that supports long conversations and has good search functionality, like Discord, to keep your work organized.

Example prompt
Choose an agent that can inspect Slack, write code, and deploy a scheduled job.
Step03

Reverse-Engineer the Slack API

Task your AI agent with reverse engineering Slack's notification logic. The goal is for the agent to understand how Slack uses timestamps ( ts ) to differentiate between read and unread messages and threads. This avoids you having to read the API documentation yourself.

Example prompt
Inspect how Slack represents notification timestamps and pagination; document the request and cursor behavior.
Step04

Code the Digest Logic

Work with the agent in a conversational back and forth to write the core script. The script needs to pull only unread notifications, group them into the Source categories you defined earlier, and use the timestamp logic to avoid fetching content you have already seen.

Example prompt
Fetch new notifications since the saved cursor, normalize them, deduplicate by message ID, and preserve source links.
Step05

Apply AI for Urgency Categorization

Once the script pulls and groups messages by source, use the AI agent for the final subjective step. Have it analyze the text of each notification and categorize it into your Urgency buckets, such as 'Action Required,' 'Need to Read,' or 'FYI'.

Example prompt
Classify each item using the approved rules and include the reason for urgent items.
Step06

Deploy the Daily Digest

Automate the final script to run on a schedule, such as daily. Configure it to post the organized, text based digest into a dedicated Slack channel for your review.

Example prompt
Post the digest to [channel] on [schedule], then save the cursor only after a successful post.

What good looks like

  • Every item links back to the original Slack message
  • The time window prevents duplicates and missed items
  • Urgency labels match reviewed examples

Build your next product with ChatPRD

Turn an idea into a PRD, user stories, and a plan.

Try ChatPRD free

After the steps

Runbook notes

How to recover when the loop fails and where human judgment helps.

Recover

If it goes sideways

Slack access returns an incomplete window
Anchor the query to durable timestamps and test boundary messages.
The classifier marks everything urgent
Provide positive and negative examples for each category.
The digest duplicates messages
Store the last successful cursor and deduplicate by message identifier.

Start shipping
better products.

Join 100,000+ product managers who use ChatPRD to write better docs, align teams faster, and build products users love.

Free to start
No credit card
SOC 2 certified
Enterprise ready