quorlasocial/GO-LIVE.md
metatroncubeswdev c309581df0 Initial commit: Quorla social media manager
Dashboard (content library, publishing queue with approvals, inbox, team
management, AI runs), Meta connector, branded PDF reports, agent skills,
and Docker packaging (Dockerfile, docker-compose with Caddy HTTPS,
backup and path-relocation scripts).

Client data, live data and secrets are excluded via .gitignore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:02:29 -04:00

42 lines
3.4 KiB
Markdown

# Go-live checklist: Social Manager
## 1. Add permissions to the Meta app (developers.facebook.com → Social Manager → Use cases / App Review)
Make sure the token already has: pages_show_list, pages_read_engagement, pages_manage_posts, pages_read_user_content, pages_manage_engagement, instagram_basic, instagram_content_publish, instagram_manage_comments, instagram_manage_insights, read_insights, business_management.
Add now:
- instagram_manage_messages: Instagram DMs (inbox + replies)
- pages_messaging: Facebook Messenger inbox + replies
- leads_retrieval (+ pages_manage_ads): pull Lead Ads form leads into leads.csv / Odoo
- ads_read (later ads_management): Meta Ads reporting
- Instagram Public Content Access feature: hashtag search for trend scans
Then: Business Settings → System users → social-agent → Generate new token (tick the new scopes, never expires) → paste into `.env` as META_SYSTEM_USER_TOKEN. Run `npm run test:meta` in `connector`.
## 2. Turn publishing on
In `.env`: `ALLOW_PUBLISH=true`. Every post/reply still needs an admin's Approve click (or a "yes" in Claude Code).
## 3. Build and run the dashboard (on this PC)
```
cd dashboard
npm run build
npm start # http://localhost:4310
```
Instagram posts go out only while something is running the queue. Either keep the dashboard running, or add a scheduled task:
```
schtasks /create /sc minute /mo 5 /tn "SocialManagerScheduler" /tr "node D:\MCS_Repos\2026\claude_Metatron_Social_Media_Manager\connector\scripts\run-scheduler.js"
```
(If you use the task, set `SCHEDULER_ENABLED=false` in `.env` so the two don't overlap. The lock file prevents double posts anyway.)
## 4. Link Infini
Dashboard → Clients → Add business → pick Infini's Page (or `npm run link-clients`). Its timezone is already Asia/Kolkata.
## 5. First real test
Schedule a Story for Falcon Fashions 20 minutes ahead → Approve → check it appears → check `data/publish-log.jsonl`.
## 6. Going beyond your own portfolio (later)
Clients' assets are shared into the MetatronCube portfolio, so development mode works for staff who have app roles. App Review + Tech Provider registration is only needed if clients ever log in to the app themselves.
## 7. Team uploads (Content library)
- Each designer/editor needs a dashboard login: an admin adds them in **Settings → Team members** (members upload and schedule drafts; only admins approve). The admin gets a temporary password to send privately; the person chooses their own after signing in. Admins can also reset passwords, change roles, deactivate or remove people there. Logins are stored hashed in `data/dashboard/users.json`. If no admin can sign in, `cd dashboard && npm run add-user -- you@agency.com "Name" admin` still works as a backup.
- Flow: team uploads finished work → admin reviews (approve / request changes with a note) → Schedule → draft in Publishing → admin approves → goes out at the client's local time.
- Files are stored in `data/library/<client>/<month>/` on this PC. Put the dashboard behind your network or a VPN if the team in India uploads remotely; don't expose port 4310 to the internet without HTTPS.
- Optional Odoo link: pick the task when uploading. With `ODOO_ALLOW_WRITES=true` the task gets a note and moves to the project's "Review" stage on upload, "Done" on approval, and back to "In Progress" when changes are requested (matched by stage name).