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
| Bereich | Cockpit-Menü | Technik dahinter (unsichtbar für Redaktion) |
|---|---|---|
| Post erstellen, planen, freigeben | Social → Neuer Post / Freigaben | Outstand |
| Kommentare lesen & antworten | Social → Community & Antworten | Outstand + Zernio Inbox; alle Kanal-Posts (nicht nur Cockpit) |
| Instagram-Nachrichten | Community → Instagram-Nachrichten | Outstand Conversations API |
| Kommentar liken / verbergen | Dieselbe Engage-Ansicht (wenn aktiv) | Verbergen: Outstand (Instagram/Threads) oder Zernio; Liken: Zernio Inbox |
| Werbe-KPIs (Meta/Google) | Social → Performance oder Analytics → Kunden-Reporting | Zernio 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.
| Ebene | Was | Pro Center |
|---|---|---|
| Posten & Freigabe | Kanäle-Anmeldung (Outstand) | Ja — jedes Center eigene Fanpage |
| Community & native Posts | Inbox-Profil (Zernio organic) | Ja — eine Zeile pro Kanal in center_social_accounts |
| Werbe-KPIs & Historie | Zernio Ads | Ja — 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
| Rolle | Auswirkung |
|---|---|
| Redaktion | Social Cockpit wie gewohnt; Liken/Verbergen erscheint nur wenn Kanal verknüpft |
| Center-Betrieb | Kunden-Reporting mit Zernio-Ads nach Auto-Link |
| Dev / Betrieb | Env 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)
| Capability | Provider | Voraussetzung |
|---|---|---|
publish | Outstand | OUTSTAND_API_KEY, Center-Kanäle gemappt |
readComments | Outstand + Zernio Inbox | wie oben; Inbox ergänzt bei zernioAccountId (Dedupe) |
reply | Outstand oder Zernio Inbox | je nach commentSource des Kommentars |
likeComment | Zernio Inbox | ZERNIO_API_KEY + zernioAccountId auf center_social_accounts |
hideComment | Outstand (Instagram/Threads) oder Zernio | Outstand-Post-ID; bei Facebook bzw. Fallback Inbox |
deleteComment | Outstand | Instagram/Threads, Posts die Outstand kennt |
| Meta/Google Ads KPIs | Zernio | center_ads_accounts + optional campaignFilter |
Die API liefert engageCapabilities an die Engage-Ansicht — abgeleitet aus der Social Capability Registry.
Fanpage Karma — Ablösungs-Checkliste
| Schritt | Status |
|---|---|
| Posts aus Cockpit (nicht Karma) | Erledigt |
| Freigabe-Workflow im Cockpit | Erledigt |
| Kommentare lesen / antworten | Erledigt (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-Verbergen | Pilot (Zernio, nach Kanal-Mapping) |
| Werbe-Reporting | Erledigt (Zernio + Auto-Link) |
| Posting / Planung / Cockpit-Entwürfe | Outstand (Zernio schließt das nicht ab) |
| Historische / native Kanal-Posts | Zernio Inbox — Outstand importiert sie nicht (Stand Sept. 2026) |
| Organische Post-Metriken / Follower | Outstand-Sync (Zernio Ads ≠ organische KPIs) |
| Kommentar löschen (IG/Threads) | Outstand only |
| Karma-Zugang nur noch Lesen / Übergang | Center-spezifisch |
So testen
- Migration (Production einmalig):
psql "$DATABASE_URL" -f packages/database/migrations/20260708160000_add_center_social_zernio_account_SAFE.sql
- 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-runcd apps/dashboard && pnpm exec tsx scripts/auto-link-zernio-ads.ts - Center wählen → Community & Antworten → Post mit Kommentar öffnen.
- Nur Outstand-Posts sichtbar? Gelbes Banner in Community & Antworten → Inbox verknüpfen (Super-Admin). Oder Center → Social Media → Inbox manuell zuordnen (Kanal wählen, Profil aus Liste). Native Posts (Karma/Facebook direkt) kommen über Zernio Inbox (
zernioAccountIdaufcenter_social_accounts). - Wenn
zernioEngageChannels > 0: Liken/Verbergen testen (Facebook/Instagram). - 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:
- In Zernio prüfen, ob die richtige Fanpage verknüpft ist (nicht ein Test-Kanal wie „SMG Kanäle Test“).
- In der Meta-App (Zernio-Integration) die Berechtigung
pages_read_user_contentbzw. Page Public Content Access beantragen/freischalten. - 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
| Env | Zweck |
|---|---|
OUTSTAND_API_KEY | Posting, Freigabe, Kommentar-Antworten |
ZERNIO_API_KEY | Ads-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
- Social-Media-Freigabe
- Client-Reporting / Zernio
- Developer:
apps/dashboard/src/lib/integration/social-provider.ts
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /dashboard/social-unter-cockpit