Novos leads no seu próprio CRM
Assim que alguém conclui o formulário, o seu código cria o lead, define um responsável e manda o primeiro e-mail.
Usar o modelo de captação de leadsCada resposta concluída chega ao seu app, à sua automação ou à sua API como JSON assinado. Você configura uma vez, valida cada requisição e acompanha todos os envios no histórico.
Incluído nos planos Free, Pro e Business.
Leva cerca de um minuto
O que vem em cada evento
Todo evento segue o mesmo formato documentado, com IDs estáveis para guardar e rótulos legíveis para mostrar.
Vale saber
Verifique uma requisição em Node
// npm install standardwebhooks
import { Webhook } from "standardwebhooks";
const wh = new Webhook(process.env.TRULYFORM_WEBHOOK_SECRET);
const event = wh.verify(rawBody, {
"webhook-id": req.headers["webhook-id"],
"webhook-timestamp": req.headers["webhook-timestamp"],
"webhook-signature": req.headers["webhook-signature"],
}); // throws if the signature or timestamp is invalid
Ou sem biblioteca, em PHP
$key = base64_decode(substr($secret, strlen("whsec_")));
$expected = "v1," . base64_encode(hash_hmac("sha256", "$id.$timestamp.$rawBody", $key, true));
$valid = abs(time() - (int) $timestamp) < 300
&& in_array($expected, explode(" ", $signatureHeader), true);
Ideias para começar
Assim que alguém conclui o formulário, o seu código cria o lead, define um responsável e manda o primeiro e-mail.
Usar o modelo de captação de leadsUm cadastro de cliente concluído vira conta, projeto e mensagem de boas-vindas no seu app.
Ver o modelo de cadastro de clienteMande notas e comentários para o seu data warehouse ou painel, com IDs de campo estáveis como referência.
Usar o modelo de feedback de clientesPerguntas frequentes
Ainda tem dúvidas? Mande uma mensagem ou escreva para support@trulyform.com.
Sim. Use a URL de webhook de entrada da sua automação ou um endpoint criado por você. Os serviços de automação têm contas e preços próprios. O endpoint precisa usar HTTPS público na porta 443, aceitar requisições POST com JSON e responder com status 2xx em até 10 segundos. Redirecionamentos não são seguidos.
Cada evento traz um ID de evento estável, a versão do schema, os identificadores da sua organização, do formulário e da versão publicada, o horário de conclusão, um link para a resposta no trulyform, as respostas com IDs de campo estáveis e rótulos legíveis, os campos ocultos e os valores calculados com seus nomes. Respostas numéricas vêm como strings decimais, sem perda de precisão. Respostas de arquivo trazem nome, tipo, tamanho e um link que abre o arquivo para membros logados da sua organização; o conteúdo dos arquivos e as credenciais de armazenamento nunca são enviados.
O trulyform assina cada requisição no formato aberto Standard Webhooks, então as bibliotecas oficiais para Node, Python, PHP, Go, Ruby, Java e outras linguagens fazem a verificação por você. Cada requisição traz os cabeçalhos webhook-id, webhook-timestamp e webhook-signature. A assinatura é v1, seguida de um HMAC-SHA256 em base64 de id.timestamp.body, com o segredo do seu endpoint como chave (a parte em base64 depois de whsec_). Rejeite timestamps com mais de cinco minutos e ignore IDs de evento que você já processou.
Falhas de conexão, timeouts, limites de requisição (408, 425, 429) e erros de servidor geram novas tentativas depois de cerca de um minuto, cinco minutos, trinta minutos, duas horas e doze horas. O cabeçalho Retry-After é respeitado. Outras respostas 4xx e redirecionamentos falham na hora. Cada tentativa aparece no histórico de envios do formulário, um envio com falha pode ser reenviado manualmente, e quem criou a integração e o proprietário da sua organização recebem um único e-mail quando ela começa a falhar. As novas tentativas reaproveitam o payload e o ID de evento originais, então um receptor que descarta duplicatas pelo webhook-id processa cada resposta uma única vez.
Sim. Os endpoints são adicionados uma vez na página Integrações da sua organização, cada um com o próprio segredo de assinatura, e qualquer formulário pode enviar para um ou mais deles. Desativar uma integração cancela o que ainda estiver na fila para ela; remover um endpoint interrompe os envios de todos os formulários que o usam.
Não. O evento é enviado quando a resposta é concluída; responder perguntas isoladas não envia nada. Eventos de teste têm o rótulo integration.test, trazem dados de exemplo e nunca contam como respostas.
Formulários bonitos com webhooks assinados, reenvio automático e boa documentação. Incluído em todos os planos.
Comece grátis