Intégrations

Webhooks

Recevez une requête POST JSON à chaque clic enregistré. Le même événement que celui auquel s'abonnent les REST Hooks de Zapier.

Sur Growth et Ultimate, Letlink envoie du JSON en POST à chaque URL HTTPS enregistrée sur l'espace de travail lorsqu'un clic est enregistré. Les propriétaires et admins ajoutent ou suppriment des URL sous Intégrations → Webhooks. Les membres peuvent voir la liste mais pas la modifier.

Ajouter un endpoint

  1. Mettez en place une URL HTTPS qui accepte les requêtes POST avec Content-Type: application/json. HTTP est refusé.
  2. Collez-la dans Intégrations → Webhooks et enregistrez. Le nom de l'événement est link_visited.
  3. Cliquez sur l'un de vos liens courts (depuis un réseau qui n'a pas atteint le plafond mensuel). Vous devriez voir une requête en quelques secondes — l'envoi est mis en file d'attente, et non effectué pendant la redirection.

Vous pouvez aussi vous abonner via l'API : POST /api/v1/hooks/subscribe avec target_url et un event facultatif (par défaut link_visited). Les REST Hooks de Zapier appellent cette même paire de routes subscribe/unsubscribe.

Données

Le corps est l'objet de visite canonique. Les champs UTM ou boutique vides valent null.

link_visited
{
  "visit_id": 42,
  "visit_time": "2026-09-09T18:01:22+00:00",
  "link_type": "utm",
  "link_shortcode": "summer",
  "link_domain": "letl.ink",
  "link_destination_url": "https://example.com/a",
  "utm_source": "newsletter",
  "utm_campaign": "sep",
  "utm_medium": "email",
  "google_play_app_url": null,
  "google_play_utm_source": null,
  "google_play_utm_campaign": null,
  "app_store_app_url": null,
  "app_store_ct": null,
  "instagram_username": null,
  "visitor_ip": "203.0.113.10",
  "visitor_browser": "Chrome",
  "visitor_device_type": "desktop",
  "visitor_referrer": "https://mail.example.com/",
  "visitor_variation": "hero-b"
}

Quand un webhook ne se déclenche pas

  • L'espace de travail est sur Free ou Solo (allowsWebhooks est désactivé).
  • Le plafond mensuel de clics suivis est déjà atteint — la redirection a toujours lieu, mais aucune ligne n'est enregistrée, donc rien n'est envoyé.
  • Une limite de visites par appareil a renvoyé 429 avant l'enregistrement d'un clic.
  • Une règle d'accès par pays a refusé le visiteur. Les visites bloquées ne sont jamais enregistrées comme des clics.
  • L'URL cible est hors service. L'envoi est fait au mieux et ne doit jamais retarder le visiteur ; les envois échoués ne sont pas relancés depuis cette page.

Qui reçoit quoi

Les hooks sont enregistrés par utilisateur. Les URL link_visited de chaque membre sont notifiées pour les clics sur n'importe quel lien de l'espace de travail. Si deux collègues ont chacun abonné Zapier, les deux Zaps s'exécutent. Supprimez les URL inutilisées pour qu'un Catch Hook oublié ne continue pas de se déclencher.

Vous avez encore des questions ?

Nous sommes là pour vous aider. Contactez-nous et nous vous répondrons dès que possible.