MCMS Admin Hub — User Guide

Persuasive Pitch publishing control panel

← Back to Hub Download PDF

SEO Command Center (SEOCC) creates marketing content; MCMS schedules, publishes, and measures it on the website and LinkedIn. Use this guide when helping with the Hub — you do not need to edit code or SSH into servers for normal work.

Staging Hub: https://mcms-staging.persuasivepitch.ai/admin/ui · Updated 2026-08-03

What is this screen?

The Hub has three tabs. Live in Publish. Open Exception processing or Administration only when you need them. Slack (SEOCC) notifies you when a post succeeds, when a post fails, and when a connection fails.

Quick start (first 2 minutes)

  1. Open the Hub — you land on Publish.
  2. Work Awaiting approval if anything is waiting.
  3. Use Publish blog draft / AI Carousel for the piece you are shipping.
  4. Confirm the post under Successful posts (Open live post).
  5. If something is stuck or failed, switch to Exception processing.
Full MCMS Admin Hub page
Full Hub page (reference — layout now uses three tabs)

Publish tab

Default home. Step 1 approve, step 2 publish blog or carousel, step 3 confirm live posts. Slack notifies you when a post succeeds.

↑ Contents

Exception processing

Filters, validation failed, manual fallback packages, analytics, and in-Hub notification log. Slack notifies you when a post fails.

↑ Contents

Administration

Connections, notification preferences, and audit trail. Slack notifies you if a connection fails.

↑ Contents

Dashboard filters

Dashboard filters panel
Dashboard filters

Use filters to shrink the Queue and related lists. Click Apply filters after changing fields; Clear resets everything.

Field Meaning Example
Channel Where content goes website, linkedin
Status Lifecycle state published, pending_approval
Content type Free text match Blog, Founder, Carousel
Website kind Blog subtype blog, faq, white_paper
From / To date Date range Last week’s publishes
Search Title, body, or ID Paste a ci_… id
Campaign ID / Run ID Campaign / run identifiers from SEOCC or Hub paste From the intake batch
↑ Contents

Connections

Connections table
Connections — Blog, generator feedback, LinkedIn

When to use: First check on any “nothing published” day. Do not paste secrets into chat.

Platform Healthy looks like If not connected
persuasive_pitch_blog CONNECTED + service token note Tell Matt — Blog API / service token
Legacy generator feedback Usually unused — SEOCC does not need this webhook Tell Matt only if you still see an old AirOps URL
linkedin CONNECTED + founder name Use Connect founder LinkedIn in the Header
↑ Contents

Queue

Queue table with published items
Queue — history and schedule
Column Meaning
When Scheduled publish time (UTC ends with Z)
Channel website or linkedin (etc.)
Title Human title + type; Open live post when published
Status e.g. PUBLISHED, SCHEDULED, FAILED
ID Content item id (ci_…) — use in Search / support tickets
↑ Contents

Pending approval

Pending approval empty table
Pending approval — empty means nothing waiting

Items here need a human decision before auto-publish continues. Empty (None) is good. Approve only content you are allowed to publish.

LinkedIn carousels (and later YouTube videos) cannot auto-post. After you publish by hand, paste the live URL if you have it, then click Complete (next to Cancel). Status becomes completed and the row moves to Successful posts. That also tells SEO Command Center the piece is live on the calendar.

↑ Contents

Validation failed

Validation failed row with Issues column
Validation failed — read the Issues column

SEOCC (or Hub paste) sent something the Hub refused (SEO rules, slug format, missing fields).

  1. Read Issues.
  2. Fix in SEO Command Center / the content source (slug kebab-case, add seoTitle, etc.).
  3. Re-send / re-intake — there is no “force publish” button.
  4. Escalate to Matt if Issues mention tokens, storage, or LinkedIn OAuth.
↑ Contents

Manual fallback packages

Manual fallback packages empty table
Manual fallback packages

LinkedIn (or other) content the Hub will not auto-publish — e.g. company posts until LinkedIn Community Management is approved, or carousels. Follow the package notes or Carousel brief; post manually; then on Publish → Awaiting approval click Complete so SEOCC can mark the calendar row live.

↑ Contents

Publish blog draft

Same field layout as New post in Blog admin. Approve in SEOCC is the normal path. Use Load latest SEOCC blog to review marketing copy (claim IDs and Provenance are stripped). Output type and Topics are checked from SEOCC when present. Featured image is one of Matt’s three founder portraits. See draft shows the public-post layout; the same button becomes Edit draft to return to the form. All six controls sit in one row under the heading: Post form, See draft, Load latest SEOCC blog, Publish to Blog, Clear form, Delete draft. Clear form empties the fields only; it does not change www. If the slug already exists on the Blog, Publish to Blog updates that post. Gray hint text in empty fields is not a draft; the banner above the form says when a Hub item is actually loaded. Delete draft asks why and tells SEOCC Calendar the piece was not posted; Create keeps the article so you can edit and Publish again. FAQ, video, and PDF stay empty until Blog admin.

Durable automation: SEOCC Approve → POST /webhooks/geo/content. The old AirOps webhook path remains for compatibility only.

↑ Contents

Analytics

Use channel / days filters and Load summary to refresh the metrics table. Many LinkedIn numbers stay estimated until LinkedIn analytics APIs unlock.

↑ Contents

Notification preferences

Notification preferences, notifications, and audit trail
Settings, notifications, and audit
Field Meaning
Timezone Quiet hours clock
Min severity info / warning / error — lower severities may be hidden
Quiet hours Suppress info/warning overnight; errors still show
Event allowlist Empty = all; e.g. publish.* only publish events
Email recipients Comma-separated emails
Save preferences Persist settings
↑ Contents

Recent notifications

Live alert feed (publish.success, publish.verification_failed, etc.). Check Include suppressed only when debugging quiet-hours filtering.

↑ Contents

Audit trail

Log of Hub actions (who / what / when). Filter by action, actor, object, or dates. Use Export audit or Export filtered for a ticket — keep the file private; never include secrets.

↑ Contents

Daily checklist for helpers

  1. Open Hub → confirm Connections are CONNECTED.
  2. Clear Pending approval (or escalate).
  3. Read Validation failed Issues; fix upstream or escalate.
  4. Glance Queue for unexpected FAILED / verification_failed.
  5. If building a LinkedIn carousel: use Carousel brief.
  6. Stop and ask Matt before: changing LinkedIn connection, exporting secrets, deleting live posts, or production publishes.

Status words (cheat sheet)

Status Plain English
published Live (or dry-run success recorded)
completed Posted by hand (LinkedIn carousel, later YouTube) — not an API publish
scheduled Waiting for publish time / queue
pending_approval Needs human Approve
validation_failed Intake rejected — fix content
verification_failed Publish attempted; post-check failed
failed / retry_scheduled Error path — escalate if stuck