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

# Automatize publicações em redes sociais com o Make

> Crie e agende publicações do Social media studio a partir de cenários do Make com o módulo HTTP e inicie cenários com webhooks assinados.

Ainda **não existe um app nativo do Social media studio no Make** (antigo Integromat). Os módulos integrados do Make cobrem os dois sentidos:

* **Make → Social media studio:** o módulo **HTTP → Make a request** chama a API REST para criar ou agendar uma publicação.
* **Social media studio → Make:** o gatilho **Webhooks → Custom webhook** recebe os eventos que o Social media studio envia (publicação publicada, publicação com falha, novo comentário e mais).

> [!NOTE]
>
> A API REST exige um plano **Standard**, **Advanced** ou **Lifetime** (o Lite não a inclui). O número de endpoints de webhook que você pode criar depende do seu plano; veja a [Visão geral de webhooks](/pt-BR/webhooks/overview.md).

## Antes de começar

**1. Crie uma chave de API**

No Social media studio, abra **Configurações → API** ([app.so-me.studio/settings?tab=api](https://app.so-me.studio/settings?tab=api)) e crie uma chave. Ela começa com `sk_live_` e é exibida uma única vez. Veja [Autenticação](/pt-BR/authentication.md).

**2. Encontre os IDs das suas contas (opcional)**

Se você conectou mais de uma conta na mesma plataforma, toda publicação precisa indicar qual usar. Liste suas contas uma vez e anote o `id` de cada uma:

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

Com exatamente uma conta em uma plataforma, você pode omitir o `accountId`.

## Crie ou agende uma publicação a partir de um cenário

**1. Monte o corpo com um módulo JSON**

Adicione **JSON → Create JSON**. Defina uma estrutura de dados com os campos abaixo e mapeie os valores dos módulos anteriores. O Make escapa aspas e quebras de linha por você, o que um corpo JSON digitado à mão não faz.

**2. Envie com o módulo HTTP**

Adicione **HTTP → Make a request**:

| Configuração | Valor |
| - | - |
| URL | `https://api.so-me.studio/v1/posts` |
| Method | `POST` |
| Headers | `X-API-Key` → sua chave `sk_live_...` |
| Body type | Raw |
| Content type | JSON (`application/json`) |
| Request content | A saída **JSON string** do Create JSON |
| Parse response | Yes |

| Campo do corpo | Obrigatório | Valor |
| - | - | - |
| `text` | Sim | O texto da publicação. |
| `socialMedia` | Sim | Uma plataforma por requisição: `TWITTER`, `LINKEDIN`, `LINKEDIN_PAGE`, `FACEBOOK`, `INSTAGRAM`, `THREADS`, `TIKTOK`, `YOUTUBE`, `PINTEREST`, `BLUESKY`, `MASTODON`, `REDDIT`, `GOOGLE_MY_BUSINESS`, `WORDPRESS`, `DEV_TO`, `DRIBBBLE`, `DISCORD` ou `SLACK`. Não é possível publicar em `WHATSAPP` nem em `TELEGRAM`. |
| `postType` | Sim | `TEXT`, `IMAGE`, `MULTIPLE_IMAGES`, `VIDEO`, `CAROUSEL`, `REEL` ou `STORY`. |
| `scheduledAt` | Não | Horário ISO 8601, por exemplo `2026-11-02T09:00:00Z`. Omita para publicar na hora. No Make, `{{formatDate(myDate; "YYYY-MM-DDTHH:mm:ssZ")}}` produz esse formato. |
| `accountId` | Quando necessário | O `id` da conta retornado por `GET /v1/accounts`. Necessário quando há mais de uma conta conectada naquela plataforma; caso contrário, a API responde `400` com a lista para você escolher. |
| `firstComment` | Não | Um comentário publicado sob a publicação logo depois que ela é publicada (Facebook, Instagram, X, LinkedIn, Página do LinkedIn, Threads, YouTube). |
| `fileIds` | Não | Um array de IDs de arquivos da biblioteca de mídia. Envie a mídia primeiro no Social media studio ou veja o [Início rápido](/pt-BR/quickstart.md#upload-media) para uploads pré-assinados. |
| `threadParts` | Não | Um array de objetos `{ "text": "..." }` que seguem a publicação inicial (X, Threads, Bluesky, Mastodon). |
| `tiktok` | Para o TikTok | No mínimo `{ "privacyLevel": "PUBLIC_TO_EVERYONE" }`; o TikTok rejeita uma publicação sem nível de privacidade. |

O corpo que o módulo HTTP envia é assim:

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

Uma chamada bem-sucedida retorna `201` com a publicação, incluindo o `id` e `postStatus: "SCHEDULED"`. Para publicar em várias plataformas, use um módulo HTTP por plataforma ou um **Iterator** sobre uma lista de plataformas.

> **Erros**
>
> | Status | Significado |
> | - | - |
> | `400` | Um campo é inválido, ou falta o `accountId` com várias contas conectadas naquela plataforma. A mensagem aponta o problema. |
> | `401` | A chave de API está ausente, incorreta ou foi revogada. |
> | `403` | Seu plano não inclui a API REST ou um limite do plano foi atingido. |
> | `429` | Limite de requisições atingido. O limite é por espaço de trabalho e depende do seu plano. |
>
> Adicione uma rota de tratamento de erros ao módulo HTTP se um cenário deve continuar depois de uma publicação com falha.

## Inicie um cenário a partir de um evento do Social media studio

**1. Crie o webhook no Make**

Inicie o cenário com **Webhooks → Custom webhook**, clique em **Add** e copie o endereço que o Make fornece.

**2. Assine esse endereço no Social media studio**

Abra **Configurações → Webhooks** ([app.so-me.studio/settings?tab=webhooks](https://app.so-me.studio/settings?tab=webhooks)), adicione um endpoint com o endereço do Make e escolha os eventos. Ou crie-o pela 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"
  }'
```

A resposta inclui o `secret` de assinatura da assinatura de webhook.

**3. Deixe o Make aprender a estrutura**

Com o módulo Custom webhook escutando (**Run once**), clique em **Testar** na assinatura em Configurações → Webhooks. O Make registra os campos da entrega de exemplo.

Toda entrega é um `POST` JSON com este envelope:

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

Use um **filtro** em `event` quando um webhook receber vários tipos de evento. O bloco `data` traz IDs em vez do conteúdo completo; para uma publicação, adicione um módulo HTTP com `GET https://api.so-me.studio/v1/posts/{{data.postId}}` e o cabeçalho `X-API-Key` para ler o texto, o link publicado (`shareUrl`) ou o `failureReason`.

Eventos úteis incluem `post.published`, `post.failed`, `post.scheduled`, `inbox.message_received`, `inbox.comment_received`, `social.account_disconnected` e `quota.limit_reached`. Veja a [Visão geral de webhooks](/pt-BR/webhooks/overview.md) para a lista completa e o [Formato do payload](/pt-BR/webhooks/payloads.md) para exemplos de payload.

> [!WARNING]
>
> Cada entrega traz um cabeçalho `X-Webhook-Signature`: um HMAC-SHA256 em hexadecimal do corpo bruto, com o segredo da assinatura como chave. O módulo Custom webhook não o verifica, então trate o endereço do Make como um segredo. Para verificar, ative as opções **Get request headers** e **JSON pass-through** do webhook para o cenário receber o cabeçalho e o corpo sem processar, e então compare um HMAC-SHA256 desse corpo com o cabeçalho. A função `sha256()` do Make aceita uma chave HMAC; consulte a referência de funções do Make para a ordem dos argumentos. Detalhes: [Verificação de assinatura](/pt-BR/webhooks/payloads.md#signature-verification).

O Social media studio espera 10 segundos por uma resposta e tenta novamente uma entrega com falha até 4 vezes. Uma assinatura que falha 10 vezes seguidas é desativada; reative-a em Configurações → Webhooks.

## Outras ferramentas

* O [n8n](/pt-BR/integrations/n8n.md) tem um nó da comunidade e modelos de fluxo de trabalho prontos.
* O [Zapier](/pt-BR/integrations/zapier.md) funciona da mesma forma, com o Webhooks by Zapier.


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