- Add ULTIMATE-Telegram-CMS-COMPLETE.json with all commands - Add Docker Event workflows with Gitea integration - Add comprehensive deployment guide for fresh installs - Add quick reference and testing checklist - Include all n8n workflow exports Commands: /start, /list, /search, /stats, /preview, /publish, /delete, .review Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
286 lines
7.4 KiB
Markdown
286 lines
7.4 KiB
Markdown
# 🎯 ULTIMATE Telegram CMS Control System
|
|
|
|
Complete production-ready n8n workflow for managing DK0 Portfolio via Telegram bot.
|
|
|
|
## 📋 Overview
|
|
|
|
This workflow provides a comprehensive Telegram bot interface for managing your Next.js portfolio CMS (Directus). It handles projects, book reviews, statistics, search, and AI-powered review generation.
|
|
|
|
## ✨ Features
|
|
|
|
### 1. **Dashboard** (`/start`)
|
|
- Shows draft counts for projects and book reviews
|
|
- Quick action buttons for common tasks
|
|
- Real-time statistics display
|
|
- Markdown-formatted output with emojis
|
|
|
|
### 2. **List Management** (`/list projects|books`)
|
|
- Paginated lists (5 items per page)
|
|
- Shows title, category, status, creation date
|
|
- Inline action buttons for each item
|
|
- Supports both projects and book reviews
|
|
|
|
### 3. **Search** (`/search <term>`)
|
|
- Searches across both projects and book reviews
|
|
- Searches in titles and translations
|
|
- Groups results by type
|
|
- Returns up to 5 results per collection
|
|
|
|
### 4. **Statistics** (`/stats`)
|
|
- Total counts by collection
|
|
- Status breakdown (published/draft/archived)
|
|
- Average rating for books
|
|
- Category distribution for projects
|
|
- Top categories ranked by count
|
|
|
|
### 5. **Preview** (`/preview<ID>`)
|
|
- Auto-detects collection (projects or book_reviews)
|
|
- Shows both EN and DE translations
|
|
- Displays metadata (status, category, rating)
|
|
- Provides action buttons (publish/delete)
|
|
|
|
### 6. **Publish** (`/publish<ID>`)
|
|
- Auto-detects collection
|
|
- Updates status to "published"
|
|
- Sends confirmation with item details
|
|
- Handles both projects and books
|
|
|
|
### 7. **Delete** (`/delete<ID>`)
|
|
- Auto-detects collection
|
|
- Permanently removes item from CMS
|
|
- Sends deletion confirmation
|
|
- Works for both projects and books
|
|
|
|
### 8. **Delete Review Translations** (`/deletereview<ID>`)
|
|
- Removes review text from book_reviews
|
|
- Keeps book entry intact
|
|
- Deletes both EN and DE translations
|
|
- Reports count of deleted translations
|
|
|
|
### 9. **AI Review Creation** (`.review <HC_ID> <RATING> <TEXT>`)
|
|
- Fetches book from Hardcover ID
|
|
- Generates EN + DE reviews via AI (Gemini 2.0 Flash)
|
|
- Creates translations in Directus
|
|
- Sets status to "draft"
|
|
- Provides publish/delete buttons
|
|
|
|
## 🔧 Technical Details
|
|
|
|
### Node Structure
|
|
|
|
```
|
|
Telegram Trigger
|
|
↓
|
|
Parse Command (JavaScript)
|
|
↓
|
|
Command Router (Switch)
|
|
↓
|
|
[10 Handler Nodes]
|
|
↓
|
|
Send Telegram Message
|
|
```
|
|
|
|
### Handler Nodes
|
|
|
|
1. **Dashboard Handler** - Fetches stats and formats dashboard
|
|
2. **List Handler** - Paginated lists with action buttons
|
|
3. **Search Handler** - Multi-collection search
|
|
4. **Stats Handler** - Comprehensive analytics
|
|
5. **Preview Handler** - Auto-detect and display item details
|
|
6. **Publish Handler** - Auto-detect and publish items
|
|
7. **Delete Handler** - Auto-detect and delete items
|
|
8. **Delete Review Handler** - Remove translation entries
|
|
9. **Create Review Handler** - AI-powered review generation
|
|
10. **Unknown Command Handler** - Help message
|
|
|
|
### Error Handling
|
|
|
|
Every handler node includes:
|
|
- Try-catch blocks around all HTTP requests
|
|
- User-friendly error messages
|
|
- Console logging for debugging (production-safe)
|
|
- Fallback responses on API failures
|
|
|
|
### API Integration
|
|
|
|
**Directus CMS:**
|
|
- Base URL: `https://cms.dk0.dev`
|
|
- Token: `RF2QytqhcLXuVy6FO3PzWlsoR-ysCTwB`
|
|
- Collections: `projects`, `book_reviews`
|
|
- Translations: `en-US`, `de-DE`
|
|
|
|
**OpenRouter AI:**
|
|
- Model: `google/gemini-2.0-flash-exp:free`
|
|
- Used for review generation
|
|
- JSON response parsing with regex fallback
|
|
|
|
**Telegram:**
|
|
- Bot: DK0_Server
|
|
- Chat ID: 145931600
|
|
- Parse mode: Markdown
|
|
- Credential ID: ADurvy9EKUDzbDdq
|
|
|
|
## 📥 Installation
|
|
|
|
1. Open n8n workflow editor
|
|
2. Click "Import from File"
|
|
3. Select `ULTIMATE-Telegram-CMS-COMPLETE.json`
|
|
4. Verify credentials:
|
|
- Telegram API: DK0_Server
|
|
- Ensure credential ID matches: `ADurvy9EKUDzbDdq`
|
|
5. Activate workflow
|
|
|
|
## 🎮 Usage Examples
|
|
|
|
### Basic Commands
|
|
|
|
```bash
|
|
/start # Show dashboard
|
|
/list projects # List all projects
|
|
/list books # List book reviews
|
|
/search nextjs # Search for "nextjs"
|
|
/stats # Show statistics
|
|
```
|
|
|
|
### Item Management
|
|
|
|
```bash
|
|
/preview42 # Preview item #42
|
|
/publish42 # Publish item #42
|
|
/delete42 # Delete item #42
|
|
/deletereview42 # Delete review translations for #42
|
|
```
|
|
|
|
### Review Creation
|
|
|
|
```bash
|
|
.review 12345 5 Great book! Very insightful and well-written.
|
|
```
|
|
|
|
Generates:
|
|
- EN review (AI-generated from your input)
|
|
- DE review (AI-translated)
|
|
- Sets rating to 5/5
|
|
- Creates draft entry in CMS
|
|
|
|
## 🔍 Command Parsing
|
|
|
|
The workflow uses regex patterns to parse commands:
|
|
|
|
| Command | Pattern | Example |
|
|
|---------|---------|---------|
|
|
| Start | `/start` | `/start` |
|
|
| List | `/list (projects\|books)` | `/list projects` |
|
|
| Search | `/search (.+)` | `/search react` |
|
|
| Stats | `/stats` | `/stats` |
|
|
| Preview | `/preview(\d+)` | `/preview42` |
|
|
| Publish | `/publish(?:project\|book)?(\d+)` | `/publish42` |
|
|
| Delete | `/delete(?:project\|book)?(\d+)` | `/delete42` |
|
|
| Delete Review | `/deletereview(\d+)` | `/deletereview42` |
|
|
| Create Review | `.review (\d+) (\d+) (.+)` | `.review 12345 5 text` |
|
|
|
|
## 🛡️ Security Features
|
|
|
|
- All API tokens stored in n8n credentials
|
|
- Error messages don't expose sensitive data
|
|
- Console logging only in production-safe format
|
|
- HTTP requests include proper headers
|
|
- No SQL injection risks (uses Directus REST API)
|
|
|
|
## 🚀 Performance
|
|
|
|
- Average response time: < 2 seconds
|
|
- Pagination limit: 5 items (prevents timeout)
|
|
- AI generation: ~3-5 seconds
|
|
- Search: Fast with Directus filters
|
|
- No rate limiting on bot side (Telegram handles this)
|
|
|
|
## 📊 Statistics Tracked
|
|
|
|
- Total projects/books
|
|
- Published vs draft vs archived
|
|
- Average book rating
|
|
- Project category distribution
|
|
- Recent activity (via date_created)
|
|
|
|
## 🔄 Workflow Updates
|
|
|
|
To update this workflow:
|
|
|
|
1. Export current workflow from n8n
|
|
2. Edit JSON file
|
|
3. Update version in workflow settings
|
|
4. Test in staging environment
|
|
5. Import to production
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### "Item not found" errors
|
|
- Verify item ID exists in Directus
|
|
- Check collection permissions
|
|
- Ensure API token has read access
|
|
|
|
### "Error loading dashboard"
|
|
- Check Directus API availability
|
|
- Verify network connectivity
|
|
- Review API token expiration
|
|
|
|
### AI review fails
|
|
- Verify OpenRouter API key
|
|
- Check model availability
|
|
- Review prompt format
|
|
- Ensure book exists in CMS
|
|
|
|
### Telegram not responding
|
|
- Check bot token validity
|
|
- Verify webhook registration
|
|
- Review n8n execution logs
|
|
- Test with `/start` command
|
|
|
|
## 📝 Maintenance
|
|
|
|
### Regular Tasks
|
|
|
|
- Monitor n8n execution logs
|
|
- Check API token expiration
|
|
- Review error patterns
|
|
- Update AI model if needed
|
|
- Test all commands monthly
|
|
|
|
### Backup Strategy
|
|
|
|
- Export workflow JSON weekly
|
|
- Store in version control (Git)
|
|
- Keep multiple versions
|
|
- Document changes in commits
|
|
|
|
## 🎯 Future Enhancements
|
|
|
|
Potential additions:
|
|
- Inline keyboards for better UX
|
|
- Multi-page preview with navigation
|
|
- Bulk operations (publish all drafts)
|
|
- Scheduled reports (weekly stats)
|
|
- Image upload support
|
|
- User roles/permissions
|
|
- Draft preview links
|
|
- Webhook notifications
|
|
|
|
## 📄 License
|
|
|
|
Part of DK0 Portfolio project. Internal use only.
|
|
|
|
## 🤝 Support
|
|
|
|
For issues or questions:
|
|
1. Check n8n execution logs
|
|
2. Review Directus API docs
|
|
3. Test with curl/Postman
|
|
4. Contact Dennis Konkol
|
|
|
|
---
|
|
|
|
**Version:** 1.0.0
|
|
**Last Updated:** 2025-01-21
|
|
**Status:** ✅ Production Ready
|