> ## 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.

# Automatiser la publication sur les réseaux sociaux avec Make

> Créez et programmez des publications Social media studio depuis des scénarios Make avec le module HTTP, et déclenchez des scénarios depuis des webhooks signés.

Il n'existe **pas encore d'application Social media studio native sur Make** (anciennement Integromat). Les modules intégrés de Make couvrent les deux sens :

* **Make → Social media studio :** le module **HTTP → Make a request** appelle l'API REST pour créer ou programmer une publication.
* **Social media studio → Make :** le déclencheur **Webhooks → Custom webhook** reçoit les événements envoyés par Social media studio (publication publiée, publication en échec, nouveau commentaire, etc.).

> [!NOTE]
>
> L'API REST nécessite un forfait **Standard**, **Advanced** ou **Lifetime** (Lite ne l'inclut pas). Le nombre de points de terminaison webhook que vous pouvez créer dépend de votre forfait ; voir [Présentation des webhooks](/fr/webhooks/overview.md).

## Avant de commencer

**1. Créer une clé d'API**

Dans Social media studio, ouvrez **Paramètres → API** ([app.so-me.studio/settings?tab=api](https://app.so-me.studio/settings?tab=api)) et créez une clé. Elle commence par `sk_live_` et n'est affichée qu'une seule fois. Voir [Authentification](/fr/authentication.md).

**2. Trouver les identifiants de vos comptes (facultatif)**

Si vous avez connecté plusieurs comptes sur la même plateforme, chaque publication doit indiquer lequel utiliser. Listez vos comptes une fois et notez l'`id` de chacun :

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

Avec un seul compte sur une plateforme, vous pouvez omettre `accountId`.

## Créer ou programmer une publication depuis un scénario

**1. Construire le corps avec un module JSON**

Ajoutez **JSON → Create JSON**. Définissez une structure de données avec les champs ci-dessous et mappez les valeurs depuis les modules précédents. Make échappe les guillemets et les sauts de ligne pour vous, ce que ne fait pas un corps JSON saisi à la main.

**2. L'envoyer avec le module HTTP**

Ajoutez **HTTP → Make a request** :

| Paramètre | Valeur |
| - | - |
| URL | `https://api.so-me.studio/v1/posts` |
| Method | `POST` |
| Headers | `X-API-Key` → votre clé `sk_live_...` |
| Body type | Raw |
| Content type | JSON (`application/json`) |
| Request content | La sortie **JSON string** de Create JSON |
| Parse response | Yes |

| Champ du corps | Obligatoire | Valeur |
| - | - | - |
| `text` | Oui | Le texte de la publication. |
| `socialMedia` | Oui | Une plateforme par requête : `TWITTER`, `LINKEDIN`, `LINKEDIN_PAGE`, `FACEBOOK`, `INSTAGRAM`, `THREADS`, `TIKTOK`, `YOUTUBE`, `PINTEREST`, `BLUESKY`, `MASTODON`, `REDDIT`, `GOOGLE_MY_BUSINESS`, `WORDPRESS`, `DEV_TO`, `DRIBBBLE`, `DISCORD` ou `SLACK`. Il est impossible de publier sur `WHATSAPP` et `TELEGRAM`. |
| `postType` | Oui | `TEXT`, `IMAGE`, `MULTIPLE_IMAGES`, `VIDEO`, `CAROUSEL`, `REEL` ou `STORY`. |
| `scheduledAt` | Non | Heure au format ISO 8601, par exemple `2026-11-02T09:00:00Z`. Omettez-la pour publier immédiatement. Dans Make, `{{formatDate(myDate; "YYYY-MM-DDTHH:mm:ssZ")}}` produit ce format. |
| `accountId` | Si nécessaire | L'`id` du compte issu de `GET /v1/accounts`. Nécessaire lorsque plusieurs comptes sont connectés sur cette plateforme ; sinon l'API répond `400` avec la liste des comptes parmi lesquels choisir. |
| `firstComment` | Non | Un commentaire publié sous la publication juste après sa mise en ligne (Facebook, Instagram, X, LinkedIn, LinkedIn Page, Threads, YouTube). |
| `fileIds` | Non | Un tableau d'identifiants de fichiers de la bibliothèque de médias. Téléversez d'abord les médias dans Social media studio, ou consultez le [Démarrage rapide](/fr/quickstart.md#téléverser-des-médias) pour les téléversements présignés. |
| `threadParts` | Non | Un tableau d'objets `{ "text": "..." }` qui suivent la publication de tête (X, Threads, Bluesky, Mastodon). |
| `tiktok` | Pour TikTok | Au minimum `{ "privacyLevel": "PUBLIC_TO_EVERYONE" }` ; TikTok rejette une publication sans niveau de confidentialité. |

Le corps envoyé par le module HTTP ressemble à ceci :

```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"
}
```

Un appel réussi renvoie `201` avec la publication, dont son `id` et `postStatus: "SCHEDULED"`. Pour publier sur plusieurs plateformes, utilisez un module HTTP par plateforme, ou un **Iterator** sur une liste de plateformes.

> **Erreurs**
>
> | Statut | Signification |
> | - | - |
> | `400` | Un champ est invalide, ou `accountId` est manquant alors que plusieurs comptes sont connectés sur cette plateforme. Le message indique le problème. |
> | `401` | La clé d'API est absente, incorrecte ou révoquée. |
> | `403` | Votre forfait n'inclut pas l'API REST, ou une limite du forfait a été atteinte. |
> | `429` | Limite de débit atteinte. La limite s'applique par espace de travail et dépend de votre forfait. |
>
> Ajoutez une route de gestion d'erreurs au module HTTP si un scénario doit continuer après l'échec d'une publication.

## Déclencher un scénario depuis un événement Social media studio

**1. Créer le webhook dans Make**

Démarrez le scénario avec **Webhooks → Custom webhook**, cliquez sur **Add** et copiez l'adresse fournie par Make.

**2. Abonner cette adresse dans Social media studio**

Ouvrez **Paramètres → Webhooks** ([app.so-me.studio/settings?tab=webhooks](https://app.so-me.studio/settings?tab=webhooks)), ajoutez un point de terminaison avec l'adresse Make et choisissez les événements. Ou créez-le avec l'API :

```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"
  }'
```

La réponse inclut le `secret` de signature de l'abonnement.

**3. Laisser Make apprendre la structure**

Avec le module Custom webhook en écoute (**Run once**), cliquez sur **Test** sur l'abonnement dans Paramètres → Webhooks. Make enregistre les champs de la livraison d'exemple.

Chaque livraison est un `POST` JSON avec cette enveloppe :

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

Utilisez un **filtre** sur `event` lorsqu'un même webhook reçoit plusieurs types d'événements. Le bloc `data` contient des identifiants plutôt que le contenu complet ; pour une publication, ajoutez un module HTTP avec `GET https://api.so-me.studio/v1/posts/{{data.postId}}` et l'en-tête `X-API-Key` afin de lire son texte, son lien en ligne (`shareUrl`) ou son `failureReason`.

Parmi les événements utiles : `post.published`, `post.failed`, `post.scheduled`, `inbox.message_received`, `inbox.comment_received`, `social.account_disconnected` et `quota.limit_reached`. Voir [Présentation des webhooks](/fr/webhooks/overview.md) pour la liste complète et [Format des charges utiles](/fr/webhooks/payloads.md) pour des exemples de charges utiles.

> [!WARNING]
>
> Chaque livraison porte un en-tête `X-Webhook-Signature` : un HMAC-SHA256 hexadécimal du corps brut, calculé avec le secret de l'abonnement. Le module Custom webhook ne le vérifie pas ; traitez donc l'adresse Make comme un secret. Pour vérifier, activez les options **Get request headers** et **JSON pass-through** du webhook afin que le scénario reçoive l'en-tête et le corps non analysé, puis comparez un HMAC-SHA256 de ce corps avec l'en-tête. La fonction `sha256()` de Make accepte une clé HMAC ; consultez la référence des fonctions de Make pour l'ordre des arguments. Détails : [Vérification de la signature](/fr/webhooks/payloads.md#vérification-de-la-signature).

Social media studio attend une réponse pendant 10 secondes et relance une livraison en échec jusqu'à 4 fois. Un abonnement qui échoue 10 fois de suite est désactivé ; réactivez-le dans Paramètres → Webhooks.

## Autres outils

* [n8n](/fr/integrations/n8n.md) propose un nœud communautaire et des modèles de workflows prêts à l'emploi.
* [Zapier](/fr/integrations/zapier.md) fonctionne de la même façon, avec Webhooks by Zapier.


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