# Clerk + Brew

Déclenchez des automatisations Brew à partir des événements webhook de Clerk : inscriptions d’utilisateurs, changements d’organisation, abonnements payants et ajouts à la liste d’attente.

URL canonique : https://brew.new/fr/browse/integrations/clerk

- Sens des données : Données entrantes
- Connexion : Secret de webhook
- Déclencheurs d’authentification

## Fonctionnalités disponibles

- **Déclencheurs par événement** : Déclenchez des automatisations Brew à partir de 13 événements webhook Clerk, dans les catégories utilisateur, organisation, facturation et liste d’attente.

## Transformez vos événements Clerk en e-mails utiles

Connectez Clerk pour lancer des e-mails à l’image de votre marque quand quelqu’un s’inscrit, rejoint une organisation, souscrit un abonnement Clerk Billing ou s’ajoute à votre liste d’attente. Clerk signe chaque webhook, et Brew transforme 13 types d’événements en déclencheurs d’automatisation.

Clerk reste responsable de la connexion, des organisations et de la facturation. Brew se contente d’écouter les événements : il ne peut ni modifier les utilisateurs, ni créer d’organisations, ni facturer d’abonnements.


## Ce que vous pouvez créer

- E-mails de bienvenue : l’événement user.created est envoyé quand un nouvel utilisateur s’inscrit. Les champs username, imageUrl et lastSignInAt sont disponibles en plus du nom.
- Onboarding des équipes : l’événement organizationMembership.created contient organizationName, organizationSlug et roleName pour le nouveau membre, qu’il ait accepté une invitation ou qu’il ait été ajouté directement. L’événement organizationInvitation.accepted est lui aussi envoyé quand une invitation est acceptée : choisissez donc un seul déclencheur pour éviter deux e-mails de bienvenue.
- Relances d’invitation : les événements organizationInvitation.created, organizationInvitation.accepted et organizationInvitation.revoked ont pour destinataire l’adresse invitée et contiennent roleName, status et expiresAt. Ils ne contiennent ni le nom de l’organisation, ni l’auteur de l’invitation, ni lien d’acceptation.
- E-mails de bienvenue pour les abonnés : l’événement subscription.created contient planName, planSlug, planAmount, currency, periodStart et periodEnd.
- Rappels de fin d’essai : l’événement subscriptionItem.freeTrialEnding est envoyé peu avant qu’un essai gratuit Clerk Billing ne devienne un abonnement payant, et il contient planName, planAmount, currency et periodEnd.
- Avis de retard de paiement : l’événement subscriptionItem.pastDue est envoyé quand un élément d’abonnement accuse un retard de paiement. Ajoutez un lien vers votre propre page de facturation.
- Relances après une résiliation ou un essai abandonné : l’événement subscriptionItem.canceled est envoyé quand un élément est résilié. L’événement subscriptionItem.abandoned signifie généralement qu’un essai s’est terminé sans moyen de paiement enregistré.
- Confirmations d’inscription sur liste d’attente : l’événement waitlistEntry.created est envoyé quand une adresse e-mail est ajoutée à votre liste d’attente Clerk.

## Les événements d’organisation nécessitent un créateur connu

L’événement organization.created ne contient aucune adresse e-mail. Brew recherche l’ID utilisateur du créateur parmi les identités qu’il a déjà vues dans des événements Clerk antérieurs, sur la connexion actuelle. S’il trouve une adresse e-mail réelle, l’événement est traité. Sinon, Brew enregistre l’événement avec un destinataire non résolu, ne crée aucun contact et ne lance aucune automatisation.

Abonnez aussi l’endpoint à user.created, pour que Brew puisse connaître l’adresse des créateurs. Pour un e-mail qui doit parvenir à une personne à chaque fois, utilisez organizationMembership.created, qui contient l’adresse du membre.


## Configurer Clerk dans Brew

- Ouvrez Intégrations, choisissez Clerk, puis cliquez sur « Générer l’URL de webhook ».
- Dans le tableau de bord Clerk, ouvrez Webhooks et ajoutez un endpoint avec l’URL Brew.
- Abonnez l’endpoint aux 13 événements pris en charge des groupes user, organization, organizationInvitation, organizationMembership, paymentAttempt, subscription, subscriptionItem et waitlistEntry, puis créez-le.
- Affichez le secret de signature de l’endpoint, qui commence par whsec_, collez-le dans Brew, puis cliquez sur « Connecter ». Brew vérifie chaque envoi selon la spécification Standard Webhooks (Svix).
- Dans Clerk, ouvrez l’onglet Testing de l’endpoint, choisissez user.created, puis cliquez sur Send Example. Dans Brew, le statut passe de « En attente d’un événement de test » à « Connecté ». Un exemple sert uniquement à vérifier le webhook : Brew n’ajoute aucun contact et ne lance aucune automatisation.
- La connexion crée un déclencheur pour chacun des 13 événements. Il n’existe pas d’interrupteur pour activer ou désactiver un événement.
- Créez une automatisation, sélectionnez son événement Clerk et envoyez un test tant qu’elle est encore en brouillon. Seules les automatisations actives s’exécutent quand un événement correspondant arrive.

## Événements Clerk pris en charge

Brew prend en charge les 13 types d’événements suivants :

- user.created
- organization.created
- organizationInvitation.created
- organizationInvitation.accepted
- organizationInvitation.revoked
- organizationMembership.created
- paymentAttempt.created
- subscription.created
- subscriptionItem.freeTrialEnding
- subscriptionItem.pastDue
- subscriptionItem.canceled
- subscriptionItem.abandoned
- waitlistEntry.created

## Synchronisation des contacts et personnalisation

Chaque événement vérifié qui contient une adresse e-mail réelle crée ou met à jour un contact Brew, identifié par son adresse e-mail, qu’une automatisation utilise l’événement ou non. Lorsque les données sont présentes, Brew renseigne le prénom, le nom et clerk_user_id.

L’événement user.created renseigne aussi clerk_username, clerk_image_url, clerk_signed_up_at et clerk_last_sign_in_at. Les événements d’invitation et d’adhésion renseignent clerk_organization_id, clerk_org_role et clerk_org_role_name. Les invitations ajoutent clerk_org_invitation_status, et les adhésions ajoutent clerk_organization_name et clerk_organization_slug.

Les événements de facturation renseignent clerk_subscription_status et clerk_plan_name, et certains ajoutent clerk_plan_slug, clerk_subscription_period_end ou clerk_is_trialing. L’événement paymentAttempt.created renseigne clerk_last_payment_attempt_status et clerk_last_payment_attempt_at. L’événement waitlistEntry.created renseigne clerk_waitlist_status.

Pour les balises de fusion, utilisez le schéma de payload déclaré par l’événement sélectionné. Tous les événements incluent email, firstName, lastName et createdAt. Les autres champs, comme planName, planAmount, roleName, organizationName et grandTotalFormatted, dépendent de l’événement. Les champs planAmount et grandTotalAmount sont exprimés dans la plus petite unité de la devise : 2000 correspond donc à 20,00 $ en USD. Les horodatages sont exprimés en secondes Unix.

Les ID des objets Clerk, comme les ID d’utilisateur, d’organisation et d’abonnement, ne sont pas des balises de fusion. L’ID utilisateur est enregistré sur le contact dans clerk_user_id.

Un compte Clerk ne vaut pas consentement aux e-mails marketing. Enregistrez le consentement lors de l’inscription et vérifiez-le avant tout envoi promotionnel.


## Peut-on envoyer un e-mail de paiement échoué avec paymentAttempt.created ?

Pas de manière fiable. Brew ne reçoit que paymentAttempt.created, et non les mises à jour ultérieures de la tentative. Son champ status peut valoir pending, paid ou failed, mais un paiement qui échoue après la création de la tentative parvient à Brew sous la forme d’un événement non pris en charge. Pour les paiements manqués, utilisez subscriptionItem.pastDue. Pour indiquer un total dans le texte de l’e-mail, utilisez grandTotalFormatted, qui contient une valeur déjà formatée, comme $22.00.


## Pourquoi un événement apparaît-il sans qu’aucun e-mail ne soit envoyé ?

Recevoir un événement et envoyer un e-mail sont deux étapes distinctes. Vérifiez qu’une automatisation correspondante est active, puis contrôlez ses filtres, son historique d’exécution, l’éligibilité du destinataire et le domaine d’envoi. Un envoi via Send Example vérifie le webhook mais ne lance jamais d’automatisation, et un événement organization.created sans créateur connu est enregistré comme non résolu.


## Limites et dépannage

- Brew ne peut ni créer ni modifier les utilisateurs, organisations ou abonnements Clerk.
- Seuls les 13 événements listés lancent des automatisations. Les autres événements Clerk, comme les mises à jour et les suppressions d’utilisateurs, sont enregistrés comme non pris en charge.
- Si Clerk signale une erreur 401 à chaque envoi, le secret de signature enregistré dans Brew ne correspond pas au secret de l’endpoint dans Clerk. Affichez le secret actuel dans Clerk et reconnectez Clerk avec ce secret.
- Brew exige un secret de signature qui commence par whsec_ et compte au moins 24 caractères.
- Vérifiez le consentement et la finalité de chaque e-mail. Synchroniser vos utilisateurs Clerk n’autorise pas les envois promotionnels.

## Sources et guides de configuration

- [Guide de configuration de Clerk](https://docs.brew.new/integrations/import/clerk)
- [Créer une automatisation](https://docs.brew.new/create-emails/build-an-automation)
- [Balises de fusion](https://docs.brew.new/create-emails/merge-tags)
- [Ce que vous pouvez envoyer avec Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Présentation des webhooks Clerk](https://clerk.com/docs/guides/development/webhooks/overview)

## Voir aussi

- [Toutes les intégrations](https://brew.new/fr/browse/integrations.md)
- [Inscription](https://brew.new/fr/sign-up.md)
- Site web : https://brew.new
