What Happened
Completed the automation layer for SO1’s social media engine. The system now supports scheduled publishing, Discord-based approval, and automatic retry of failed posts — all without manual intervention once configured.What This Means
Before Phase 4: Every social media post required someone to log into the Rover console, review it, and click publish manually. Failed posts stayed failed. After Phase 4: Posts are scheduled with a target date. A bot publishes them automatically when the time arrives. Team members approve or reject posts directly from Discord — no need to open the console. If a post fails (API rate limit, network issue), the system retries up to 3 times over 3 hours before alerting the team.Key Decisions
- Discord for approvals, not Slack. Discord is already where the team communicates. Approval requests show up as interactive messages with Approve/Reject/Edit buttons. No new tool to check.
- Conservative retry policy. Three automatic retries with one-hour gaps. If it still fails, a human gets notified. This prevents runaway retries from burning API quotas.
- System does its own error handling. When publishing fails, the backend marks the post as failed immediately — the automation layer doesn’t need to handle error states. Clean separation of concerns.
Operational Status
Code complete. Not yet deployed.To Go Live (action items)
| Step | Owner | Effort |
|---|---|---|
| Import 4 workflows into n8n (hab.so1.io) | DevOps | 30 min |
| Create Discord bot + invite to server | DevOps | 30 min |
| Set environment variables (6 values) | DevOps | 15 min |
| Fix approval button bug (SHA locking, #98) | Engineering | 2-4 hrs |
| End-to-end test | QA | 2 hrs |
Known Issue
The Discord approval buttons have a bug — they try to update posts without the required file lock. Fix is straightforward (add two new API endpoints) but blocks the approval flow specifically. Scheduled publishing and retry work independently.Business Impact
- Time saved: Eliminates daily manual publish routine (~15-30 min/day)
- Reliability: Failed posts recover automatically instead of being forgotten
- Responsiveness: Approvals happen in Discord within seconds, not hours
- Platform coverage: Currently Bluesky only. Twitter and LinkedIn adapters stubbed but need API credentials (#99)
Artifacts
- Spec:
platform-tools/postie/SPEC-003-PHASE-4-AUTOMATION-SCHEDULING.md - Discord setup:
platform-tools/postie/docs/DISCORD-BOT-SETUP.md - 7 GitHub issues (#93-#99) tracking deployment and remaining gaps