Datenmodell
Organisationen, Profile, Konten, Posts, Targets und Medien – und wie sie zusammenhängen.
Organisation
Dein Team in FeedHorizon. Sie hat den Tarif, die Mitglieder, die API-Keys, die Webhooks und die Medienbibliothek. Alles, was du anlegst, gehört zu genau einer Organisation, und ein API-Key sieht immer nur seine eigene Organisation. GET /me zeigt, zu welcher Organisation ein Key gehört.
Profil
Eine Marke, ein Kunde oder ein Projekt innerhalb der Organisation. Konten, Posts und die Warteschlange gehören zu einem Profil, und jedes Profil hat seine eigene Zeitzone.
- Jede Organisation startet mit einem Standardprofil. Es lässt sich nicht löschen.
- Wenn du ein Produkt auf FeedHorizon aufbaust, leg ein Profil pro Kunde an und speichere deine Kunden-ID in
externalId.GET /profiles?externalId=…findet es wieder. - Ein API-Key lässt sich auf einige Profile beschränken. Er sieht dann nur deren Konten und Posts.
- Wenn du ein Profil löschst, werden seine Konten, Posts und seine Warteschlange mitgelöscht.
Konto
Ein verbundenes Social-Konto, zum Beispiel ein LinkedIn-Profil oder ein Instagram-Business-Konto. Du verbindest es im Dashboard unter Verbindungen, oder dein Kunde verbindet es über einen Connect-Link. Dasselbe Social-Konto kann mit mehreren Profilen verbunden sein.
status sagt dir, ob FeedHorizon damit posten kann:
| Status | Bedeutung |
|---|---|
active | Bereit zum Posten |
needs_reauth | Die Plattform hat die Verbindung beendet, zum Beispiel weil der Nutzer sie widerrufen hat oder sie abgelaufen ist. Posts an dieses Konto schlagen mit account_needs_reauth fehl, bis es neu verbunden ist. Der Webhook account.needs_reauth sagt dir Bescheid |
revoked | Reserviert für getrennte Konten. Heute wird ein Konto beim Trennen gelöscht, diesen Wert siehst du also noch nicht |
Wenn du ein Konto löschst, werden seine gespeicherten Tokens entfernt. Seine geplanten Posts auf diesem Konto werden mitgelöscht; schon veröffentlichte Posts bleiben auf der Plattform.
Connect-Link
Ein Link für eine Plattform und ein Profil, den du einem Kunden schickst. Er öffnet ihn, meldet sich bei der Plattform an, und das Konto landet in diesem Profil. Ein FeedHorizon-Login ist nicht nötig. Ein Link gilt 7 Tage und funktioniert einmal. Siehe Connect-Links.
Post
Was du veröffentlichen willst: Text, Medien und Zeitpunkt. Ein Post gehört zu einem Profil und geht an eines oder mehrere seiner Konten. Er ist ein Entwurf, für eine Zeit geplant, in der Warteschlange oder wird sofort veröffentlicht, siehe Planen.
Target
Der Post auf genau einem Konto, in targets[] des Posts. Jedes Target hat seine eigenen:
- Text, wenn dieses Konto einen anderen braucht (
targets[].content, zum Beispiel einen kürzeren Text für X), - Einstellungen für seine Plattform (
targets[].options, zum Beispiel das Pinterest-Board oder die TikTok-Sichtbarkeit), - Status und nach dem Veröffentlichen
platformPostIdundplatformUrl, - Fehler, wenn es fehlgeschlagen ist, mit Code, Kategorie und wer ihn beheben kann (siehe Publishing errors).
Der status des Posts fasst seine Targets zusammen: published, wenn alle geklappt haben, partially_failed, wenn einige geklappt haben, failed, wenn keins geklappt hat. Webhooks kommen pro Target (post.target.published, post.target.failed) und pro Post (post.published, post.partial, post.failed).
Medien
Ein Bild, Video oder PDF in der Medienbibliothek der Organisation. Lad es einmal hoch und nutz seine id dann in mediaIds von beliebig vielen Posts, in jedem Profil. Eine Datei, die ein Post noch nutzt, lässt sich nicht löschen. Siehe Medien hochladen.
Zeitfenster
Feste Zeiten pro Woche, zu denen ein Profil postet, etwa montags und donnerstags um 09:00 in der Zeitzone des Profils. Ein Post mit addToQueue: true nimmt das nächste freie Zeitfenster. Siehe The queue.
IDs
Jedes Objekt hat eine ID mit einem Präfix, das sagt, was es ist, etwa prof_, acc_, post_ oder tgt_. Die vollständige Liste steht in API basics.