Admin
Home · Admin
Admin
Configure illypad, manage clients, team, and tokens.
Connect Ripple
Paste the AI relay webhook URL below to turn the assistant on. Full admin setup →
0 of 7 steps complete

Supabase Required

Database + auth. Copy URL and anon key from Supabase → Settings → API.

Meta App Required

Instagram + Facebook publishing. App ID and Secret from developers.facebook.com. System User Token from Meta Business Suite.

Cloudinary Required

Image/video hosting used before posting to Meta.

n8n Publish Webhook Required

n8n endpoint that handles the publish pipeline. Use the Production URL.

n8n Review Webhook Optional

Fires when a draft is submitted for review. Set to send a manager email.

n8n Variation Engine Webhooks Optional

Powers the per-location Variation Composer. Without these, Generate / Publish on /compose-variation silently no-op. Use the Production URLs.

Variation Generate
Variation Publish

AI Relay (Ripple) Optional

Powers the Ripple assistant. An n8n endpoint that calls Claude server-side — the browser never holds the API key (DEC-011). Without it, Ripple stays read-only and can't chat. Use the Production URL.

Research relay Optional

Powers competitor research on the Research page. An n8n endpoint that reads competitor posts and calls Claude server-side — the browser never holds the API key (DEC-011). Without it, Research can't run an analysis. Use the Production URL.

Email Provider Optional

Used for invitations and report digests. illypad uses Resend.

Google Analytics 4 Optional

Website analytics alongside social. Measurement ID from GA4 property (G-XXXX).

Sync Meta Assets
Uses your System User token to discover all Facebook Pages and linked Instagram accounts shared with Made Marketing. This panel finds them — adding them is handed off: Add as client opens the new-client form pre-filled, Onboard in Pages maps the Page onto a client you already have.
Onboarding target
Choose which client the bulk tools below add stores to. Both Fleet onboarding and Bulk store onboarding (CSV) write into this client — neither can be committed until you pick one.
Client
Fleet onboarding
Onboard a whole franchise for the selected client in four guided steps — Import → Match → Validate → Commit. Each store gets a live credential check (🔴 no token · 🟡 untested · 🟢 tested-valid) via the Meta relay before you commit. Idempotent on location_id (re-running the same file updates, never duplicates); stores without a token land dark (excluded from publishing) until a token is added.
Bulk store onboarding (CSV)
Onboards many stores at once for the selected client — identity, Facebook Page credentials, and AI-writer distinctives. Keyed on location_ref (→ locations.location_id), so re-uploading the same file updates rows instead of duplicating them. Stores with a blank system_user_token are created but excluded from publishing until a token is added. Header row required; columns: location_ref, store_name, city_name, store_address, phone_number, manager_name, group_name, neighborhood, facebook_page_id, facebook_page_name, instagram_handle, instagram_user_id, system_user_token, neighborhood_vibe, local_landmark, community_tie, local_notes.
0 team members
NameEmailRoleClientsLast activeActions

Team pay

Everyone earns for planning a post and again for creating it. This is what each person has done since you last paid them.

Team member Planned Created Owed now Last paid Paid this year Actions

Who's paid per post

Payment history

Checking token health…
LocationClientStatusExpiresLast verifiedActions

Post pipeline

Every post, grouped by where it is on the line — idea through published. Open one to see who has it, how long it has been there, and everything that has happened to it.

StagePostClientWaiting onLast moved
DateClientLocationTypeMessageRawActions

Caption Templates

Manage reusable caption templates for the active client.

Content Pillars

Define content categories for the active client.

Post Goals

Set a target per post type — analytics judges each post against its own type's goal, not just the feed average.

TypeMetricTargetActions
Total Posts (30d)
Avg Engagement
Total Reach
Needs Attention

Scheduled Content (Next 7 Days)

Reports

Reports are all in one place now. Generate one for a single client, or the same one for several clients at once — same page, same settings.

Generate reports for all clients

Agency Branding

Customize how illypad appears to your team and clients.

Identity

Colors

Footer & Contact

Show "Powered by illypad"

Email Branding

Brand Kit Auto-Extract

Brand Audit

Location Distinctives

Curated local facts per location. The AI uses these to draft genuinely local, non-duplicate captions (it uses them only when they fit, and never invents details). Fields: store name, neighborhood vibe, local landmark, community tie, local notes.

Bulk CSV import

Header row required. Columns: location_ref, store_name, neighborhood_vibe, local_landmark, community_tie, local_notes. Rows are matched to locations by location_ref; unmatched or malformed rows are reported and skipped.

0 locations
LocationStore nameDistinctivesActions

Canva sync

Pull approved designs from a client’s Canva folder straight into their Media library. Each design lands tagged to the client, ready to schedule. A person still curates in Media before anything publishes — nothing here goes live on its own.

Sync connection

Paste the Canva pull address (from setup), then use Pull now to sync every active folder immediately. Otherwise it syncs on its own every 20 minutes.

0 folders
TargetCanva folderActiveLast syncActions

Connected folders

A registry of the Google Drive folders connected to each client. Imports happen on demand — anything in a connected folder can be pulled into the client’s Media library (images right away, videos when they’re first used in a post). A person still curates in Media before anything publishes.

Connected folders are imported on demand — open a client’s Media page and paste a Drive link to import from a folder or a single file.

0 folders
TargetDrive folderActiveLast syncActions

Competitor benchmarks

The Instagram accounts each client is measured against — corporate brand, national chains, the shop across the street. The nightly job pulls each one’s public follower and post counts so a client can see how they stack up. Only public Business/Creator accounts resolve; private or personal handles are stored quietly as “not found”.

0 targets
ClientInstagram handleLabelActiveActions

Onboard Pages

Discover the Facebook Pages the agency can manage, then map each one to a client and location. Mapping seeds the location and stores its publishing connection securely on the server — the token never touches your browser. Safe to re-run: a Page already mapped won’t be duplicated.

No Pages discovered yet
Click “Discover Pages” to list the agency portfolio.

Prospect Audit

Score a prospect’s social presence before you onboard them — run an audit, review the scorecard, and save it as a branded PDF.

Full screen

Run an audit

Enter an Instagram handle to analyze their social presence.
Saved Audits
No saved audits yet — run one above to save it here.

No audit loaded

Enter an Instagram handle and click "Run Audit" to generate a prospect scorecard.