Webhooks Ghost : Automatisation avec Zapier, Make, Slack & Webhooks Natives

Les webhooks et les intégrations natives de Ghost sont des outils essentiels pour connecter votre site à d'autres services. Si vous gérez un blog, une newsletter ou un site de membership pour une petite entreprise ou une startup, ces fonctionnalités vous permettent d'automatiser des tâches répétitives. Par exemple, envoyez une notification Slack quand un nouveau membre s'inscrit, ou déclenchez une action dans Zapier dès qu'un article est publié. Dans cet article, nous couvrons les bases pour débutants, avec des étapes simples et des exemples concrets. Tout est basé sur la documentation officielle de Ghost en 2025.

Qu'est-ce qu'un webhook dans Ghost ?

Un webhook est une notification automatique envoyée par Ghost vers une URL que vous définissez. Quand un événement se produit sur votre site – comme la publication d'un post ou l'ajout d'un membre – Ghost envoie une requête POST à cette URL avec les détails de l'événement au format JSON. Cela évite de devoir vérifier manuellement votre site pour des mises à jour.

Dans Ghost, les webhooks sont gérés via l'Admin API ou directement dans l'interface admin. Ils sont utiles pour les SMB et startups qui veulent scaler sans équipe technique dédiée. Par exemple, une startup en croissance peut utiliser un webhook pour synchroniser les nouveaux abonnés avec un outil CRM comme HubSpot.

Ghost supporte une large gamme d'événements. Voici la liste complète en 2025 :

  • Pour les posts : post.added (nouveau post créé), post.edited (post modifié), post.published (post publié), post.published.edited (post publié modifié), post.unpublished (post dépublié), post.deleted (post supprimé), post.scheduled (post programmé), post.unscheduled (programmation annulée), post.rescheduled (reprogrammation).
  • Pour les pages : Similaires aux posts – page.added, page.edited, page.published, etc.
  • Pour les tags : tag.added, tag.edited, tag.deleted, post.tag.attached (tag ajouté à un post), post.tag.detached (tag retiré d'un post), et les équivalents pour les pages.
  • Pour les membres : member.added (nouveau membre), member.edited (membre modifié), member.deleted (membre supprimé).
  • Général : site.changed (changement de contenu ou de paramètres).

Le payload envoyé par le webhook inclut les données de l'événement, comme l'ID du post ou les détails du membre. Pour la sécurité, Ghost peut générer un secret pour signer les requêtes, mais cela reste optionnel.

Comment configurer un webhook dans Ghost Admin

Pour les débutants, commencez par l'interface admin de Ghost – c'est plus simple que l'API. Allez dans Settings > Advanced > Integrations > Add custom integration. Donnez un nom à votre intégration, puis cliquez sur Add webhook.

Étapes détaillées :

  1. Choisissez l'événement : Sélectionnez par exemple member.added pour notifier sur les nouveaux inscrits.
  2. Entrez l'URL cible : C'est l'adresse où Ghost enverra la notification, comme https://hooks.slack.com/services/votre-token pour Slack, ou une URL Zapier.
  3. Ajoutez un nom et un secret (optionnel) : Le nom aide à identifier le webhook. Le secret permet de vérifier que la requête vient bien de Ghost.
  4. Sauvegardez : Ghost teste l'URL en envoyant une requête de vérification. Si vous obtenez un code 2xx (succès), c'est bon.

Une fois créé, le webhook apparaît dans la liste des intégrations. Vous pouvez le voir actif, avec la date du dernier déclenchement et d'éventuelles erreurs. Si une notification échoue (par exemple, URL inaccessible), Ghost réessaie quelques fois avant de marquer comme échoué.

Pour une startup, testez avec un événement simple comme post.published : publiez un brouillon et vérifiez si votre outil externe reçoit la notif.

Gérer les webhooks via l'Admin API

Si vous automatisez plus, utilisez l'Admin API de Ghost. Vous avez besoin d'une clé admin (générée dans Integrations > Add custom integration avec permissions "Webhooks").

Créer un webhook

Utilisez l'endpoint POST /admin/webhooks/. Corps de la requête :

{
  "webhooks": [{
    "event": "member.added",
    "target_url": "https://votre-url.com/webhook",
    "name": "Nouveau membre",
    "secret": "votre-secret-optionnel",
    "api_version": "v5.0"  // Version pour le payload
  }]
}

Exemple en cURL :

curl -X POST https://votre-site.com/ghost/api/admin/webhooks/ \
  -H "Authorization: Ghost votre-cle-admin" \
  -H "Content-Type: application/json" \
  -d '{"webhooks":[{"event":"member.added","target_url":"https://example.com","name":"Test"}]}'

Réponse : Un objet avec l'ID du webhook créé.

Mettre à jour un webhook

Endpoint : PUT /admin/webhooks/{id}/.
Exemple :

{
  "webhooks": [{
    "event": "post.published.edited",
    "name": "Post mis à jour"
  }]
}

Seuls les champs fournis sont modifiés.

Supprimer un webhook

Endpoint : DELETE /admin/webhooks/{id}/. Simple requête DELETE avec auth. Pas de corps nécessaire.

Note : Il n'y a pas d'endpoint pour lister les webhooks individuellement via API ; utilisez l'admin pour ça.

Pour les erreurs courantes : Vérifiez l'auth (Bearer token), l'URL accessible, et les logs dans Ghost Admin.

Exemples pratiques d'automatisation

Avec Slack

Intégrez Slack pour des notifications instantanées. Créez un webhook Slack via leur app (obtenez une URL comme https://hooks.slack.com/services/...). Dans Ghost, configurez un webhook sur member.added pointant vers cette URL. Le payload JSON sera posté dans un channel : vous verrez le nom du membre et son email.

Pour une startup, ça aide à célébrer chaque nouvelle inscription en équipe.

Avec Zapier

Zapier connecte Ghost à 5000+ apps sans code. Créez un Zap avec trigger "New Member" (basé sur webhook Ghost). Actions possibles : ajouter à Google Sheets, envoyer un email via Gmail, ou tagger dans Trello.

Étapes :

  1. Dans Zapier, choisissez Ghost comme trigger.
  2. Fournissez votre clé Content API (pour lecture) ou Admin API.
  3. Testez avec un événement réel.
  4. Ajoutez actions : par exemple, "Envoyer SMS via Twilio pour nouveaux payants".

En 2025, Zapier supporte tous les événements Ghost listés. Coût : Gratuit pour basics, payant pour volumes élevés – idéal pour SMB.

Avec Make (ex-Integromat)

Make est plus visuel que Zapier. Créez un scénario avec module "Ghost Webhook" comme trigger. Il capture le payload et le route vers HTTP, email, etc. Avantage : Meilleur pour les flux complexes, comme "Si membre payant, ajoute à Mailchimp et notifie Slack".

Exemple : Sur post.published, Make peut déployer un site statique via Netlify.

Intégrations natives de Ghost

Ghost propose des intégrations prêtes à l'emploi dans Settings > Integrations. Voici les clés pour l'automatisation :

FirstPromoter pour les referrals

FirstPromoter tracke les affiliés et referrals. Trouvez votre Account ID dans FirstPromoter > Settings > Integrations. Collez-le dans Ghost Admin > Integrations > FirstPromoter > Save.

Bénéfices : Lancez un programme referral pour récompenser les membres qui amènent du trafic. Pour une startup, offrez des mois gratuits aux parrains. Ça booste la croissance organique sans frais extra.

Recommendations

Cette feature (en beta stable en 2025) permet de recommander d'autres sites Ghost à vos membres. Setup : Settings > Growth > Recommendations > Add recommendation. Entrez l'URL du site recommandé, titre et description.

Ça s'affiche en pop-up lors des inscriptions. Pas d'API directe, mais liez à /portal/recommendations dans votre navigation. Use case : Automatisez la cross-promo via webhooks – par exemple, sur member.added, envoyez un email avec le lien recommendations.

Stats basiques disponibles pour tracker les clics.

Impersonate members

Pour tester l'expérience membre, allez dans Members > Profil > Gear icon > Impersonate. Ça génère un lien unique pour vous connecter comme ce membre.

Utile pour debug : Vérifiez si un paiement échoue du point de vue user. Pas d'intégration API directe, mais combinez avec webhooks pour logger des sessions. Sécurité : Lien à usage unique.

Autres natives : Stripe pour paiements, Mailgun/SendGrid pour emails – mais focus ici sur automation.

Bonnes pratiques et dépannage

  • Sécurité : Utilisez toujours HTTPS pour les URLs. Activez le secret pour valider les signatures (vérifiez HMAC-SHA256 du payload).
  • Tests : Utilisez ngrok pour exposer une URL locale pendant le dev.
  • Limites : Ghost retry 3x sur échecs ; monitor dans Admin. Pas de rate limits stricts, mais évitez les floods.
  • Dépannage : Si pas de notif, checkez les logs Ghost (CLI : ghost log). Vérifiez que l'URL répond 2xx vite (<5s).

Pour SMB/startups : Commencez petit – un webhook Slack pour les milestones. Scalez vers Zapier pour les workflows business.

Conclusion

Les webhooks et intégrations Ghost simplifient l'automatisation sans complexité. En 2025, avec des événements riches et des outils comme Zapier/Make, vous connectez votre site au web en minutes. Testez un webhook aujourd'hui : créez-en un pour member.added et voyez la magie opérer.