# 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///` 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).