Webhooks: Automatisierung zwischen Diensten | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

Webhook Integration Automatisierung

Zuletzt aktualisiert: 11.01.2026 um 12:07 Uhr

Webhooks: Automatisierung zwischen Diensten

Webhooks sind HTTP-Callbacks, die automatisch ausgelöst werden, wenn ein Event eintritt. Statt regelmäßig nach Updates zu fragen (Polling), werden Sie aktiv benachrichtigt.

Wie funktionieren Webhooks?

  1. Sie registrieren eine URL bei einem Dienst
  2. Bei einem Event sendet der Dienst einen HTTP POST an Ihre URL
  3. Ihr Server verarbeitet die Daten

Webhook-Empfänger (PHP)

<?php
// webhook.php

// Nur POST erlauben
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    exit('Method not allowed');
}

// JSON-Payload lesen
$payload = file_get_contents('php://input');
$data = json_decode($payload, true);

// Logging
file_put_contents('webhook.log', date('Y-m-d H:i:s') . ': ' . $payload . "\n", FILE_APPEND);

// Verarbeitung je nach Event
if (isset($data['event'])) {
    switch ($data['event']) {
        case 'payment.completed':
            processPayment($data);
            break;
        case 'user.created':
            sendWelcomeEmail($data);
            break;
    }
}

// Erfolg bestätigen
http_response_code(200);
echo json_encode(['status' => 'ok']);
?>

Webhook-Empfänger (Node.js)

const express = require('express');
const app = express();

app.use(express.json());

app.post('/webhook', (req, res) => {
    const event = req.body;
    
    console.log('Webhook received:', event);
    
    // Event verarbeiten
    switch (event.type) {
        case 'order.created':
            handleNewOrder(event.data);
            break;
        case 'order.shipped':
            sendShippingNotification(event.data);
            break;
    }
    
    res.status(200).json({ received: true });
});

app.listen(3000);

Webhook-Sender

<?php
function sendWebhook($url, $data) {
    $payload = json_encode($data);
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'X-Webhook-Signature: ' . hash_hmac('sha256', $payload, 'secret')
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    return $httpCode === 200;
}

// Beispiel
sendWebhook('https://example.com/webhook', [
    'event' => 'order.created',
    'data' => ['order_id' => 123, 'total' => 99.99]
]);
?>

Signatur-Verifizierung

<?php
// Webhook mit Signatur verifizieren
$secret = 'mein_webhook_secret';
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';

$expected = hash_hmac('sha256', $payload, $secret);

if (!hash_equals($expected, $signature)) {
    http_response_code(401);
    exit('Invalid signature');
}

// Signatur gültig - weiter verarbeiten
?>

Retry-Logik

async function sendWithRetry(url, data, maxRetries = 3) {
    for (let i = 0; i < maxRetries; i++) {
        try {
            const response = await fetch(url, {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify(data)
            });
            
            if (response.ok) return true;
        } catch (error) {
            console.log(`Attempt ${i + 1} failed`);
        }
        
        // Exponential Backoff
        await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000));
    }
    
    return false;
}

Typische Anwendungen

  • 💳 Zahlungsanbieter (Stripe, PayPal)
  • 📧 E-Mail-Dienste (Bounces, Opens)
  • 🔔 Chat-Notifications (Slack, Discord)
  • 🚀 CI/CD (GitHub, GitLab)
  • 📦 Versand-Updates

Best Practices

  1. Signatur immer verifizieren
  2. Schnell antworten (< 5 Sek)
  3. Async verarbeiten (Queue)
  4. Idempotent implementieren
  5. Logging für Debugging

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120