Integrações

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.

URL da conexão (exemplo)
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 ClerkEvento na PostalContato
user.createdclerk.user.createdCriado com o e-mail principal, nome e sobrenome; o ID do Clerk vira external_id.
user.updatedclerk.user.updatedAtualizado pelo ID do Clerk (inclusive a troca de e-mail).
user.deletedclerk.user.deleted (exclusão)Pelo ID do Clerk; nunca cria contato.
waitlistEntry.created, waitlistEntry.updatedclerk.waitlistEntry.created, …updatedSó com o e-mail. Quando a pessoa vira usuária, o ID entra no mesmo contato.
session.created (desligado por padrão)clerk.session.createdUm 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.