Skip to main content

Social Media Freigabe (Outstand)

Fanpage Karma wird durch CockpitOS Freigabe + Outstand Publish ersetzt.

Rollen

Freigabe: Center Manager, Org-Marketing, Center-Admin, Super-Admin (über API geprüft).

Center Manager

  • Landing: /dashboard/center-manager — KPIs, Freigabe-Kurzliste, Schnellfreigabe (Feed mit ≤1 Medium)
  • Social Hub: Sidebar Social Cockpit — alles gebündelt (siehe unten)

Social Cockpit (Modul social-cockpit)

Alles an einem Ort unter Social Cockpit in der Sidebar (eigenes Modul, wie Mall Cockpit):

MenüPfadFunktion
Übersicht/dashboard/socialHub mit Kacheln zu allen Bereichen
Kanäle verknüpfen/dashboard/settings/social-accountsOutstand-Profile pro Center
Post erstellen/dashboard/social/newPost anlegen
Freigaben/dashboard/social/approvalsSocial-Freigaben (4 Status-Spalten)
Engage/dashboard/social/engageLikes & Kommentare pro Cockpit-Post (Outstand Analytics + Replies), Antworten schreiben
Reporting & Analytics/dashboard/social/reportingMetriken & Follower

Engage: Pro veröffentlichtem Post werden Likes, Kommentar- und Share-Zähler über Outstand Analytics geladen; Kommentartexte über die Replies-API. Outstand nutzt dabei die veröffentlichten Kanäle aus dem Post-Detail (wichtig für Facebook-Seiten ohne @username — Seitenname/nickname). Nur Posts, die über Cockpit/Outstand veröffentlicht wurden. Metriken können bei frischen Posts kurz verzögert sein — Aktualisieren klicken.

Outstand-Datenfluss: Publish → Outstand (/v1/posts/ + Media-Confirm) → Outstand sync schreibt Account- & Post-Metriken in die DB → Reporting, Engage und Dashboard-Home lesen daraus (Follower-Zuwachs, Monats-Reichweite, Interaktionen, Top-Post).

Reporting & Plattform-Hinweise

  • Reporting: /dashboard/social/reporting — Kern-KPIs oben:
    • Follower & Zuwachs (Summe aller verknüpften Kanäle, Delta zwischen erstem und letztem Snapshot im Sync-Zeitraum)
    • Reichweite (Summe Reach aller Posts im laufenden Kalendermonat; Fallback Impressions wenn Reach fehlt)
    • Top-Post des Monats (stärkster Post im Kalendermonat nach Reach → Impressions → Interaktionen)
    • Interaktionen (eigene Karte): Likes, Kommentare und Geteilt als Monatssumme über alle synchronisierten Posts; in der Post-Liste pro Eintrag dieselben Werte im Detail
  • Dashboard-Home: Zeigt neben Reichweite auch die Monats-Interaktionen (Likes · Kommentare · Geteilt) mit Link zum Reporting
  • Outstand sync lädt frische Metriken von Outstand in die DB — ohne Sync bleiben KPIs leer oder veraltet
  • Bluesky: Outstand liefert derzeit eingeschränkte Metriken und Kommentare
  • Detail-Freigabe: Story/Karussell/Reel immer im Workflow prüfen

Workflow

Social-Posts haben eine eigene Freigabe-Ansicht unter /dashboard/social/approvals (nicht mehr in der Website-Workflow-Liste vermischt).

Vier Bereiche:

  • Zur Freigabein_review, wartet auf Center/Marketing
  • Überarbeitung — abgelehnt, mit Grund; Button Erneut zur Freigabe
  • Entwürfe — noch nicht eingereicht
  • Live & geplant — veröffentlicht oder terminiert

Pro Karte: Vorschaubild, Editor, Freigabe-Link, Freigeben / Ablehnen (für berechtigte Rollen).

Website-Freigaben bleiben unter /dashboard/workflow.

Im Content Planner (/dashboard/content/planner) erscheinen Social-Posts am geplanten Termin (scheduledAt) bzw. Veröffentlichungsdatum — Filter-Chip Social.

  • Neu anlegen: Sidebar Social Cockpit → Post erstellen oder /dashboard/social/new
  • Bearbeiten: In der Workflow-Liste Editor oder /dashboard/social/[draftId]
  • Editor (/dashboard/social/new): zweispaltiges Layout (volle Seitenbreite) — Center für diesen Post unabhängig vom Header-Switcher wählen
    • Organisation filtern → Alle wählen oder einzelne Center per Checkbox ab-/auswählen
    • Kanäle beziehen sich nur auf die im Editor gewählten Center; fehlende Outstand-Profile werden pro Center mit Link zum Reiter Social Media genannt
    • Veröffentlichen (für Freigabe-Rollen direkt an Outstand), Zur Freigabe, Entwurf
  • KI Caption: Stichworte eingeben → Button Caption — Text orientiert sich an den im Editor gewählten Centern (Name, Stadt, Beschreibung); ohne Center-Auswahl bleibt der Text bewusst allgemein (System-Prompt socialCaptionGenerator)
  • KI Bild: FAL AI (FAL_API_KEY) — Button Bild (FAL); optional eigene Bildidee
  • Medien: Mediathek + Upload; Mini-Vorschau inline
  • Termin & Format (aufklappbar): Post-Typ, geplante Veröffentlichung
  • Aus Dispatch: E-Mail → Entwurf → Tab Social Media

Nach Freigabe: Outstand POST /v1/posts/ — Medien werden als containers[].media mit { url, filename } übergeben (öffentliche CDN-URL aus dem Entwurf). Outstand lädt das Bild selbst; der frühere mediaIds-Pfad reichte für die API nicht aus und führte zu Text-only-Posts. Scheduling optional. Fehlgeschlagene Publish-Versuche (status: failed) können erneut freigegeben werden.

Hinweis: Caption-Änderungen im Workflow speichern die vorhandenen Medien im Entwurf (kein versehentliches Entfernen beim PATCH ohne containers).

Für Center Manager / Marketing, die kein Cockpit-Konto haben:

  1. Workflow & Freigaben → Social-Post in Prüfung → Button Freigabe-Link (neben Editor / Kundenkontakt)
  2. Link wird erzeugt und in die Zwischenablage kopiert — Format: /freigabe/social/[token]
  3. Empfänger öffnet die gebrandete Vorschauseite (Center-Logo, Farben) und kann freigeben oder ablehnen
  4. Link ist 30 Tage gültig; bei Ablauf im Workflow einen neuen Link erzeugen
  5. Rückmeldung an die Redaktion: Der Ersteller (createdBy) erhält E-Mail (Resend) und eine Benachrichtigung in der Glocke (Header) — mit Ablehnungsgrund bzw. Freigabe-Hinweis und Link zum Post/Workflow. Sichtbar auch im Social-Editor und unter Workflow → Erledigt.

Hinweis: Kundenkontakt ist kein Freigabe-Link — dort generiert die KI nur einen E-Mail-Textvorschlag für Mieter/Kunden.

Technisch:

  • POST /api/social/drafts/[draftId]/review-link — Link erzeugen (Session)
  • GET/POST /api/social/review/[token] — Vorschau / Freigabe / Ablehnung (öffentlich, tokenbasiert)
  • GET/PUT /api/notifications — Cockpit-Glocke (persistente Benachrichtigungen pro Nutzer)

Benachrichtigungen (Glocke)

Die Glocke in der oberen Leiste zeigt ungelesene Workflow-Hinweise (z. B. Social-Freigabe über externen Link). Vollständige Liste: Benachrichtigungen (/dashboard/notifications). Technisch: Tabelle dashboard_notifications — Migration 20260521180000_add_dashboard_notifications_SAFE.sql.

Verlauf (Timeline)

Unter Social-Freigaben (Karte aufklappen) und im Social-Editor (Seitenleiste) erscheint der Verlauf pro Post: Erstellung, Freigabe-Link, Einreichung, Freigabe/Ablehnung, Veröffentlichung. Technisch: Tabelle social_post_draft_events — Migration 20260521190000_add_social_draft_events_SAFE.sql, API GET /api/social/drafts/[draftId]/events.

Im Dashboard (für Redaktion):

  1. Empfohlen: Shopping Center öffnen → Center wählen → Reiter Social Media
    (/dashboard/content/centers/[centerId]?tab=social)
  2. Alternativ: Sidebar Organisation & Center → Social Media Profile
    (/dashboard/settings/social-accounts) — dort Center wählen und Profile verknüpfen

Pro Center Outstand-Profile (Facebook, Instagram, …) zuordnen. Beim Anlegen von Social-Entwürfen werden verknüpfte Profile vorausgewählt.

Technisch: Tabelle center_social_accounts, APIs:

  • GET/PUT/DELETE /api/social/center-accounts
  • GET /api/social/outstand-accounts — verbundene Outstand-Konten

Ohne Mapping werden beim Anlegen keine Accounts vorausgewählt.

Env

  • OUTSTAND_API_KEY — org-weit (Render Dashboard-Service)
  • FAL_API_KEY — Bildgenerierung im Social-Editor (FAL / flux-schnell)
  • OpenAI (oder konfigurierter Provider) — Caption-KI über bestehende AI-Einstellungen

Migration

Additive Tabellen: 20260521160000_add_social_outstand_SAFE.sql

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