Clerk
Usuários, lista de espera e logins do Clerk viram contatos e eventos, com assinatura Svix.
Com a integração do Clerk, cada usuário vira contato, a lista de espera também, e cadastro, atualização, exclusão e (se quiser) cada login viram eventos.
#Crie a conexão
No painel, abra Integrações › Seu app e clique em Conectar no cartão do Clerk. A conexão tem a sua URL, que você cola no provedor, e mostra o passo a passo na própria tela.
https://api.postal.so/integrations/crm/01a1c2d3-e4f5-7a6b-8c9d-0e1f2a3b4c5d/webhook
No Clerk, abra Configure › Webhooks, clique em Add Endpoint, cole a URL e assine os eventos da tabela. Na página do endpoint, revele o Signing Secret (whsec_…) e cole na conexão.
Como a Postal confere
O Clerk assina com Standard Webhooks (Svix): os cabeçalhos svix-id, svix-timestamp e svix-signature, com no máximo 5 minutos.
As integrações de app contam no limite do plano (app_integrations). Fora do plano, os cartões aparecem bloqueados com o botão Fazer upgrade.
#Eventos
| Evento do Clerk | Evento na Postal | Contato |
|---|---|---|
user.created | clerk.user.created | Criado com o e-mail principal, nome e sobrenome; o ID do Clerk vira external_id. |
user.updated | clerk.user.updated | Atualizado pelo ID do Clerk (inclusive a troca de e-mail). |
user.deleted | clerk.user.deleted (exclusão) | Pelo ID do Clerk; nunca cria contato. |
waitlistEntry.created, waitlistEntry.updated | clerk.waitlistEntry.created, …updated | Só com o e-mail. Quando a pessoa vira usuária, o ID entra no mesmo contato. |
session.created (desligado por padrão) | clerk.session.created | Um login: só atualiza contatos que já existem. |
Para as exclusões, a conexão diz o que fazer com o contato: só registrar o evento (padrão), descadastrar o contato (ele continua na audiência, sem receber marketing) ou excluir o contato (sem evento, já que o contato some). Uma exclusão nunca cria um contato que a Postal não tinha.
#Configurações da conexão
- Eventos: só os marcados viram contato e evento; os outros são ignorados (a resposta ainda é
202). - Sincronizar o nome: atualiza nome e sobrenome do contato com o que vier do provedor.
- Adicionar ao segmento e Inscrever no tópico: um segmento estático e um tópico para cada contato que chega.
- Quando o usuário for excluído no app: só registrar, descadastrar ou excluir o contato.
Tudo que a conexão muda no contato leva a origem crm:<id da conexão> (last_change_source), e cada entrega aparece no registro da conexão, com o resultado de cada pessoa. Uma entrega repetida pelo provedor (mesmo ID) não é processada duas vezes.
#Dispare automações
Cada evento fica no contato com o nome clerk.user.created e as propriedades da tabela acima. Na tela da conexão, o botão Criar automação ao lado de cada evento abre uma automação nova com o gatilho Evento recebido já preenchido. Pelos endpoints de automações, o gatilho é {"type": "event", "event": "clerk.user.created"}.
Exemplo: boas-vindas no cadastro e, para a lista de espera, um e-mail de “você entrou” com o segmento “Lista de espera” escolhido na conexão. Nos e-mails, as propriedades do evento entram como {{event.amount}} nos passos ou como variáveis do template ({{{amount}}}).
#Testar
No endpoint do Clerk, a aba Testing manda um exemplo de user.created. A resposta da Postal aparece em Message Attempts, e o contato, na audiência.