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

# Webhooks de redes sociais para eventos de posts e da caixa de entrada

> Assine eventos assinados em tempo real do Social media studio, como posts publicados ou com falha e novas mensagens, para alimentar suas próprias automações.

Os webhooks permitem criar ou configurar integrações que assinam eventos em tempo real do Social media studio. Quando um evento é disparado, enviamos um payload HTTP POST para a URL que você configurou, permitindo que o seu aplicativo reaja instantaneamente, sem precisar consultar a API repetidamente.

## Noções básicas de configuração

Você pode configurar webhooks diretamente pelo painel, em **Configurações > Webhooks**, ou usando a nossa API.

Cada webhook exige:

* Uma **URL de endpoint** válida (HTTPS é fortemente recomendado).
* Uma ou mais **categorias de eventos** que você deseja assinar.

| Propriedade | Valor |
| - | - |
| **Transporte** | HTTP POST |
| **Content-Type** | `application/json` |
| **Tempo limite** | 10 segundos |
| **Tamanho máximo do payload** | 64 KB |

> [!NOTE]
>
> O seu plano determina quantas assinaturas de webhook ativas você pode manter simultaneamente.

## Exemplos de template de payload

Use `payloadTemplate` para personalizar o corpo JSON enviado ao seu endpoint. As variáveis de template disponíveis são:

* `{{event}}`
* `{{category}}`
* `{{timestamp}}`
* `{{data}}`
* `{{data.any_field}}` (para campos aninhados específicos do evento)

### 1) Envelope JSON genérico

```json theme={null}
{
  "event": "{{event}}",
  "category": "{{category}}",
  "occurredAt": "{{timestamp}}",
  "payload": {{data}}
}
```

### 2) Payload adequado para o Discord

```json theme={null}
{
  "content": "🚀 {{event}}",
  "username": "Social media studio Webhooks",
  "embeds": [
    {
      "title": "Webhook Event",
      "description": "Post {{data.postId}} on {{data.platform}}",
      "fields": [
        { "name": "Category", "value": "{{category}}" },
        { "name": "Time", "value": "{{timestamp}}" }
      ]
    }
  ]
}
```

### 3) Payload no estilo Slack Block Kit

```json theme={null}
{
  "text": "Social media studio event: {{event}}",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Event:* `{{event}}`\n*Category:* `{{category}}`\n*Post:* `{{data.postId}}`\n*Platform:* `{{data.platform}}`\n*At:* `{{timestamp}}`"
      }
    }
  ]
}
```

> [!NOTE]
>
> Se uma variável não existir nos dados do evento, o marcador permanece inalterado (por exemplo, `{{data.postId}}`).

## Limites e retenção de webhooks

Dependendo do seu plano de assinatura, a retenção dos logs de entrega dos webhooks e o número de endpoints de webhook que você pode criar variam:

**Limites por plano**

| Plano | Máx. de assinaturas | Retenção de logs |
| - | - | - |
| **Lite** | 3 endpoints | 30 dias |
| **Standard** | 10 endpoints | 60 dias |
| **Advanced** | 25 endpoints | 90 dias |

**Política de novas tentativas**

Se o seu endpoint retornar um erro (status HTTP `>= 400`) ou atingir o tempo limite (após 10 segundos), o Social media studio tentará reenviar o evento automaticamente.

O sistema faz **até 4 novas tentativas**, com os seguintes intervalos de espera:

* **1ª tentativa:** 30 segundos
* **2ª tentativa:** 2 minutos
* **3ª tentativa:** 10 minutos
* **4ª tentativa:** 1 hora

> [!WARNING]
>
> Se um webhook falhar **10 vezes** consecutivas, ele será desativado automaticamente para evitar sobrecarga no sistema.

## Eventos disponíveis

Oferecemos suporte a **162 eventos em 26 categorias**. Ao assinar uma categoria, você recebe todos os eventos relacionados. Você também pode assinar eventos individuais para um controle mais fino.

> **Post (22 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `post.created` | Um novo post foi criado |
> | `post.updated` | O conteúdo ou o agendamento de um post foi alterado |
> | `post.deleted` | Um post foi excluído |
> | `post.bulk_deleted` | Vários posts foram excluídos em uma única operação |
> | `post.published` | Um post foi publicado com sucesso na plataforma |
> | `post.failed` | A publicação de um post agendado falhou |
> | `post.retried` | Um post com falha foi recolocado na fila |
> | `post.scheduled` | Um post foi adicionado à fila de publicação |
> | `post.unscheduled` | Um post foi removido da fila de publicação |
> | `post.resubmitted` | Um post rejeitado foi reenviado para aprovação |
> | `post.first_comment_posted` | O primeiro comentário de uma publicação foi publicado |
> | `post.first_comment_failed` | Não foi possível publicar o primeiro comentário de uma publicação |
> | `repurpose.batch_created` | Um plano de reaproveitamento foi criado a partir de conteúdo existente |
> | `repurpose.variations_generated` | Variações com IA foram geradas para um plano de reaproveitamento |
> | `repurpose.batch_committed` | Publicações foram agendadas a partir de um plano de reaproveitamento |
> | `repurpose.batch_approved` | As publicações de um plano de reaproveitamento foram aprovadas |
> | `repurpose.batch_rejected` | As publicações de um plano de reaproveitamento foram rejeitadas |
> | `repurpose.batch_paused` | Uma fila evergreen foi pausada |
> | `repurpose.batch_resumed` | Uma fila evergreen pausada foi retomada |
> | `repurpose.batch_completed` | Uma fila evergreen publicou tudo o que estava previsto |
> | `repurpose.batch_failed` | Algumas publicações de um plano de reaproveitamento não puderam ser criadas |
> | `repurpose.cycle_posted` | Uma fila evergreen publicou sua próxima publicação |

> **Rascunho (4 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `draft.created` | Um rascunho de post foi criado |
> | `draft.updated` | Um rascunho de post foi atualizado |
> | `draft.deleted` | Um rascunho de post foi excluído |
> | `draft.converted` | Um rascunho foi convertido em um post agendado/publicado |

> **Aprovação (6 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `post.approval.requested` | Um post foi enviado para aprovação |
> | `post.approval.approved` | Um post pendente foi aprovado |
> | `post.approval.rejected` | Um post pendente foi rejeitado |
> | `post.approval.comment_added` | Um revisor adicionou um comentário a um post |
> | `post.approval.comment_updated` | O comentário de um revisor foi editado |
> | `post.approval.comment_deleted` | O comentário de um revisor foi excluído |

> **Conta social (3 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `social.account_connected` | Uma conta de rede social foi autorizada |
> | `social.account_disconnected` | A conexão de uma conta social foi removida |
> | `social.account_token_refreshed` | O token OAuth de uma conta social foi renovado |

> **Mídia (9 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `media.uploaded` | Um arquivo foi enviado para a biblioteca de mídia |
> | `media.deleted` | Um arquivo de mídia foi excluído |
> | `media.bulk_deleted` | Vários arquivos de mídia foram excluídos em uma única operação |
> | `media.moved` | Um arquivo de mídia foi movido para outra pasta |
> | `media.folder_created` | Uma nova pasta de mídia foi criada |
> | `media.folder_renamed` | Uma pasta de mídia foi renomeada |
> | `media.folder_deleted` | Uma pasta de mídia foi excluída |
> | `media.folder_moved` | Uma pasta de mídia foi movida |
> | `media.canva_imported` | Um design do Canva foi importado para a biblioteca |

> **Compositor (3 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `composer.reel_created` | Um novo reel/vídeo foi criado no compositor |
> | `composer.reel_updated` | Um reel/vídeo existente foi atualizado |
> | `composer.reel_deleted` | Um reel/vídeo foi excluído |

> **Análises (1 evento)**
>
> | Evento | Descrição |
> | - | - |
> | `analytics.report_generated` | Um ciclo agendado de atualização de análises foi concluído (a cada 2 horas para tenants com contas sociais conectadas) |

> **Melhor horário (2 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `best_time.recommendation_generated` | Uma recomendação de melhor horário para postar foi calculada pela primeira vez para uma conta |
> | `best_time.recommendation_recomputed` | Uma recomendação de melhor horário existente foi atualizada (cron diário ou recálculo manual) |

> **Caixa de entrada (16 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `inbox.message_received` | Uma DM recebida chegou |
> | `inbox.message_sent` | Uma DM enviada foi disparada |
> | `inbox.comment_received` | Um comentário social recebido chegou |
> | `inbox.comment_sent` | Uma resposta enviada a um comentário social foi disparada |
> | `inbox.comment_hidden` | Um comentário social foi ocultado |
> | `inbox.comment_edited` | Um comentário social foi editado |
> | `inbox.comment_removed` | Um comentário social foi removido por completo |
> | `inbox.conversation_created` | Uma nova thread de conversa foi iniciada |
> | `inbox.conversation_deleted` | Uma conversa foi excluída |
> | `inbox.conversation_archived` | Uma conversa foi arquivada |
> | `inbox.conversation_resolved` | Uma conversa foi marcada como resolvida |
> | `inbox.subscribed` | A caixa de entrada foi ativada para uma conta/plataforma conectada |
> | `inbox.unsubscribed` | A caixa de entrada foi desativada para uma conta/plataforma conectada |
> | `inbox.saved_reply_created` | Um modelo de resposta salva foi criado |
> | `inbox.saved_reply_updated` | Um modelo de resposta salva foi atualizado |
> | `inbox.saved_reply_deleted` | Um modelo de resposta salva foi excluído |

> **Link na bio (17 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `biolink.created` | Uma página de biolink foi criada |
> | `biolink.updated` | Uma página de biolink foi atualizada |
> | `biolink.deleted` | Uma página de biolink foi excluída |
> | `biolink.published` | Uma página de biolink foi tornada pública |
> | `biolink.unpublished` | Uma página de biolink foi tornada privada |
> | `biolink.theme_changed` | Um biolink passou para outro tema predefinido |
> | `biolink.custom_theme_set` | Um tema personalizado de biolink foi configurado |
> | `biolink.button_added` | Um botão foi adicionado a um biolink |
> | `biolink.button_updated` | Um botão de biolink foi atualizado |
> | `biolink.button_removed` | Um botão de biolink foi removido |
> | `biolink.button_reordered` | Os botões de um biolink foram reordenados |
> | `biolink.post_created` | Um embed de post do Instagram foi adicionado a um biolink |
> | `biolink.post_updated` | Um embed de post de biolink foi atualizado |
> | `biolink.post_deleted` | Um embed de post de biolink foi removido |
> | `biolink.post_reordered` | Os embeds de post de um biolink foram reordenados |
> | `biolink.profile_image_uploaded` | Uma imagem de perfil de biolink foi enviada |
> | `biolink.profile_image_deleted` | Uma imagem de perfil de biolink foi removida |

> **WhatsApp (6 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `whatsapp.template_created` | Um modelo de mensagem do WhatsApp foi enviado para aprovação |
> | `whatsapp.template_deleted` | Um modelo de mensagem do WhatsApp foi excluído |
> | `whatsapp.template_media_uploaded` | Uma mídia foi enviada para compor um modelo do WhatsApp |
> | `whatsapp.message_sent` | Uma mensagem de modelo do WhatsApp foi enviada a um destinatário |
> | `whatsapp.template_status_updated` | A Meta aprovou, rejeitou, pausou ou desativou um modelo |
> | `whatsapp.phone_quality_updated` | A Meta alterou a classificação de qualidade ou o limite de mensagens de um número |

> **IA (8 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `ai.text_generated` | Uma geração de texto por IA foi concluída |
> | `ai.caption_generated` | Uma legenda de post foi gerada por IA |
> | `ai.image_generated` | Uma tarefa de imagem por IA foi concluída com sucesso |
> | `ai.image_failed` | Uma tarefa de imagem por IA falhou |
> | `ai.image_deleted` | Uma imagem gerada por IA foi excluída |
> | `ai.video_generated` | Uma tarefa de vídeo por IA foi concluída com sucesso |
> | `ai.video_failed` | Uma tarefa de vídeo por IA falhou |
> | `ai.video_deleted` | Um vídeo gerado por IA foi excluído |

> **Central de conhecimento (4 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `knowledge.created` | Um documento de conhecimento foi adicionado à central RAG |
> | `knowledge.updated` | Os metadados ou o corpo da nota de um documento de conhecimento foram atualizados |
> | `knowledge.deleted` | Um documento de conhecimento foi removido |
> | `knowledge.reprocessed` | A extração de texto de um documento de conhecimento foi executada novamente |

> **Equipe (6 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `team.invitation_sent` | Um convite de equipe foi enviado |
> | `team.invitation_cancelled` | Um convite de equipe pendente foi cancelado |
> | `team.member_joined` | Um novo membro aceitou o convite |
> | `team.member_left` | Um membro saiu da organização voluntariamente |
> | `team.member_removed` | Um membro foi removido por um proprietário |
> | `team.permission_updated` | A função de um membro foi alterada |

> **Organização (8 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `organization.created` | Uma nova organização foi criada |
> | `organization.deleted` | Uma organização foi excluída |
> | `organization.member_left` | Um membro saiu da organização |
> | `organization.name_updated` | O nome da organização foi atualizado |
> | `organization.logo_updated` | O logotipo da organização foi atualizado |
> | `organization.description_updated` | A descrição da organização foi atualizada |
> | `organization.theme_updated` | O tema da interface da organização foi atualizado |
> | `organization.timezone_updated` | O fuso horário padrão da organização foi atualizado |

> **Conta e perfil (8 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `account.updated` | As configurações de uma conta social foram atualizadas |
> | `account.token_expired` | O token de sessão de uma conta social foi detectado como expirado |
> | `account.token_expiring` | O acesso de uma conta social expira em breve; reconecte-a para continuar publicando |
> | `profile.updated` | O perfil de um usuário foi atualizado |
> | `profile.email_updated` | O endereço de e-mail de um usuário foi alterado |
> | `profile.password_changed` | A senha de um usuário foi alterada |
> | `profile.avatar_uploaded` | Um usuário enviou uma foto de perfil |
> | `profile.avatar_deleted` | Um usuário removeu a foto de perfil |

> **Autenticação (8 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `auth.registered` | Um usuário concluiu o cadastro |
> | `auth.login` | Um usuário fez login |
> | `auth.logout` | Um usuário fez logout |
> | `auth.email_verified` | Um usuário verificou o endereço de e-mail |
> | `auth.password_reset_requested` | Um e-mail de redefinição de senha foi enviado |
> | `auth.password_reset_completed` | Um usuário concluiu a redefinição de senha |
> | `auth.verification_resent` | Um e-mail de verificação foi reenviado |
> | `auth.refresh_token_issued` | Um novo refresh token foi emitido |

> **Assinatura e cobrança (8 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `subscription.created` | Uma nova assinatura foi iniciada |
> | `subscription.plan_changed` | O plano da assinatura foi aplicado |
> | `subscription.canceled` | Uma assinatura foi cancelada |
> | `subscription.payment_failed` | O pagamento de uma fatura recorrente falhou |
> | `subscription.expired` | Uma assinatura não paga ou cancelada expirou |
> | `subscription.upgraded` | Uma assinatura foi atualizada para um plano de nível superior |
> | `subscription.downgrade_requested` | Um downgrade foi agendado para o fim do período |
> | `subscription.downgrade_cancelled` | Um downgrade pendente foi cancelado |

> **Chave de API (2 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `api_key.created` | Uma nova chave de API de desenvolvedor foi gerada |
> | `api_key.revoked` | Uma chave de API foi revogada |

> **Webhook (5 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `webhook.created` | Uma nova assinatura de webhook foi criada |
> | `webhook.updated` | O endpoint ou as categorias de um webhook foram alterados |
> | `webhook.deleted` | Uma assinatura de webhook foi excluída |
> | `webhook.enabled` | Uma assinatura de webhook foi ativada |
> | `webhook.disabled` | Uma assinatura de webhook foi desativada |

> **Integração (2 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `integration.connected` | Uma integração de terceiros foi conectada |
> | `integration.disconnected` | Uma integração de terceiros foi desconectada |

> **Suporte (8 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `support.ticket_created` | Um novo ticket de suporte foi criado |
> | `support.ticket_updated` | Um ticket de suporte foi atualizado |
> | `support.ticket_closed` | Um ticket de suporte foi fechado |
> | `support.ticket_assigned` | Um ticket de suporte foi atribuído a um agente |
> | `support.ticket_reply` | Um agente de suporte respondeu a um ticket |
> | `support.ticket_message_received` | Uma mensagem de ticket recebida chegou |
> | `support.ticket_message_sent` | Uma mensagem de ticket enviada foi disparada |
> | `support.ticket_reopened` | Um ticket fechado foi reaberto |

> **Modelo (1 evento)**
>
> | Evento | Descrição |
> | - | - |
> | `template.rendered` | Um modelo de conteúdo foi renderizado com a substituição de campos |

> **MCP (1 evento)**
>
> | Evento | Descrição |
> | - | - |
> | `mcp.usage_logged` | Uma chamada de ferramenta MCP foi registrada e cobrada |

> **Cota (1 evento)**
>
> | Evento | Descrição |
> | - | - |
> | `quota.limit_reached` | Uma cota no nível do plano (por exemplo, créditos de IA, chamadas de API) foi atingida |

> **Indicação (3 eventos)**
>
> | Evento | Descrição |
> | - | - |
> | `referral.code_created` | O código de indicação de um usuário foi criado |
> | `referral.code_used` | Um novo cadastro usou o código do indicador |
> | `referral.reward_earned` | Uma indicação foi concluída e créditos foram concedidos |

> **[Precisa inspecionar os payloads?](/pt-BR/webhooks/payloads.md)**
>
> Os webhooks sempre entregam eventos mapeados para o nosso esquema oficial. Aprenda a verificar assinaturas e veja exemplos de payload de cada categoria de evento.


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