A pergunta mais repetida por quem usa Muralvivo nos últimos meses era simples: "depois que eu aprovo um depoimento, como ele chega no meu CRM sem eu copiar e colar?" Até hoje, a resposta honesta era "use um workaround manual". A partir desta versão, a resposta é outra: webhook na aprovação e feed JSON do mural, dois primitivos que qualquer automação consome, sem conector nativo.
O momento que importa: a aprovação
Uma integração de depoimentos só faz sentido se ela disparar no momento certo. Para prova social, esse momento é a aprovação: quando o depoimento pendente vira material publicável, e revisado por você.
Por isso o webhook não dispara na coleta, nem em lote, nem por agendamento. Ele dispara a cada aprovação, individualmente, com o depoimento completo. Reprovar não dispara nada. Deixar pendente não dispara nada. A automação recebe apenas o que passou pelo seu crivo.
O que chega no destino
Cada aprovação envia um POST com Content-Type: application/json. O corpo traz o evento (testimonial.approved), o depoimento, id, texto, nome do autor, empresa, nota, tags, consentimento e data, e os dados do espaço.
{
"event": "testimonial.approved",
"testimonial": {
"id": "cl9x8...",
"type": "text",
"text": "Adorei o produto!",
"authorName": "Marta Oliveira",
"authorCompany": "Órbita",
"rating": 5,
"tags": ["pós-compra"],
"createdAt": "2026-08-04T18:03:00.000Z"
},
"space": { "id": "spc_1", "name": "Órbita" }
}
Para depoimentos em vídeo ou áudio, o payload traz o tipo e a URL pública do arquivo, o destino decide o que fazer com ele.
Assinatura: você sabe que veio do Muralvivo
Toda entrega chega com o header X-Muralvivo-Signature: HMAC-SHA256 do corpo bruto da requisição usando o segredo da sua conta. Qualquer destino, um webhook do Zapier, uma função no n8n, um endpoint seu, pode verificar a assinatura e descartar chamadas que não sejam do Muralvivo.
E se o destino estiver fora do ar?
O Muralvivo tenta até 3 vezes (imediata, 1s e 5s) para falhas de rede e erros 5xx. Erros 4xx não são repetidos: o destino rejeitou o payload e continuará rejeitando. Cada tentativa fica no histórico de entregas do painel, você vê o evento, o status HTTP e o erro, e corrige o destino sem caçar logs.
O feed JSON: o que já está no mural, por código
O segundo primitivo é um endpoint somente leitura que expõe os depoimentos aprovados e no mural, mais recentes primeiro:
GET /api/murais/{sua-embed-key}/testimonials.json
A chave é a mesma do seu widget, quem já usa o embed não configura nada novo. Sem a chave, 404. Pendentes e reprovados nunca aparecem, em nenhuma das duas pontas.
Três fluxos que ficam prontos em minutos
- CRM: cada aprovação cria ou atualiza o registro do cliente com a prova social, a equipe de vendas encontra relatos por segmento sem procurar em conversas antigas.
- Automação de marketing: o depoimento entra na fila de campanha, e-mail ou página de produto no momento em que é aprovado, como já detalhamos em como usar depoimentos na página de pricing.
- Painel interno: o feed JSON alimenta um dashboard ou site próprio com o acervo revisado, sem depender do widget.
Onde configurar
Em Painel → Integrações: cole a URL do webhook, copie o segredo de assinatura, envie um evento de teste (test.ping) e acompanhe o histórico de entregas. A página pública de integrações documenta o payload e as verificações.
Os dois primitivos estão disponíveis em todos os planos ativos, sem custo adicional. A integração para de ser um "workaround do Zapier" e vira parte do produto, o depoimento aprovado sai do Muralvivo no momento em que vira prova social.