Webhooks
Zenovay nutzt Webhooks intern für die Zahlungsverarbeitung und Abonnementverwaltung. Diese Seite erklärt, wie Webhooks in Zenovay funktionieren und wie Sie Integrationen mithilfe der External API erstellen.
Wie Zenovay Webhooks nutzt
Zenovay verarbeitet eingehende Webhooks von Zahlungsanbietern und Monitoring-Services. Dies sind interne System-Webhooks, die die Abonnementabrechnung und Gesundheitschecks verwalten.
Eingehende Webhook-Quellen
| Quelle | Zweck |
|---|---|
| Stripe | Abonnementverwaltung, Zahlungsverarbeitung, Checkout-Abschluss |
| Uptime Monitoring | Gesundheitschecks von externen Monitoring-Services |
Diese Webhooks werden intern von der Zenovay API verarbeitet. Für ausgehende Webhooks und Team-API-Schlüssel gehen Sie zu Settings → Security → API keys.

Integrationen erstellen
Sie können die External API nutzen, um Integrationen zu erstellen und Analytics-Daten in Ihre eigenen Systeme zu integrieren.
Polling mit der External API
Nutzen Sie die External API, um regelmäßig Analytics-Daten abzurufen:
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);Live-Besucherzähler
Der öffentliche Live-Endpunkt erfordert keinen API-Schlüssel und kann häufiger abgefragt werden:
async function getLiveVisitors(trackingCode) {
const response = await fetch(
`https://api.zenovay.com/live/${trackingCode}`
);
return await response.json();
}Slack-Benachrichtigungsbeispiel
Erstellen Sie einen geplanten Analytics-Bericht, der in Slack gepostet wird:
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`
})
});
}Rate Limits für Integrationen
Beachten Sie bei der Erstellung von Polling-Integrationen die Rate Limits der External API:
| Plan | Anfragen/Minute | Monatliches Limit |
|---|---|---|
| Pro | 30 | 10.000 |
| Scale | 60 | 100.000 |
| Enterprise | 120 | 1.000.000 |
Der Zugriff auf die External API erfordert einen bezahlten Plan. Kostenlose Konten können keine API-Schlüssel generieren oder die External API verwenden.
Bewährte Methoden
- Zwischenspeichern Sie API-Antworten lokal, um die Anfragehäufigkeit zu reduzieren
- Verwenden Sie angemessene Polling-Intervalle (mindestens 5 Minuten empfohlen)
- Überwachen Sie den
X-RateLimit-RemainingHeader, um Limits zu vermeiden - Implementieren Sie exponentielles Backoff, wenn Sie 429-Responses erhalten