Share:
26 March 2026

Managed Instagram for ICONIC Clients

A fully managed Instagram posting service — we post AI-generated photos directly to each client's Instagram account, on a schedule, with zero effort from the client.

What We're Building

ICONIC generates professional AI photos for every client. Right now, those photos sit in the client's dashboard. The next step is posting them automatically to the client's own Instagram account — building their social presence, driving engagement, and giving them a reason to stay subscribed.

The Service

Every ICONIC client gets managed Instagram posting as part of their plan. We handle everything:

Two Client Paths

📱

"I Have Instagram"

Client clicks "Connect Existing Account" on their dashboard. They're redirected to Facebook, grant permissions, and done. Takes 30 seconds.

2 steps

"I Need Instagram"

Client clicks "Create New Account" and follows a 4-step guided wizard: create IG, switch to Business, create Facebook Page, link them, then connect.

4 steps + connect

Posting Modes (Per Client)

ModeHow It WorksWhen to Use
Admin ApprovedPhotos queue up. Neil reviews captions and selects which to post. Approved posts go out on schedule.Default for all new clients. Safer — it's their personal IG.
Auto-PostPhotos post automatically on schedule (3x/week). No manual approval needed.Toggle on per client once you trust the pipeline.

Client Dashboard Integration

The Instagram section lives inside the existing client dashboard — between Quick Actions and Plan Info. No separate page to find.

Client logs in
Dashboard loads
Sees "Connect Instagram"
Clicks Connect
Facebook OAuth
Connected ✓

Once connected, the dashboard shows their @username, post count, last post date, and a link to view their Instagram. They can disconnect at any time.

How It Works (Technical)

Architecture

Client grants
permissions
Meta OAuth
token exchange
Long-lived page
token stored
Photos posted via
Graph API
Live on
Instagram

We use the Meta Graph API v22.0 to post photos. Each client's long-lived page token is stored in iconic_clients.json and never expires (as long as they don't revoke access or change their Facebook password). A daily health check verifies all tokens are still valid.

Files Built

FilePurposeStatus
instagram_manager.jsCore module — OAuth flow, per-client posting, schedule queue, token health checksDone
instagram_post.jsGraph API functions — refactored to support per-client tokens (was central-account only)Done
instagram_client_setup.htmlClient wizard — "I Have IG" (2 steps) or "I Need IG" (4 steps)Done
instagram_admin.htmlAdmin dashboard — all clients, token health, auto-post toggles, posting historyDone
dashboard.htmlClient dashboard — new Instagram section (connect/status/disconnect)Done
serve_reports.js12 new API endpoints for OAuth, posting, admin controlsDone
ig_app_config.jsonMeta App ID & Secret storage (entered via admin dashboard)Done

API Endpoints

EndpointWhat It Does
GET /api/instagram/connectRedirects client to Facebook OAuth with correct permissions
GET /api/instagram/callbackExchanges OAuth code for tokens, stores in client record, redirects to dashboard
GET /api/instagram/client-statusReturns IG connection status for logged-in client
POST /api/instagram/disconnectRemoves tokens, stops posting for that client
POST /api/instagram/post-nowAdmin: post a specific photo to a client's IG immediately
GET /api/instagram/admin/clientsAll clients with connection status, post counts, settings
POST /api/instagram/admin/settingsToggle auto-post, change posts/week per client
POST /api/instagram/admin/configSave Meta App ID & Secret

What's Needed to Go Live

Step 1: Meta App Setup

  1. Go to developers.facebook.com
  2. Create a Meta App (or use existing one)
  3. Add the Instagram Graph API product
  4. Copy the App ID and App Secret
  5. Enter them on the Admin Dashboard
You do this

Step 2: Meta App Review

  1. Submit the app for App Review requesting instagram_content_publish permission
  2. Provide a screencast showing the posting flow
  3. Wait for Meta approval (1-4 weeks)
  4. Switch app to Live mode
Blocks external clients

In the meantime: You can test everything with your own Instagram account right now using Dev Mode. Add yourself as a tester in the Meta App settings — the full OAuth flow, posting, and scheduling all work in dev mode. External clients just need the app review to complete first.

Live URLs

PageURL
Admin Dashboardreports.iconicbyai.com/iconic/instagram_admin.html
Client Setup Wizardreports.iconicbyai.com/iconic/instagram_client_setup.html
Client Dashboardreports.iconicbyai.com/iconic/dashboard.html