Create instagram-automation-content-hub-plan.md via n8n
This commit is contained in:
parent
01dcce3ffb
commit
16964f4603
148
PBS/Tech/Projects/instagram-automation-content-hub-plan.md
Normal file
148
PBS/Tech/Projects/instagram-automation-content-hub-plan.md
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
---
|
||||||
|
project: instagram-automation-content-hub-plan
|
||||||
|
type: project-plan
|
||||||
|
status: active
|
||||||
|
tags:
|
||||||
|
- pbs
|
||||||
|
- n8n
|
||||||
|
- instagram
|
||||||
|
- automation
|
||||||
|
- mysql
|
||||||
|
- flask
|
||||||
|
- docker
|
||||||
|
- wordpress
|
||||||
|
created: 2026-03-15
|
||||||
|
updated: 2026-03-15
|
||||||
|
path: PBS/Tech/Projects/
|
||||||
|
---
|
||||||
|
|
||||||
|
# Instagram Automation & Content Hub — Master Plan
|
||||||
|
|
||||||
|
## Background
|
||||||
|
|
||||||
|
This plan consolidates two sessions of work:
|
||||||
|
- Finishing error checking on the Instagram comment reply workflow
|
||||||
|
- Redesigning the data pipeline to simplify the reply workflow and automate recipe/reel syncing
|
||||||
|
|
||||||
|
### Key Architecture Decision
|
||||||
|
The reply workflow will be refactored to use a **single `instagram_posts` table lookup** instead of
|
||||||
|
the current two-table lookup + merge pattern. The `instagram_posts` table will store the recipe URL
|
||||||
|
directly, eliminating the need to join with `pbs_recipes` at reply time.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 1 — Foundation
|
||||||
|
|
||||||
|
- [ ] Add phpMyAdmin back to Docker Compose on staging
|
||||||
|
- [ ] Design final MySQL schema
|
||||||
|
- `pbs_recipes` — post_id, title, url, keyword (updated)
|
||||||
|
- `instagram_posts` — reel_id, post_id (FK), url, keyword (new url field)
|
||||||
|
- Foreign key linking `instagram_posts.post_id` → `pbs_recipes.post_id`
|
||||||
|
- [ ] Migrate n8n datatables to MySQL
|
||||||
|
- [ ] Verify PBS-API can query updated schema
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 2 — Finish Error Checking on Reply Workflow
|
||||||
|
|
||||||
|
- [ ] Refactor reply workflow to single `instagram_posts` table lookup (remove merge)
|
||||||
|
- [ ] Add IF node after table lookup → Notify Travis on no record found
|
||||||
|
- [ ] Add IF node for keyword not matched → Notify Travis
|
||||||
|
- [ ] Verify subscribe check → Notify Travis (already built)
|
||||||
|
- [ ] Verify hash check → Notify Travis (already built)
|
||||||
|
- [ ] Test all error paths on staging
|
||||||
|
- [ ] Deploy to production
|
||||||
|
|
||||||
|
### Notify Travis Workflow (already built)
|
||||||
|
- Webhook trigger at: https://n8n.plantbasedsoutherner.com/webhook/notify-pbschat
|
||||||
|
- Payload format:
|
||||||
|
{
|
||||||
|
"title": "Alert title",
|
||||||
|
"message": "Detail message",
|
||||||
|
"timestamp": "={{ $now.toFormat('MMM dd, HH:mm:ss') }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 3 — WordPress → MySQL Sync
|
||||||
|
|
||||||
|
- [ ] Wire WordPress publish webhook (proof of concept built) to n8n workflow
|
||||||
|
- [ ] n8n workflow inserts/updates `pbs_recipes` table on post publish
|
||||||
|
- [ ] Handle duplicate detection (re-publish should UPDATE not INSERT)
|
||||||
|
- [ ] HMAC signature verification on incoming webhook (already built in WPCode Lite)
|
||||||
|
- [ ] Test with staging WordPress → staging n8n → staging MySQL
|
||||||
|
- [ ] Deploy to production
|
||||||
|
|
||||||
|
### WordPress Webhook Details (already built)
|
||||||
|
- WPCode Lite snippet fires on post publish (admin only)
|
||||||
|
- Payload: post_id, title, url, tags, categories
|
||||||
|
- HMAC signature via X-PBS-Signature header
|
||||||
|
- Raw body passed via X-PBS-Body header (base64) for signature verification
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 4 — Instagram Reel Publish Webhook
|
||||||
|
|
||||||
|
- [ ] Research Meta API for reel publish webhook event
|
||||||
|
- [ ] Build n8n workflow to receive reel publish event
|
||||||
|
- [ ] Insert record into `instagram_posts` on new reel
|
||||||
|
- [ ] Auto-populate URL by looking up matching `pbs_recipes` record via post_id in caption
|
||||||
|
- [ ] Trigger match verification check after insert
|
||||||
|
- If match found → update record, no alert
|
||||||
|
- If no match found → Notify Travis to manually link
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 5 — PBS Content Hub Updates (Planning Required First)
|
||||||
|
|
||||||
|
- [ ] **Planning session required before any code is written**
|
||||||
|
- [ ] Review current Content Hub architecture and existing features
|
||||||
|
- [ ] Define full requirements for:
|
||||||
|
- Recipe review UI — Jenny can view new recipe records, confirm or edit keyword before reel goes live
|
||||||
|
- Reel/recipe match status dashboard — shows matched vs unmatched reels at a glance
|
||||||
|
- Manual match correction UI — fix bad or missing matches without touching MySQL directly
|
||||||
|
- [ ] Design UI/UX mockups
|
||||||
|
- [ ] Get Jenny feedback on workflow fit
|
||||||
|
- [ ] Build once requirements are locked
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Automation Flow (Target State)
|
||||||
|
|
||||||
|
1. Recipe published on WordPress
|
||||||
|
→ WPCode Lite webhook fires
|
||||||
|
→ n8n inserts record into `pbs_recipes`
|
||||||
|
|
||||||
|
2. Jenny reviews PBS Content Hub
|
||||||
|
→ Confirms or edits keyword
|
||||||
|
→ One intentional human checkpoint ✅
|
||||||
|
|
||||||
|
3. Jenny publishes Instagram reel (with WordPress post_id in caption)
|
||||||
|
→ Meta webhook fires
|
||||||
|
→ n8n inserts record into `instagram_posts` with URL from `pbs_recipes`
|
||||||
|
|
||||||
|
4. System verifies match
|
||||||
|
→ If clean → ready for comments
|
||||||
|
→ If broken → Notify Travis via Google Chat
|
||||||
|
|
||||||
|
5. User comments on reel
|
||||||
|
→ n8n comment reply workflow fires
|
||||||
|
→ Single lookup on `instagram_posts`
|
||||||
|
→ Keyword match → send DM + public reply
|
||||||
|
→ All dead ends → Notify Travis
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- All development on staging first, then promote to production
|
||||||
|
- phpMyAdmin for direct MySQL access (Travis/admin only)
|
||||||
|
- PBS Content Hub is the Jenny-facing interface for data management
|
||||||
|
- Notify Travis workflow handles ALL alerts (Google Chat)
|
||||||
|
- n8n datatables to be fully retired once MySQL migration complete
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Last Updated: March 15, 2026*
|
||||||
|
*Maintained by: Travis*
|
||||||
|
*Project: Plant Based Southerner — Instagram Automation*
|
||||||
Loading…
Reference in New Issue
Block a user