Categories & Subscriptions
Demo: Category Subscription & Digest Distribution
This recording shows subscribing to a category, then distributing a digest — watch the subscriber receive the formatted digest as a Slack DM on the right side.
Features Demonstrated
- Category Subscription — Subscribe to a thematic list to receive digest notifications
- Digest Distribution — Send a compiled digest to all subscribers via Slack DM
- Delivery Tracking — Each delivery is tracked (pending/sent/failed) and synced to Notion
- Notion Delivery Sync — Delivery records appear in Notion with status tracking
Demo: Create New List
This recording shows creating a new category from the App Home — watch the list appear in both the Slack dashboard and the Notion database.
Features Demonstrated
- Category Creation — Create a new thematic list with name, description, and emoji icon
- Emoji Icon Selection — Choose from 21 preset emoji icons to visually identify each category
- App Home Refresh — The new category appears immediately in the dashboard
- Notion Category Sync — The category is automatically created in the Notion database
Categories (called "Thematische Lijsten" in the Dutch UI) are the organising principle in YapHub. Every knowledge item belongs to a category, and users subscribe to categories to receive digest notifications.
Categories
Each category represents a thematic knowledge stream with its own configuration:
| Property | Description |
|---|---|
| Name | Display name (2–100 characters) |
| Description | Optional explanation of the category's purpose |
| Icon | Emoji icon displayed in the App Home |
| Target Groups | JSON array of audience labels (synced from Notion) |
| Active | Whether the category is visible |
| Sort Order | Display order in the App Home |
Category Settings
Each category has digest configuration that controls when and how digests are generated:
| Setting | Options | Description |
|---|---|---|
| Digest Enabled | On/Off | Whether scheduled digests are active for this category |
| Frequency | Weekly, Biweekly, Monthly, Quarterly | How often digests are generated |
| Day | Monday–Sunday | Which day of the week the digest runs |
| Time | 00:00–23:30 | What time the digest is generated |
Creating a Category
Users create categories directly from the App Home:
- Click "Lijst toevoegen" (Add List) quick action button
- Fill in Naam (Name), Beschrijving (Description), and pick an Icoon (Emoji Icon) from 21 preset options organized by theme:
| Category Type | Available Icons |
|---|---|
| General | 📁 Folder, 🗃️ Card Box, 🔖 Bookmark |
| Knowledge | 📚 Books, 📓 Notebook, 📜 Scroll |
| Ideas & Innovation | 💡 Lightbulb, 🚀 Rocket, ⭐ Star |
| Technical | ⚙️ Gear, 🔧 Wrench, 💻 Computer |
| Communication | 💬 Speech, 📧 Email, 🔔 Bell |
| Nature & Misc | 🌱 Seedling, 🌍 Earth, 🏆 Trophy |
- Click "Aanmaken" (Create) — the backend creates the category entity and syncs to Notion
- The App Home refreshes immediately showing the new category with its emoji icon and description
Target Groups
Target groups are labels stored as a JSON array on each category. They originate from Notion's "Default Target Groups" multi-select property. While target groups are synced and displayed, they currently serve as metadata labels rather than operational filters.
Subscriptions
Users subscribe to categories to receive digest notifications via Slack DM.
Subscribe / Unsubscribe
Subscriptions are managed through the overflow menu on each category card in the App Home:
- Subscribe — Click "Abonneer" from the overflow menu. A bell icon appears next to the category name confirming your subscription
- Unsubscribe — The same menu shows "Uitschrijven" (Unsubscribe). Soft-delete: the subscription is deactivated (not removed), preserving history
Subscription Model
| Property | Description |
|---|---|
| User ID | Slack user ID of the subscriber |
| Slack User Name | Display name at time of subscription |
| Active | Whether the subscription is currently active |
| Subscribed At | When the user subscribed |
| Unsubscribed At | When the user unsubscribed (null if active) |
| Notion ID | Reference to the corresponding Notion record |
A unique database constraint ensures each user can only have one subscription per category.
Subscriber Resolution for Digests
When a digest is distributed:
- The system queries all active subscribers for the digest's category
- The initiating user is added if not already in the list
- Duplicate user IDs are removed
- The formatted digest is sent to each recipient via Slack DM
Distribution Flow
The Subscriber Experience
Subscribers receive a rich, formatted Slack DM containing:
- Header with category name, item count, date range, and total read time
- Per-item sections with:
- Knowledge title
- AI-generated highlight summary (2-3 sentences in Dutch)
- Tags
- Estimated read time
- Direct link to the Notion page
- The message respects Slack's block limits (max 48 blocks per message, 2900 chars per text block)