Les webhooks permettent à Surfer de notifier votre serveur au moment où quelque chose se produit, comme la fin du traitement d'un Éditeur de contenu ou la fin d'une exécution d'Auto-optimisation, afin que vous n'ayez pas à sonder les mises à jour en continu.
La configuration des webhooks est gérée par l'équipe d'assistance. Pour commencer :
Configurez un point de terminaison HTTPS de votre côté, qui accepte les requêtes POST et répond avec HTTP 200 OK.
Contactez l'assistance Surfer par email ou chat en direct et partagez l'URL.
L'assistance enregistrera le point de terminaison et vous enverra une Verification-Key à utiliser pour authentifier les requêtes entrantes de votre côté.
Une fois configuré, Surfer enverra une requête POST à votre point de terminaison chaque fois qu'un événement pris en charge se déclenche. Chaque requête inclut un en-tête Verification-Key et un corps JSON.
Tous les événements webhook suivent la même enveloppe :
{
"id": 123,
"type": "event.name.here",
"timestamp": "2024-06-01T12:00:00Z",
"payload": {
...
}
}
Champ | Type | Description |
| entier | Identifiant de notification unique |
| chaîne de caractères | Nom de l'événement (voir la liste complète ci-dessous) |
| chaîne de caractères | Horodatage UTC ISO8601 du moment où l'événement s'est produit |
| objet | Données spécifiques à l'événement (varient selon le type d'événement) |
Se déclenche après que POST /api/v2/workspaces/{workspace_id}/content_editors termine le traitement.
Événement | Quand il se déclenche |
| L'éditeur de contenu est prêt à être utilisé |
| Le traitement a échoué |
Champs de charge utile : draft_id (entier), permalink_hash (chaîne de caractères)
{
"id": 123,
"type": "content_editor.initialization.completed",
"timestamp": "2024-06-01T12:00:00Z",
"payload": {
"draft_id": 5632898,
"permalink_hash": "kKi7n3pkRk7Gw5cxKDiBAbCAybnDTt2z"
}
}
Se déclenche après que vous avez mis à jour le contenu d'un Éditeur de contenu via l'API.
Événement | Quand il se déclenche |
| Score mis à jour après une modification de contenu |
Champs de charge utile : draft_id (entier), permalink_hash (chaîne de caractères), content_score (entier)
{
"id": 124,
"type": "content_editor.content_score.recalculated",
"timestamp": "2024-06-01T12:05:00Z",
"payload": {
"draft_id": 5632898,
"permalink_hash": "kKi7n3pkRk7Gw5cxKDiBAbCAybnDTt2z",
"content_score": 74
}
}
Se déclenche pendant et après la génération d'articles Surfer AI.
Événement | Quand il se déclenche |
| Article complet généré |
| Le plan est prêt et en attente d'examen (uniquement quand |
| La génération a échoué |
Champs de charge utile : draft_id (entier), permalink_hash (chaîne de caractères)
Se déclenche après la fin, l'échec ou l'annulation d'une exécution d'Auto-optimisation.
Événement | Quand il se déclenche |
| Exécution terminée |
| Exécution échouée |
| L'exécution a été annulée |
Champs de charge utile : job_id (entier), draft_id (entier), result (chaîne de caractères, uniquement sur completed)
Le champ result vaut soit "optimized" (le contenu a été modifié), soit "nothing_to_optimize" (le contenu était déjà bien optimisé).
{
"id": 125,
"type": "content_editor.auto_optimize.completed",
"timestamp": "2024-06-01T12:10:00Z",
"payload": {
"job_id": 456,
"draft_id": 5632898,
"result": "optimized"
}
}
Événement | Quand il se déclenche |
| Le Score SEO a été calculé |
| Le calcul du Score SEO a échoué |
Événement | Quand il se déclenche |
| Score de recherche IA calculé |
| Échec du calcul du score de recherche IA |
Événement | Quand il se déclenche |
| Génération du plan terminée |
| Échec de la génération du plan |
Événement | Quand il se déclenche |
| Concurrents supplémentaires chargés |
| Le chargement des concurrents supplémentaires a échoué |
Événement | S'applique à |
| V1 + V2 |
| V1 + V2 |
| V1 + V2 |
| V1 + V2 |
| V1 + V2 |
| V1 + V2 |
| V1 + V2 |
| V1 + V2 |
| V1 + V2 |
| V2 uniquement |
| V2 uniquement |
| V2 uniquement |
| V2 uniquement |
| V2 uniquement |
| V2 uniquement |
| V2 uniquement |
| V2 uniquement |
Documentation de l'API Surfer (v1)