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>
3.4 KiB
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
.envas META_SYSTEM_USER_TOKEN. Runnpm run test:metainconnector.
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" adminstill 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=truethe 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).