Managing Knowledge
Knowledge items are the core data type in YapHub. Users capture knowledge directly from Slack conversations, and the system enhances it with URL content extraction and automatic Notion sync.
Knowledge Item Structure
| Field | Type | Description |
|---|---|---|
| Title | String (3–255 chars) | Display title for the knowledge item |
| Content | Text | Main content — user text plus extracted URL content |
| Tags | JSON array | User-defined tags for categorisation |
| Target Groups | JSON array | Audience labels (synced from Notion) |
| Status | String | pending, Not started, In progress, Done, approved, rejected, archived, draft, published |
| URL | String (optional) | Source URL |
| URL Metadata | JSON (optional) | Extraction details (title, length, content type) |
| Source Message | JSON (optional) | Original Slack message data |
| Highlight | Text | AI-generated 2–3 sentence Dutch summary |
| Notion ID | String | Reference to the Notion page |
| Notion URL | String | Direct link to the Notion page |
Capture Methods
Message Shortcut — "Add to YapHub"
The primary capture flow. Users save any Slack message as knowledge:
Global Shortcut — "Quick Add to YapHub"
Opens a blank knowledge entry form from anywhere in Slack. The user fills in all fields manually.
App Home Button
Clicking "Add Knowledge" from the App Home dashboard opens the same modal, with the category pre-selected based on context.
URL Content Extraction
When a knowledge item includes a URL, the backend automatically enriches it:
- Validation — The URL is checked for validity and SSRF protection (localhost/private IPs blocked)
- Fetching — The page HTML is retrieved via HTTP
- Extraction —
HtmlContentExtractoruses a Readability-based parser to extract meaningful content - Appending — Extracted content is appended to the knowledge item's
contentfield (original user text is preserved) - Metadata — Extraction details (title, length, truncation status) are stored in
urlMetadata
The extraction is graceful — if it fails for any reason, the knowledge item is still saved with just the user's original text.
Notion Sync
Every knowledge item is automatically synced to Notion on creation:
- A new page is created in the configured Notion Knowledge database
- Properties are mapped: title, content, tags, status, URL, category relation
- The Notion page ID and URL are stored back on the knowledge entity
- Subsequent updates to the knowledge item sync to the same Notion page
Current Limitations
The MVP supports Create and List operations. The following are not yet implemented:
- Edit — No UI to modify existing knowledge items
- Delete — No UI to remove knowledge items
- Search — No keyword or semantic search
- Bulk operations — No import or batch processing
Knowledge items can be viewed through the App Home category browser and their Notion pages.