Webhooks
Erfahren Sie, wie Sie Echtzeit-Benachrichtigungen in Ihre Anwendung integrieren
Was sind Webhooks?
Webhooks sind automatische Nachrichten, die von Apps gesendet werden, wenn etwas passiert. Sie haben eine Nachricht—oder Payload—und werden an eine eindeutige URL (Ihren Endpoint) gesendet.
Anstatt ständig unsere API nach neuen Daten abzufragen (Polling), senden Webhooks Daten in Echtzeit an Ihre Anwendung, wenn Events auftreten. Das ist effizienter und liefert sofortige Benachrichtigungen.
Wenn ein Benutzer eine Umfrage oder ein Formular auf Ihrer Website einreicht, kann Ask Users Ihre Anwendung sofort per Webhook benachrichtigen, sodass Sie:
- Daten automatisch mit Ihrem CRM synchronisieren (Salesforce, HubSpot usw.)
- Benachrichtigungen an Ihr Team per Slack oder E-Mail senden
- Benutzerdefinierte Workflows in Ihrer Anwendung auslösen
- Ihre Datenbank in Echtzeit aktualisieren
- Daten in Analyseplattformen einspeisen
Wie Webhooks funktionieren
Event tritt auf
Ein Benutzer sendet eine Umfrage oder ein Formular auf Ihrer Website ab. Ask Users erfasst dieses Event und bereitet sich darauf vor, Ihre Anwendung zu benachrichtigen.
Webhook ausgelöst
Ask Users prüft, welche Webhooks für dieses Event konfiguriert sind. Wenn Ihr Webhook für diesen Event-Typ konfiguriert ist, bereiten wir den Payload mit allen relevanten Daten vor.
HTTP-POST-Anfrage gesendet
Wir senden eine HTTP-POST-Anfrage an Ihre Webhook-URL mit den Event-Daten im JSON-Format. Die Anfrage enthält Sicherheits-Header (HMAC-Signatur) zur Verifizierung der Authentizität.
Ihr Endpoint verarbeitet die Daten
Ihre Anwendung empfängt den Webhook, verifiziert die Signatur und verarbeitet die Daten. Sie können sie in Ihrer Datenbank speichern, Benachrichtigungen auslösen, Datensätze aktualisieren oder jede beliebige benutzerdefinierte Logik ausführen.
Antwort und Wiederholung
Ihr Endpoint sollte innerhalb von 30 Sekunden mit einem 2xx-Statuscode (typischerweise 200 OK) antworten. Wenn wir keine erfolgreiche Antwort erhalten, wiederholen wir die Zustellung automatisch bis zu 5 Mal mit exponentiellem Backoff:
- Versuch 1: Sofort
- Versuch 2: 1 Minute später
- Versuch 3: 5 Minuten später
- Versuch 4: 15 Minuten später
- Versuch 5: 1 Stunde später
- Versuch 6: 6 Stunden später
Hauptfunktionen
Sichere Zustellung
Alle Webhooks sind mit HMAC-SHA256-Signaturen signiert, um die Authentizität zu verifizieren
Automatische Wiederholungen
Fehlgeschlagene Zustellungen werden automatisch bis zu 5 Mal mit exponentiellem Backoff wiederholt
Echtzeit-Zustellung
Webhooks werden sofort ausgelöst, wenn Events auftreten, typischerweise innerhalb von Millisekunden
Event-Deduplizierung
Eindeutige Event-IDs verhindern doppelte Verarbeitung auch bei Wiederholungen
Unterstützte Events
survey.response.created
Wird ausgelöst, wenn eine neue Umfrageantwort eingereicht wird. Enthält die vollständigen Antwortdaten, einschließlich aller Antworten, Teilnehmerinformationen und Umfrage-Metadaten.
form.submission.created
Wird ausgelöst, wenn eine neue Formulareinreichung erstellt wird. Enthält alle Formularfeld-Daten, Einreichungsstatus und Formularkonfigurationsdetails.
Schnellstart
Webhook im Dashboard konfigurieren
1. Gehen Sie zu Ihrem Dashboard
2. Navigieren Sie zu Einstellungen → Webhooks
3. Klicken Sie auf Webhook erstellen
4. Geben Sie Ihre Endpoint-URL ein und wählen Sie Event-Typen aus
5. Speichern Sie und kopieren Sie Ihren geheimen Schlüssel
Testen Sie Ihren Webhook
Senden Sie eine Test-Umfrage oder ein Test-Formular ab, um Ihren Webhook auszulösen und zu überprüfen, ob er korrekt funktioniert. Überprüfen Sie die Zustellungsprotokolle in Ihrem Dashboard, um die Anfrage und Antwort zu sehen.
Webhook-Referenzimplementierung
Hier ist ein vollständiges Beispiel, wie Sie einen Webhook-Endpoint in Ihrer Anwendung erstellen und verifizieren:
// Node.js/Express example
const crypto = require('crypto');
app.post('/webhooks/askusers', (req, res) => {
const signature = req.headers['x-webhook-signature'];
// Verify signature (see security section)
if (!verifySignature(req.body, signature)) {
return res.status(401).send('Invalid signature');
}
// Process webhook
const { event_type, data } = req.body;
// Return 200 OK immediately
res.status(200).send('OK');
// Process async
processWebhookAsync(event_type, data);
});Webhook-Payload-Beispiel
Hier ist ein Beispiel, wie ein Webhook-Payload aussieht:
{
"event_type": "survey.response.created",
"event_id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00.000Z",
"data": {
"response": {
"id": "response-uuid",
"survey_id": "survey-uuid",
"response_data": {
"question-id-1": "Answer 1",
"question-id-2": "Answer 2"
},
"completion_status": "completed",
"created_at": "2025-01-15T10:30:00.000Z"
},
"survey": {
"id": "survey-uuid",
"title": "Product Feedback Survey"
}
}
}Sicherheit und Verifizierung
Verifizieren Sie immer Webhook-Signaturen, um sicherzustellen, dass Anfragen von Ask Users stammen. Jeder Webhook enthält einen X-Webhook-Signature-Header mit einer HMAC-SHA256-Signatur.
Verifizierungsbeispiel (Node.js)
const crypto = require('crypto');
function verifySignature(payload, signature) {
const secret = process.env.ASKUSERS_WEBHOOK_SECRET;
const payloadString = JSON.stringify(payload);
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payloadString)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}Verifizierungsbeispiel (Python)
import hmac
import hashlib
import os
def verify_signature(payload: str, signature: str) -> bool:
secret = os.environ['ASKUSERS_WEBHOOK_SECRET']
expected_signature = hmac.new(
secret.encode('utf-8'),
payload.encode('utf-8'),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(signature, expected_signature)Best Practices
1. Antworten Sie schnell
Geben Sie immer sofort 200 OK zurück und verarbeiten Sie den Webhook dann asynchron. Halten Sie die Antwortzeit unter 30 Sekunden, um Timeouts zu vermeiden.
2. Behandeln Sie doppelte Zustellungen
Verwenden Sie die event_id zur Deduplizierung von Events. Speichern Sie verarbeitete Event-IDs, um doppelte Verarbeitung zu verhindern. Dies ist wichtig, da Wiederholungen dazu führen können, dass dasselbe Event mehrfach zugestellt wird.
3. Verwenden Sie HTTPS
Verwenden Sie in der Produktion immer HTTPS-URLs für Webhook-Endpoints, um Datensicherheit zu gewährleisten und Man-in-the-Middle-Angriffe zu verhindern.
4. Überwachen Sie Zustellungsprotokolle
Überprüfen Sie Ihre Webhook-Zustellungsprotokolle im Dashboard, um Erfolgsraten zu überwachen und Probleme zu identifizieren. Protokolle zeigen die vollständige Anfrage/Antwort zur Fehlerbehebung.
5. Implementieren Sie ordnungsgemäße Fehlerbehandlung
Umschließen Sie Ihre Webhook-Verarbeitungslogik mit Try-Catch-Blöcken und protokollieren Sie Fehler. Geben Sie geeignete HTTP-Statuscodes zurück: 200-299 für Erfolg, 4xx für Client-Fehler (die nicht wiederholt werden), 5xx für Server-Fehler (die Wiederholungen auslösen).
No-Code-Integration
Sie möchten keinen Code schreiben? Verwenden Sie Webhooks mit Zapier oder Make:
- Erstellen Sie einen neuen "Catch Webhook"-Trigger in Zapier oder Make
- Kopieren Sie die bereitgestellte Webhook-URL
- Erstellen Sie einen Webhook in Ask Users mit dieser URL
- Testen Sie ihn, indem Sie ein Formular oder eine Umfrage absenden
- Erstellen Sie Ihren Automatisierungs-Workflow!
Benötigen Sie Hilfe?
Wenn Sie Fragen haben oder Unterstützung bei Webhooks benötigen:
- • Überprüfen Sie Zustellungsprotokolle in Ihrem Dashboard
- • Lesen Sie den Fehlerbehebungsabschnitt oben
- • Kontaktieren Sie uns unter support@askusers.org