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

> Crie e agende publicações do Social media studio a partir de qualquer Zap com a API REST e inicie Zaps com webhooks assinados quando as publicações forem publicadas ou falharem.

Ainda **não existe um app nativo do Social media studio no Zapier**. Mesmo assim, você pode conectar os dois com o app integrado **Webhooks by Zapier**:

* **Zapier → Social media studio:** uma ação do Webhooks by Zapier chama a API REST para criar ou agendar uma publicação.
* **Social media studio → Zapier:** um gatilho do Webhooks by Zapier recebe os eventos que o Social media studio envia (publicação publicada, publicação com falha, novo comentário e mais).

> [!NOTE]
>
> O Webhooks by Zapier pode exigir um plano pago do Zapier. Confira o seu plano do Zapier antes de montar a automação. No lado do Social media studio, 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 Zap

Adicione uma etapa de ação: **Webhooks by Zapier → POST**.

| Campo | Valor |
| - | - |
| URL | `https://api.so-me.studio/v1/posts` |
| Payload Type | `json` |
| Data | Uma linha por campo do corpo (tabela abaixo), mapeada a partir de etapas anteriores |
| Headers | `X-API-Key` → sua chave `sk_live_...` |

O Zapier monta e escapa o JSON para você, então textos com aspas ou quebras de linha são seguros.

| 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. A etapa **Formatter → Date / Time → Format** do Zapier converte uma data para 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 | IDs de arquivos da biblioteca de mídia a anexar, em lista. 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. |

Para publicar em várias plataformas, adicione uma etapa POST por plataforma.

A requisição equivalente, para testar fora do Zapier:

```bash theme={null}
curl -X POST https://api.so-me.studio/v1/posts \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "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"`. Mapeie o `id` nas etapas seguintes se quiser atualizar ou excluir a publicação.

> **Campos aninhados: opções do TikTok e threads**
>
> As publicações do TikTok precisam de `tiktok.privacyLevel` e os encadeamentos (threads) usam um array `threadParts`. A ação POST envia dados planos de chave-valor, então use **Webhooks by Zapier → Custom Request** para esses casos, com Method `POST`, a mesma URL e os mesmos cabeçalhos, mais `Content-Type: application/json`, e o corpo JSON digitado em **Data**:
>
> ```json theme={null}
> {
>   "text": "First post of the thread",
>   "socialMedia": "TWITTER",
>   "postType": "TEXT",
>   "threadParts": [{ "text": "Second post" }, { "text": "Third post" }]
> }
> ```
>
> O Custom Request envia o corpo exatamente como digitado e não escapa os valores mapeados. Um campo mapeado que contenha aspas duplas ou uma quebra de linha gera um JSON inválido, que a API rejeita com `400`.

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

## Inicie um Zap a partir de um evento do Social media studio

**1. Crie o gatilho no Zapier**

Escolha **Webhooks by Zapier → Catch Hook** como gatilho e copie a URL de webhook que o Zapier fornece.

**2. Assine essa URL 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 a URL do Zapier 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://hooks.zapier.com/hooks/catch/123456/abcdef/",
    "categories": ["post"],
    "events": ["post.published", "post.failed"],
    "description": "Zapier"
  }'
```

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

**3. Envie um evento de teste**

Clique em **Testar** na assinatura em Configurações → Webhooks e depois em **Test trigger** no Zapier para ele aprender os campos.

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

No Zapier, os campos aparecem como `Event`, `Data Post Id`, `Data Platform` e assim por diante. O bloco `data` traz IDs em vez do conteúdo completo; para uma publicação, chame `GET https://api.so-me.studio/v1/posts/{postId}` com uma etapa **Webhooks by Zapier → GET** para ler o texto, o link publicado (`shareUrl`) ou o `failureReason`.

Eventos úteis para Zaps 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 Catch Hook não o verifica, então trate a URL do Zapier como um segredo. Para verificar, use o **Catch Raw Hook** (que repassa o corpo e os cabeçalhos sem processar) e uma etapa **Code by Zapier** que calcule o HMAC do corpo bruto e o compare com o cabeçalho. 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 [Make](/pt-BR/integrations/make.md) funciona da mesma forma que o Zapier, com os módulos HTTP e Webhooks.


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