Skip to main content

Social unter einem Cockpit-Dach

Redaktion und Center-Betrieb sollen eine Oberfläche nutzen — Posting, Freigabe, Community und Werbe-KPIs — ohne zwischen Fanpage Karma, Outstand und Zernio wechseln zu müssen.

Was

BereichCockpit-MenüTechnik dahinter (unsichtbar für Redaktion)
Post erstellen, planen, freigebenSocial → Neuer Post / FreigabenOutstand
Kommentare lesen & antwortenSocial → Community & AntwortenOutstand + Zernio Inbox; alle Kanal-Posts (nicht nur Cockpit)
Instagram-NachrichtenCommunity → Instagram-NachrichtenOutstand Conversations API
Kommentar liken / verbergenDieselbe Engage-Ansicht (wenn aktiv)Verbergen: Outstand (Instagram/Threads) oder Zernio; Liken: Zernio Inbox
Werbe-KPIs (Meta/Google)Social → Performance oder Analytics → Kunden-ReportingZernio Ads — Performance zeigt Paid + Organic; CM-Report bleibt für Gesamtbericht

Fanpage Karma ist auf dem Hauptpfad ersetzt (Post → Freigabe → Live). Offene Lücke: Liken und Facebook-Verbergen brauchen weiter Zernio; fremde Posts (nicht über Outstand) ebenfalls. Stand September 2026 kann Outstand keine historischen/nativen Kanal-Posts importieren — GET /v1/posts und Kommentare gelten nur für über Outstand veröffentlichte Beiträge. Zernio Inbox bleibt dafür nötig.

Warum

  • Eine Sprache nach außen: Keine Vendor-Namen in der UI.
  • Best-of-breed: Outstand für Publishing/Freigabe (stabil im Cockpit), Zernio wo es stärker ist (Ads, Inbox-Moderation).
  • Skalierung: Viele Center, teils gemeinsame Werbekonten (Portfolio-Filter), organische Kanäle pro Center.

Eine Facebook-Anmeldung, viele Center

In der Inbox-Verwaltung (Zernio „Manage Pages“ / Connections) hängen unter einer Meta-Anmeldung oft dutzende Fanpages. Das Cockpit ordnet pro Center genau eine passende Seite zu — nicht die ganze Liste auf einmal.

EbeneWasPro Center
Posten & FreigabeKanäle-Anmeldung (Outstand)Ja — jedes Center eigene Fanpage
Community & native PostsInbox-Profil (Zernio organic)Ja — eine Zeile pro Kanal in center_social_accounts
Werbe-KPIs & HistorieZernio AdsJa — optional gemeinsames Werbekonto mit campaignFilter

Auto-Link sucht anhand von Name/Handle die passende Inbox-Zeile. Manuell: Center → Social Media → Erweitert → Community-Inbox (Liste = Organisationsprofile, Hinweis wenn schon einem anderen Center zugeordnet).

Rollout: Historische Kennzahlen und Ads-Profile werden schrittweise freigeschaltet (Betrieb/IT).

Wer ist betroffen

RolleAuswirkung
RedaktionSocial Cockpit wie gewohnt; Liken/Verbergen erscheint nur wenn Kanal verknüpft
Center-BetriebKunden-Reporting mit Zernio-Ads nach Auto-Link
Dev / BetriebEnv OUTSTAND_API_KEY, ZERNIO_API_KEY; Migration + Auto-Link nach Deploy

Wo

  • Posting & Freigabe: Dashboard → Social → Neuer Post / Freigaben — siehe Social-Media-Freigabe
  • Community: Dashboard → Social → Community & Antworten (/dashboard/social/engage)
  • Werbung: Analytics → Kunden-Reporting → Datenquellen — siehe Client-Reporting
  • Auto-Link (Super Admin): POST /api/integrations/zernio/auto-link — Ads und organische Kanäle. Im Dashboard: Community & Antworten (gelber Hinweis → „Inbox verknüpfen“) oder Kunden-Reporting → Datenquellen (Abschnitt „Zernio-Verknüpfung“).
  • Zentrale Verwaltung: Einstellungen → Social-Kanäle — organische Kanäle (Posten, Community, Kanal-Inbox) und Werbekonten (Meta/Google Ads) in einer Oberfläche; Center-Reiter Social Media nutzt dieselbe Komponente.
  • MCP / Agenten: Entwürfe listen, Freigabe/Ablehnung, Community lesen, Performance-Kurzüberblick — siehe Claude & MCP. Post erstellen, Antworten und Kanal-OAuth bleiben im Dashboard.

Provider-Matrix (Zielbild)

CapabilityProviderVoraussetzung
publishOutstandOUTSTAND_API_KEY, Center-Kanäle gemappt
readCommentsOutstand + Zernio Inboxwie oben; Inbox ergänzt bei zernioAccountId (Dedupe)
replyOutstand oder Zernio Inboxje nach commentSource des Kommentars
likeCommentZernio InboxZERNIO_API_KEY + zernioAccountId auf center_social_accounts
hideCommentOutstand (Instagram/Threads) oder ZernioOutstand-Post-ID; bei Facebook bzw. Fallback Inbox
deleteCommentOutstandInstagram/Threads, Posts die Outstand kennt
Meta/Google Ads KPIsZerniocenter_ads_accounts + optional campaignFilter

Die API liefert engageCapabilities an die Engage-Ansicht — abgeleitet aus der Social Capability Registry.

Fanpage Karma — Ablösungs-Checkliste

SchrittStatus
Posts aus Cockpit (nicht Karma)Erledigt
Freigabe-Workflow im CockpitErledigt
Kommentare lesen / antwortenErledigt (Outstand + Zernio Inbox)
Kanal-Inbox (Posts ohne Cockpit, Badge „Kanal“)Erledigt
Kommentar verbergen (Instagram/Threads, Cockpit-Posts)Erledigt (Outstand, Jul 2026)
Kommentar löschen (Instagram/Threads)Erledigt (Outstand)
Kommentar liken / Facebook-VerbergenPilot (Zernio, nach Kanal-Mapping)
Werbe-ReportingErledigt (Zernio + Auto-Link)
Posting / Planung / Cockpit-EntwürfeOutstand (Zernio schließt das nicht ab)
Historische / native Kanal-PostsZernio Inbox — Outstand importiert sie nicht (Stand Sept. 2026)
Organische Post-Metriken / FollowerOutstand-Sync (Zernio Ads ≠ organische KPIs)
Kommentar löschen (IG/Threads)Outstand only
Karma-Zugang nur noch Lesen / ÜbergangCenter-spezifisch

So testen

  1. Migration (Production einmalig):
    psql "$DATABASE_URL" -f packages/database/migrations/20260708160000_add_center_social_zernio_account_SAFE.sql
  2. Auto-Link (Ads + Social) — Super-Admin im Dashboard:
    • Community & Antworten: gelber Hinweis → Zernio verknüpfen (nur aktuelles Center)
    • Kunden-Reporting → Datenquellen: Abschnitt Zernio-Verknüpfung (Center oder alle Center; optional Test = Dry-Run)
    • Alternativ API/Script:
    cd apps/dashboard && pnpm exec tsx scripts/auto-link-zernio-ads.ts --dry-run
    cd apps/dashboard && pnpm exec tsx scripts/auto-link-zernio-ads.ts
  3. Center wählen → Community & Antworten → Post mit Kommentar öffnen.
  4. Nur Outstand-Posts sichtbar? Gelbes Banner in Community & AntwortenInbox verknüpfen (Super-Admin). Oder Center → Social MediaInbox manuell zuordnen (Kanal wählen, Profil aus Liste). Native Posts (Karma/Facebook direkt) kommen über Zernio Inbox (zernioAccountId auf center_social_accounts).
  5. Wenn zernioEngageChannels > 0: Liken/Verbergen testen (Facebook/Instagram).
  6. Kunden-Reporting: Zeitraum wählen, Meta/Google-KPIs prüfen.

Facebook (#10) pages_read_user_content

Wenn im Kurz-Hinweis eine Meta-Fehlermeldung zu pages_read_user_content erscheint:

  1. In Zernio prüfen, ob die richtige Fanpage verknüpft ist (nicht ein Test-Kanal wie „SMG Kanäle Test“).
  2. In der Meta-App (Zernio-Integration) die Berechtigung pages_read_user_content bzw. Page Public Content Access beantragen/freischalten.
  3. Nach Freigabe in Zernio erneut verbinden und Zernio verknüpfen im Cockpit ausführen.

Outstand-Posts und bereits synchronisierte Zernio-Posts können trotzdem sichtbar bleiben — nur Live-Sync/Lesen externer Inhalte scheitert bis die Berechtigung da ist.

Externe Posts (Kanal-Inbox)

Nach Kanal verbinden, Einrichtung abschließen oder Inbox manuell zuordnen startet Cockpit automatisch einen Zernio-Sync (POST /posts/sync-external). Zusätzlich läuft täglich der Cron Zernio Inbox External Posts Sync (5:45 UTC) — siehe CRON-SETUP.

Manuell (Session): POST /api/social/center-accounts/sync-external-posts mit { "centerId": "…" }.

Organische KPIs (Zernio Analytics)

Wenn Outstand-Snapshots im gewählten Zeitraum fehlen, aber Zernio Analytics Add-on aktiv ist (hasAnalyticsAccess), ergänzt Cockpit KPIs live aus Zernio /analytics (nur gemappte Inbox-Konten). Fehlt das Add-on, erscheint ein Hinweis auf der Performance-Seite.

Betrieb

EnvZweck
OUTSTAND_API_KEYPosting, Freigabe, Kommentar-Antworten
ZERNIO_API_KEYAds-Tree, Inbox (Like/Hide), Auto-Link

Nach Schema-Änderung: Migration ausführen, Dashboard neu deployen, Auto-Link erneut laufen lassen.

Instagram neu verbinden: Seit August 2026 holt Outstand bei neuen Verbindungen instagram_business_manage_comments. Ältere Kanäle einmal im Center-Reiter Social Media → Neu verbinden. Im Cockpit: Prüfen, ob der Kanal gesund ist.

Siehe auch

Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/dashboard/social-unter-cockpit