Status
BFS Marketing Automation - Current Status
Last Updated: November 25, 2025 System Version: 2.2 Dashboard: http://10.1.10.110:5000
Executive Summary
The BFS Marketing Automation system is fully operational with automated content generation, image creation, and workflow management across 26 offices and 4 social media platforms.
Latest Updates (November 25, 2025): - โ Release Management System - Organize videos into coordinated campaigns - โ Edit/Delete Releases - Modify campaign details after creation - โ Video Sorter enhancements - Database videos + Release dropdown - โ Toast notifications - Success/error feedback throughout dashboard - โ Sticky navigation - Page header stays visible when scrolling - โ Dark mode fixes - Improved modal and dropdown readability - โ Per-video status tracking (Available, Scheduled, Published, Archived) - โ Video library concept - Posts stay permanently, videos get status updates - โ Automated image generation (3x daily via DALL-E 3) - โ Automated Metricool scheduling (hourly, test mode) - โ Manual content generation (on-demand, 1-50 posts)
System Components
1. Content Generation
- Status: โ Fully Operational
- Schedule: Monday 6:00 AM (automated) + on-demand manual
- Capability: ~65 posts/week (53 office + 12 social)
- Media Mix: 80% images, 20% videos
- AI Model: Claude Sonnet 4.5
- Manual Generation: 1-50 posts via dashboard Quick Actions
2. Image Generation
- Status: โ Fully Operational
- Schedule: 3x daily (6am, 12pm, 6pm)
- Technology: DALL-E 3 AI
- Formats: Square (1024ร1024), Portrait (1024ร1792)
- Cost: $0.04-$0.08 per post
- Manual Trigger: Green "Generate Now" button on Pending Design page
3. Approval Workflow
- Status: โ Fully Operational
- Stage 1: Text approval + platform selection
- Stage 2: Complete post approval (text + images)
- Dashboard: http://10.1.10.110:5000
- Features: Approve, reject, regenerate, archive
4. Scheduling & Publishing
- Status: ๐งช Test Mode
- Schedule: Hourly checks for approved posts
- Target: Metricool API for multi-platform scheduling
- Safety: Auto-publish disabled (
METRICOOL_AUTO_PUBLISH = False) - Manual Trigger: Orange "Schedule Now" button on Approved page
5. Notifications
- Status: โณ Pending Microsoft Propagation
- Channel: Microsoft Teams via SMTP
- Timeline: Expected operational after Nov 22 (48h propagation)
- Fallback: Manual dashboard checks
6. Backup & Storage
- Status: โณ Pending Microsoft Propagation
- Schedule: Daily 11:00 PM
- Target: SharePoint document library
- Timeline: Expected operational after Nov 22
7. Analytics
- Status: โ Operational (local tracking)
- Schedule: Friday 5:00 PM weekly reports
- Metrics: Approval rates, workflow timing, system health
Orchestrator Tasks (11 Total)
| Task | Status | Schedule | Purpose |
|---|---|---|---|
| Content Generation | โ Active | Monday 6am | Generate weekly posts |
| Image Generation | โ Active | 3x daily (6am, 12pm, 6pm) | DALL-E 3 images |
| Metricool Scheduling | ๐งช Test Mode | Hourly | Auto-schedule posts |
| Approval Monitoring | โ Active | Hourly at :15 | Send reminders |
| Designer Notifications | โ Active | 3x daily | Notify design needs |
| Design Checks | โ Active | 3x daily | Check completions |
| Video Folders | โ Active | Every 5min | Create SharePoint folders |
| Video Sync | โ Active | Every 15min | Sync videos from SharePoint |
| SharePoint Backup | โณ Pending | Daily 11pm | Backup posts |
| Weekly Analytics | โ Active | Friday 5pm | Performance reports |
| Health Check | โ Active | Every 30min | System monitoring |
Feature Status
Completed (Production Ready)
- โ Two-stage approval workflow
- โ Multi-platform image generation (size-based)
- โ Platform selection modal with cost calculator
- โ Automated content generation (Claude AI)
- โ Automated image generation (DALL-E 3)
- โ Manual content generation (on-demand)
- โ Dashboard automation banners
- โ Manual workflow triggers
- โ Docker containerization
- โ SQLite database (WAL mode)
- โ Release Management System - Nov 25
- โ Edit/Delete Releases - Nov 25
- โ Video Sorter with Release dropdown - Nov 25
- โ Toast notification system - Nov 25
- โ Sticky page header navigation - Nov 25
- โ Video workflow (2-stage with per-video status) - Nov 24
- โ Video library system - Nov 24
- โ Video proxy endpoint - Nov 24
- โ Inline video playback - Nov 24
- โ Video post support (concepts, scripts, shot lists)
- โ Multi-office video upload
- โ Office assignment system (26 offices)
- โ Social media accounts (4 platforms)
In Testing
- ๐งช Automated Metricool scheduling (test mode active)
- ๐งช Facebook auto-publishing (test mode active)
Pending Propagation (Expected Nov 22)
- โณ Teams notifications (SMTP AUTH propagating)
- โณ SharePoint backups (permissions propagating)
Deferred/Future
- ๐ Metricool API integration (currently manual scheduling)
- ๐ Advanced analytics dashboard
- ๐ A/B testing features
- ๐ Automated performance optimization
Infrastructure
Hardware
- Device: Raspberry Pi 5
- IP: 10.1.10.110
- Hostname: bfs-pi.local
- Storage: 256GB
- Memory: 8GB
Software
- OS: Linux 6.8.0 (Raspberry Pi OS)
- Python: 3.11
- Database: SQLite 3 (WAL mode)
- Web Server: Flask + Docker
- Scheduler: Cron
Services & APIs
- Claude API: โ Active (Anthropic)
- DALL-E 3 API: โ Active (OpenAI)
- Microsoft Graph API: โณ Pending propagation
- Canva API: โ Configured (optional use)
- Metricool API: ๐งช Test mode
Weekly Content Output
Post Distribution
- Total Posts: ~65 per week
- Office Posts: 53 (26 offices ร 2-3 posts each)
- Social Posts: 12 (Instagram: 5, TikTok: 3, YouTube: 1, Twitter: 3)
Media Types
- Image Posts: 52 (80%)
- Video Posts: 13 (20%)
Platforms Covered
- Facebook (26 office pages)
- Instagram (@benchmarkfamilyservices)
- TikTok (@bfs_families)
- YouTube (Benchmark Family Services)
- Twitter/X (@BFS_Families)
Costs
Monthly Operational Costs
- Claude API: $10-20/month (content generation)
- DALL-E 3 API: $15-20/month (image generation)
- Total: ~$25-40/month
Annual Projections
- AI Services: $300-480/year
- Cost Savings vs. Manual: ~$2,400/year (85-90% reduction)
Performance Metrics
Workflow Timing (Target)
- Content Generation: Monday 6am (automated)
- Stage 1 Approval: Monday 9am-5pm (10-15 min)
- Image Generation: Automated 3x daily
- Stage 2 Approval: Wednesday 9am-5pm (15-20 min)
- Scheduling: Wednesday-Thursday
- Publishing: Thursday-Sunday
Approval Rates (Target)
- Stage 1: 80-85% approved, 15-20% rejected
- Stage 2: 94-97% approved, 3-6% rejected
Known Issues & Limitations
Current Limitations
- Teams Notifications: Awaiting Microsoft propagation (48h)
- SharePoint Backup: Awaiting Microsoft propagation (48h)
- Metricool Auto-Publish: Disabled for safety testing
- Cron Jobs: Not yet installed (setup script ready)
Technical Debt
- Update
setup_cron.shto include new orchestrator tasks - Enable auto-publish after testing period
- Complete Teams/SharePoint testing after propagation
- Enhance analytics with platform-specific metrics
Next Steps (Priority Order)
Immediate (This Week)
- โฌ Install cron jobs with updated orchestrator schedule
- โฌ Test manual trigger buttons thoroughly
- โฌ Monitor image generation automation (3x daily)
- โฌ Review Metricool scheduling logs in test mode
Short-term (1-2 Weeks)
- โฌ Test Teams/SharePoint after Nov 22 propagation deadline
- โฌ Enable Metricool auto-publish after testing period
- โฌ Conduct end-to-end workflow test
- โฌ Train marketing staff on new manual trigger features
Medium-term (1 Month)
- โฌ Complete analytics dashboard
- โฌ Optimize image generation costs
- โฌ Enhance video post workflow
- โฌ Implement backup validation
Support & Documentation
Documentation
- README.md: Quick start and overview
- docs/guides/USER-WORKFLOW-GUIDE.md: Step-by-step user guide
- docs/guides/IT-ADMIN-GUIDE.md: Technical administration guide
- .claude/CLAUDE.md: Claude Code development instructions
- docs/reference/: API and command references
Support Contacts
- IT Admin: jordan.hoelscher@benchmarkfs.org
- Primary User: marketingbfs@benchmarkfs.org
- System Location: Raspberry Pi at 10.1.10.110
Quick Access
- Dashboard: http://10.1.10.110:5000
- System Status: http://10.1.10.110:5000/status
- Health API: http://10.1.10.110:5000/api/status
Change Log
November 25, 2025
- Release Management System: Organize videos into coordinated campaigns
- Added Edit/Delete Release functionality to Video Post Detail page
- Enhanced Video Sorter with Release dropdown (populates based on selected Post)
- Video Sorter now shows both SharePoint and database videos
- Database videos show "Previously assigned video" indicator
- Added toast notification system for success/error feedback
- Made page header sticky for better navigation
- Fixed dark mode for modal dropdowns and various UI elements
- Post Information card redesign with sectioned layout
- New API endpoints:
/api/update-release,/api/delete-release,/api/delete-db-video - Updated unassigned video count to include database videos
November 24, 2025
- Major video workflow overhaul: Simplified from 5 stages to 2 stages
- Added per-video status tracking (Available, Scheduled, Published, Archived)
- Implemented video library concept (posts stay permanently, videos get status updates)
- Created video proxy endpoint for SharePoint streaming with authentication
- Added inline video playback with seeking/scrubbing support
- Built Video Sorter interface for assigning videos to concepts
- Created combined Stage 2 view (
/video-stage2) showing all posts past Stage 1 - Added 5 new columns to video_files table for per-video status
- Updated database methods: get_video_library_posts(), update_video_status(), get_unassigned_videos_count()
- Same concept can now be scheduled multiple times with different office videos
November 20, 2025
- Added automated image generation task (3x daily)
- Added automated Metricool scheduling task (hourly, test mode)
- Added manual content generation feature
- Added automation banners with manual triggers
- Added live countdown timers
- Enhanced system status page
November 19, 2025
- Implemented multi-platform image generation
- Added platform selection modal
- Enhanced post detail view with image grid
November 17, 2025
- Converted database to WAL mode
- Added video post support
- Enhanced rejection workflow
November 14, 2025
- Docker containerization completed
- Complete orchestrator built
- Teams notification system ready
System Status: โ Operational with ongoing enhancements Last Health Check: Auto-monitored every 30 minutes Uptime Target: 99.5% Current Uptime: Monitored via health_check.py