> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Social-Media-Posting mit Make automatisieren

> Erstelle und plane Beiträge in Social media studio aus Make-Szenarien mit dem HTTP-Modul und starte Szenarien über signierte Webhooks.

Es gibt bisher **keine native Social-media-studio-App in Make** (früher Integromat). Die integrierten Module von Make decken beide Richtungen ab:

* **Make → Social media studio:** Das Modul **HTTP → Make a request** ruft die REST API auf, um einen Beitrag zu erstellen oder zu planen.
* **Social media studio → Make:** Der Trigger **Webhooks → Custom webhook** empfängt die Ereignisse, die Social media studio sendet (Beitrag veröffentlicht, Beitrag fehlgeschlagen, neuer Kommentar und mehr).

> [!NOTE]
>
> Die REST API benötigt einen **Standard**-, **Advanced**- oder **Lifetime**-Tarif (Lite enthält sie nicht). Wie viele Webhook-Endpunkte du anlegen kannst, hängt von deinem Tarif ab; siehe [Webhooks-Übersicht](/de/webhooks/overview.md).

## Bevor du startest

**1. API-Schlüssel erstellen**

Öffne in Social media studio **Einstellungen → API** ([app.so-me.studio/settings?tab=api](https://app.so-me.studio/settings?tab=api)) und erstelle einen Schlüssel. Er beginnt mit `sk_live_` und wird nur einmal angezeigt. Siehe [Authentifizierung](/de/authentication.md).

**2. Konto-IDs ermitteln (optional)**

Wenn du mehr als ein Konto derselben Plattform verbunden hast, muss jeder Beitrag angeben, welches verwendet werden soll. Liste deine Konten einmal auf und notiere dir die `id` jedes Kontos:

```bash theme={null}
curl https://api.so-me.studio/v1/accounts \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"
```

Bei genau einem Konto pro Plattform kannst du `accountId` weglassen.

## Einen Beitrag aus einem Szenario erstellen oder planen

**1. Den Body mit einem JSON-Modul bauen**

Füge **JSON → Create JSON** hinzu. Definiere eine Datenstruktur mit den Feldern unten und ordne Werte aus vorherigen Modulen zu. Make maskiert Anführungszeichen und Zeilenumbrüche für dich, was ein von Hand getippter JSON-Body nicht tut.

**2. Mit dem HTTP-Modul senden**

Füge **HTTP → Make a request** hinzu:

| Einstellung | Wert |
| - | - |
| URL | `https://api.so-me.studio/v1/posts` |
| Method | `POST` |
| Headers | `X-API-Key` → dein `sk_live_...`-Schlüssel |
| Body type | Raw |
| Content type | JSON (`application/json`) |
| Request content | Die Ausgabe **JSON string** von Create JSON |
| Parse response | Yes |

| Body-Feld | Erforderlich | Wert |
| - | - | - |
| `text` | Ja | Der Beitragstext. |
| `socialMedia` | Ja | Eine Plattform pro Anfrage: `TWITTER`, `LINKEDIN`, `LINKEDIN_PAGE`, `FACEBOOK`, `INSTAGRAM`, `THREADS`, `TIKTOK`, `YOUTUBE`, `PINTEREST`, `BLUESKY`, `MASTODON`, `REDDIT`, `GOOGLE_MY_BUSINESS`, `WORDPRESS`, `DEV_TO`, `DRIBBBLE`, `DISCORD` oder `SLACK`. Auf `WHATSAPP` und `TELEGRAM` kann nicht veröffentlicht werden. |
| `postType` | Ja | `TEXT`, `IMAGE`, `MULTIPLE_IMAGES`, `VIDEO`, `CAROUSEL`, `REEL` oder `STORY`. |
| `scheduledAt` | Nein | Zeitangabe nach ISO 8601, zum Beispiel `2026-11-02T09:00:00Z`. Lässt du sie weg, wird sofort veröffentlicht. In Make erzeugt `{{formatDate(myDate; "YYYY-MM-DDTHH:mm:ssZ")}}` dieses Format. |
| `accountId` | Bei Bedarf | Die Konto-`id` aus `GET /v1/accounts`. Erforderlich, wenn auf dieser Plattform mehr als ein Konto verbunden ist; andernfalls antwortet die API mit `400` und der Liste zur Auswahl. |
| `firstComment` | Nein | Ein Kommentar, der direkt nach der Veröffentlichung unter den Beitrag gepostet wird (Facebook, Instagram, X, LinkedIn, LinkedIn Page, Threads, YouTube). |
| `fileIds` | Nein | Ein Array von Mediathek-Datei-IDs. Lade Medien zuerst in Social media studio hoch oder lies den [Schnellstart](/de/quickstart.md#upload-media) für vorsignierte Uploads. |
| `threadParts` | Nein | Ein Array von `{ "text": "..." }`-Objekten, die auf den Kopfbeitrag folgen (X, Threads, Bluesky, Mastodon). |
| `tiktok` | Für TikTok | Mindestens `{ "privacyLevel": "PUBLIC_TO_EVERYONE" }`; TikTok lehnt einen Beitrag ohne Datenschutzstufe ab. |

Der Body, den das HTTP-Modul sendet, sieht so aus:

```json theme={null}
{
  "text": "New on the blog: how we plan a month of posts in an afternoon",
  "socialMedia": "LINKEDIN",
  "postType": "TEXT",
  "scheduledAt": "2026-11-02T09:00:00Z"
}
```

Ein erfolgreicher Aufruf liefert `201` mit dem Beitrag zurück, einschließlich seiner `id` und `postStatus: "SCHEDULED"`. Um auf mehreren Plattformen zu veröffentlichen, nutze ein HTTP-Modul pro Plattform oder einen **Iterator** über eine Liste von Plattformen.

> **Fehler**
>
> | Status | Bedeutung |
> | - | - |
> | `400` | Ein Feld ist ungültig, oder `accountId` fehlt, obwohl mehrere Konten auf dieser Plattform verbunden sind. Die Meldung benennt das Problem. |
> | `401` | Der API-Schlüssel fehlt, ist falsch oder wurde widerrufen. |
> | `403` | Dein Tarif enthält die REST API nicht, oder ein Tariflimit wurde erreicht. |
> | `429` | Rate Limit erreicht. Das Limit gilt pro Workspace und hängt von deinem Tarif ab. |
>
> Füge dem HTTP-Modul eine Error-Handler-Route hinzu, wenn ein Szenario nach einem fehlgeschlagenen Beitrag weiterlaufen soll.

## Ein Szenario durch ein Ereignis aus Social media studio starten

**1. Webhook in Make erstellen**

Starte das Szenario mit **Webhooks → Custom webhook**, klicke auf **Add** und kopiere die Adresse, die Make dir gibt.

**2. Diese Adresse in Social media studio abonnieren**

Öffne **Einstellungen → Webhooks** ([app.so-me.studio/settings?tab=webhooks](https://app.so-me.studio/settings?tab=webhooks)), füge einen Endpunkt mit der Make-Adresse hinzu und wähle die Ereignisse aus. Oder lege ihn über die API an:

```bash theme={null}
curl -X POST https://api.so-me.studio/v1/webhooks/subscriptions \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://hook.eu2.make.com/your-webhook-id",
    "categories": ["post"],
    "events": ["post.published", "post.failed"],
    "description": "Make"
  }'
```

Die Antwort enthält das Signatur-`secret` des Abonnements.

**3. Make die Struktur lernen lassen**

Klicke, während das Custom-webhook-Modul lauscht (**Run once**), unter Einstellungen → Webhooks beim Abonnement auf **Testereignis senden**. Make zeichnet die Felder der Beispiel-Zustellung auf.

Jede Zustellung ist ein JSON-`POST` mit diesem Umschlag:

```json theme={null}
{
  "event": "post.published",
  "category": "post",
  "timestamp": "2026-11-02T09:00:04.000Z",
  "data": { "postId": "6f1c2a9e-...", "platform": "LINKEDIN" }
}
```

Nutze einen **Filter** auf `event`, wenn ein Webhook mehrere Ereignistypen empfängt. Der Block `data` enthält IDs statt des vollständigen Inhalts; für einen Beitrag fügst du ein HTTP-Modul mit `GET https://api.so-me.studio/v1/posts/{{data.postId}}` und dem Header `X-API-Key` hinzu, um seinen Text, den Live-Link (`shareUrl`) oder den `failureReason` zu lesen.

Nützliche Ereignisse sind unter anderem `post.published`, `post.failed`, `post.scheduled`, `inbox.message_received`, `inbox.comment_received`, `social.account_disconnected` und `quota.limit_reached`. Die vollständige Liste findest du in der [Webhooks-Übersicht](/de/webhooks/overview.md), Beispiel-Payloads im [Payload-Format](/de/webhooks/payloads.md).

> [!WARNING]
>
> Jede Zustellung trägt einen `X-Webhook-Signature`-Header: ein hexadezimaler HMAC-SHA256 des rohen Bodys, mit dem Secret des Abonnements als Schlüssel. Das Custom-webhook-Modul prüft ihn nicht, behandle die Make-Adresse daher wie ein Geheimnis. Zum Verifizieren aktivierst du die Optionen **Get request headers** und **JSON pass-through** des Webhooks, damit das Szenario den Header und den unverarbeiteten Body erhält, und vergleichst dann einen HMAC-SHA256 dieses Bodys mit dem Header. Die Funktion `sha256()` von Make akzeptiert einen HMAC-Schlüssel; die Reihenfolge der Argumente findest du in der Funktionsreferenz von Make. Details: [Signaturprüfung](/de/webhooks/payloads.md#signature-verification).

Social media studio wartet 10 Sekunden auf eine Antwort und wiederholt eine fehlgeschlagene Zustellung bis zu 4-mal. Ein Abonnement, das 10-mal in Folge fehlschlägt, wird deaktiviert; aktiviere es unter Einstellungen → Webhooks wieder.

## Weitere Tools

* [n8n](/de/integrations/n8n.md) hat einen Community-Node und fertige Workflow-Vorlagen.
* [Zapier](/de/integrations/zapier.md) funktioniert genauso, mit Webhooks by Zapier.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.