Aller au contenu principal
3 min de lecture

Webhooks

Zenovay utilise les webhooks en interne pour le traitement des paiements et la gestion des abonnements. Cette page explique comment fonctionnent les webhooks dans Zenovay et comment créer des intégrations en utilisant l'API externe.

Comment Zenovay utilise les webhooks

Zenovay traite les webhooks entrants provenant des fournisseurs de paiement et des services de surveillance. Ce sont des webhooks système internes qui gèrent la facturation des abonnements et les contrôles de santé.

Sources de webhooks entrants

SourceObjectif
StripeGestion des abonnements, traitement des paiements, finalisation des paiements
Surveillance de la disponibilitéDéclencheurs de contrôle de santé provenant des services de surveillance externes

Ces webhooks sont traités en interne par l'API Zenovay. Pour les webhooks sortants et les clés d'API d'équipe, allez à Settings → Security → API keys.

Page Settings → Security → API keys affichant les tokens personnels et la section Webhooks
Les webhooks sont configurés sous Settings → Security → API keys.

Création d'intégrations

Vous pouvez créer des intégrations en utilisant l'API externe pour extraire les données d'analyse dans vos propres systèmes.

Interrogation avec l'API externe

Utilisez l'API externe pour récupérer périodiquement les données d'analyse :

Polling ExampleJavaScript
const API_KEY = process.env.ZENOVAY_API_KEY;
const WEBSITE_ID = process.env.ZENOVAY_WEBSITE_ID;

async function checkAnalytics() {
const response = await fetch(
  `https://api.zenovay.com/api/external/v1/analytics/${WEBSITE_ID}?timeRange=24h`,
  {
    headers: { 'X-API-Key': API_KEY }
  }
);

const data = await response.json();

// Process the data
if (data.totalVisitors > threshold) {
  await sendNotification(data);
}
}

// Poll every 5 minutes
setInterval(checkAnalytics, 5 * 60 * 1000);

Nombre de visiteurs en direct

Le point de terminaison en direct public ne nécessite pas de clé API et peut être interrogé plus fréquemment :

Live VisitorsJavaScript
async function getLiveVisitors(trackingCode) {
const response = await fetch(
  `https://api.zenovay.com/live/${trackingCode}`
);
return await response.json();
}

Exemple de notification Slack

Créez un rapport d'analyse programmé qui publie sur Slack :

Slack IntegrationJavaScript
async function sendDailyReport() {
const response = await fetch(
  `https://api.zenovay.com/api/external/v1/analytics/${WEBSITE_ID}?timeRange=24h`,
  {
    headers: { 'X-API-Key': API_KEY }
  }
);

const data = await response.json();

await fetch(SLACK_WEBHOOK_URL, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    text: `Daily Report: ${data.totalVisitors} visitors, ${data.totalPageViews} page views`
  })
});
}

Limites de débit pour les intégrations

Lors de la création d'intégrations d'interrogation, respectez les limites de débit de l'API externe :

PlanRequêtes/MinuteLimite mensuelle
Pro3010 000
Scale60100 000
Enterprise1201 000 000

L'accès à l'API externe nécessite un plan payant. Les comptes gratuits ne peuvent pas générer de clés API ni utiliser l'API externe.

Bonnes pratiques

  • Mettez en cache les réponses de l'API localement pour réduire la fréquence des requêtes
  • Utilisez des intervalles d'interrogation appropriés (5 minutes minimum recommandé)
  • Surveillez l'en-tête X-RateLimit-Remaining pour éviter de dépasser les limites
  • Implémentez un backoff exponentiel si vous recevez des réponses 429
Cette page vous a-t-elle été utile ?