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

# Automatiza la publicación en redes sociales con Make

> Crea y programa publicaciones de Social media studio desde escenarios de Make con el módulo HTTP, e inicia escenarios desde webhooks firmados.

Todavía **no existe una app nativa de Social media studio en Make** (antes Integromat). Los módulos integrados de Make cubren ambas direcciones:

* **Make → Social media studio:** el módulo **HTTP → Make a request** llama a la API REST para crear o programar una publicación.
* **Social media studio → Make:** el disparador **Webhooks → Custom webhook** recibe los eventos que envía Social media studio (publicación publicada, publicación fallida, comentario nuevo y más).

> [!NOTE]
>
> La API REST requiere un plan **Standard**, **Advanced** o **Lifetime** (Lite no la incluye). El número de endpoints de webhook que puedes crear depende de tu plan; consulta el [resumen de Webhooks](/es/webhooks/overview.md).

## Antes de empezar

**1. Crea una clave de API**

En Social media studio, abre **Ajustes → API** ([app.so-me.studio/settings?tab=api](https://app.so-me.studio/settings?tab=api)) y crea una clave. Empieza por `sk_live_` y se muestra una sola vez. Consulta [Autenticación](/es/authentication.md).

**2. Encuentra los ID de tus cuentas (opcional)**

Si conectaste más de una cuenta en la misma plataforma, cada publicación debe indicar cuál usar. Lista tus cuentas una vez y anota el `id` de cada una:

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

Si solo tienes una cuenta en una plataforma, puedes omitir `accountId`.

## Crear o programar una publicación desde un escenario

**1. Construye el cuerpo con un módulo JSON**

Añade **JSON → Create JSON**. Define una estructura de datos con los campos siguientes y asigna valores de módulos anteriores. Make escapa las comillas y los saltos de línea por ti, algo que no hace un cuerpo JSON escrito a mano.

**2. Envíalo con el módulo HTTP**

Añade **HTTP → Make a request**:

| Ajuste | Valor |
| - | - |
| URL | `https://api.so-me.studio/v1/posts` |
| Method | `POST` |
| Headers | `X-API-Key` → tu clave `sk_live_...` |
| Body type | Raw |
| Content type | JSON (`application/json`) |
| Request content | La salida **JSON string** de Create JSON |
| Parse response | Yes |

| Campo del cuerpo | Obligatorio | Valor |
| - | - | - |
| `text` | Sí | El texto de la publicación. |
| `socialMedia` | Sí | Una plataforma por solicitud: `TWITTER`, `LINKEDIN`, `LINKEDIN_PAGE`, `FACEBOOK`, `INSTAGRAM`, `THREADS`, `TIKTOK`, `YOUTUBE`, `PINTEREST`, `BLUESKY`, `MASTODON`, `REDDIT`, `GOOGLE_MY_BUSINESS`, `WORDPRESS`, `DEV_TO`, `DRIBBBLE`, `DISCORD` o `SLACK`. No se puede publicar en `WHATSAPP` ni `TELEGRAM`. |
| `postType` | Sí | `TEXT`, `IMAGE`, `MULTIPLE_IMAGES`, `VIDEO`, `CAROUSEL`, `REEL` o `STORY`. |
| `scheduledAt` | No | Hora ISO 8601, por ejemplo `2026-11-02T09:00:00Z`. Omítelo para publicar de inmediato. En Make, `{{formatDate(myDate; "YYYY-MM-DDTHH:mm:ssZ")}}` produce este formato. |
| `accountId` | Cuando haga falta | El `id` de la cuenta de `GET /v1/accounts`. Es necesario cuando hay más de una cuenta conectada en esa plataforma; si no, la API responde `400` con la lista para elegir. |
| `firstComment` | No | Un comentario publicado bajo la publicación justo después de publicarla (Facebook, Instagram, X, LinkedIn, LinkedIn Page, Threads, YouTube). |
| `fileIds` | No | Un array de IDs de archivos de la biblioteca de medios. Sube antes los medios en Social media studio, o consulta el [Inicio rápido](/es/quickstart.md#subir-medios) para subidas prefirmadas. |
| `threadParts` | No | Un array de objetos `{ "text": "..." }` que siguen a la publicación cabecera (X, Threads, Bluesky, Mastodon). |
| `tiktok` | Para TikTok | Como mínimo `{ "privacyLevel": "PUBLIC_TO_EVERYONE" }`; TikTok rechaza una publicación sin nivel de privacidad. |

El cuerpo que envía el módulo HTTP tiene este aspecto:

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

Una llamada correcta devuelve `201` con la publicación, incluidos su `id` y `postStatus: "SCHEDULED"`. Para publicar en varias plataformas, usa un módulo HTTP por plataforma, o un **Iterator** sobre una lista de plataformas.

> **Errores**
>
> | Estado | Significado |
> | - | - |
> | `400` | Un campo no es válido, o falta `accountId` mientras hay varias cuentas conectadas en esa plataforma. El mensaje indica el problema. |
> | `401` | La clave de API falta, es incorrecta o está revocada. |
> | `403` | Tu plan no incluye la API REST, o se alcanzó un límite del plan. |
> | `429` | Se alcanzó el límite de solicitudes. El límite es por espacio de trabajo y depende de tu plan. |
>
> Añade una ruta de gestión de errores al módulo HTTP si un escenario debe continuar tras una publicación fallida.

## Iniciar un escenario a partir de un evento de Social media studio

**1. Crea el webhook en Make**

Inicia el escenario con **Webhooks → Custom webhook**, haz clic en **Add** y copia la dirección que te da Make.

**2. Suscribe esa dirección en Social media studio**

Abre **Ajustes → Webhooks** ([app.so-me.studio/settings?tab=webhooks](https://app.so-me.studio/settings?tab=webhooks)), añade un endpoint con la dirección de Make y elige los eventos. O créalo con la 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 respuesta incluye el `secret` de firma de la suscripción.

**3. Deja que Make aprenda la estructura**

Con el módulo Custom webhook a la escucha (**Run once**), haz clic en **Test** en la suscripción dentro de Ajustes → Webhooks. Make registra los campos de la entrega de ejemplo.

Cada entrega es un `POST` JSON con este sobre:

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

Usa un **filtro** sobre `event` cuando un webhook reciba varios tipos de evento. El bloque `data` lleva IDs en lugar del contenido completo; para una publicación, añade un módulo HTTP con `GET https://api.so-me.studio/v1/posts/{{data.postId}}` y el encabezado `X-API-Key` para leer su texto, su enlace público (`shareUrl`) o su `failureReason`.

Entre los eventos útiles están `post.published`, `post.failed`, `post.scheduled`, `inbox.message_received`, `inbox.comment_received`, `social.account_disconnected` y `quota.limit_reached`. Consulta el [resumen de Webhooks](/es/webhooks/overview.md) para ver la lista completa y el [formato de payload](/es/webhooks/payloads.md) para ver ejemplos.

> [!WARNING]
>
> Cada entrega incluye un encabezado `X-Webhook-Signature`: un HMAC-SHA256 hexadecimal del cuerpo sin procesar, con la clave del secreto de la suscripción. El módulo Custom webhook no lo comprueba, así que trata la dirección de Make como un secreto. Para verificarlo, activa las opciones **Get request headers** y **JSON pass-through** del webhook para que el escenario reciba el encabezado y el cuerpo sin analizar, y compara un HMAC-SHA256 de ese cuerpo con el encabezado. La función `sha256()` de Make acepta una clave HMAC; consulta la referencia de funciones de Make para el orden de los argumentos. Detalles: [Verificación de firma](/es/webhooks/payloads.md#verificación-de-la-firma).

Social media studio espera 10 segundos una respuesta y reintenta una entrega fallida hasta 4 veces. Una suscripción que falla 10 veces seguidas se desactiva; vuelve a activarla en Ajustes → Webhooks.

## Otras herramientas

* [n8n](/es/integrations/n8n.md) tiene un nodo de la comunidad y plantillas de flujo de trabajo listas para usar.
* [Zapier](/es/integrations/zapier.md) funciona igual, con Webhooks by Zapier.


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