Nyaraka za API

Webhooks

Pokea matukio ya barua pepe kwa wakati halisi.

Muhtasari

Ukisanidi webhooks, wakati matukio kama kutuma, kufungua, au kubofya barua pepe yanapotokea, ombi la HTTP POST litatumwa kwa URL uliyobainisha.

Webhooks zinaweza kusanidiwa katika Dashibodi > Webhooks.

Aina za matukio

Event Description
email.sent Barua pepe inapotumwa
email.delivered Barua pepe inapofikishwa kwa mpokeaji
email.opened Mpokeaji anapofungua barua pepe
email.clicked Mpokeaji anapobofya kiungo kwenye barua pepe
email.bounced Barua pepe inapodunda
email.complained Mpokeaji anaporipoti kama barua taka
subscriber.created Msajiliwa mpya anapoongezwa
subscriber.unsubscribed Msajiliwa anapojitoa
campaign.sent Utumaji wa kampeni unapoanza
campaign.completed Utumaji wa kampeni unapokamilika

Muundo wa payload

Maombi yote ya webhook yanajumuisha payload ya JSON katika muundo ufuatao:

{
  "event": "email.opened",
  "timestamp": "2026-01-10T12:00:00+00:00",
  "data": {
    "campaign_id": 123,
    "campaign_uuid": "abc-123...",
    "campaign_name": "January Newsletter",
    "subscriber_id": 456,
    "subscriber_uuid": "def-456...",
    "subscriber_email": "user@example.com",
    "ip_address": "1.2.3.4",
    "user_agent": "Mozilla/5.0...",
    "occurred_at": "2026-01-10T12:00:00+00:00"
  }
}

Vichwa vya ombi

Header Description
Content-Type application/json
X-Webhook-ID UUID ya webhook
X-Webhook-Event Aina ya tukio (mfano: email.opened)
X-Webhook-Signature Saini ya HMAC-SHA256

Uthibitishaji wa saini

Thibitisha kichwa cha X-Webhook-Signature kuthibitisha uhalisi wa ombi la webhook. Saini ni hash ya HMAC-SHA256 ikitumia siri ya webhook na mwili wa ombi.

Mfano wa PHP

<?php
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'];
$secret = 'your_webhook_secret';

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

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

$data = json_decode($payload, true);
// Process the event...

Mfano wa Node.js

const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}

// Express.js example
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-webhook-signature'];
  const payload = JSON.stringify(req.body);

  if (!verifySignature(payload, signature, 'your_secret')) {
    return res.status(401).send('Invalid signature');
  }

  // Process the event...
  res.status(200).send('OK');
});

Sera ya kujaribu tena

  • • Ikiwa utumaji wa webhook unashindikana (majibu yasiyo 2xx), haijaribiwa tena kiotomatiki.
  • • Baada ya kushindikana mfululizo mara 5, webhook inazimwa kiotomatiki.
  • • Webhooks zilizozimwa zinaweza kuwashwa tena kwenye dashibodi.
  • • Muda wa majibu lazima uwe ndani ya sekunde 10.

Mazoea bora

  • • Daima thibitisha saini kuthibitisha uhalisi wa ombi.
  • • Sindika webhooks haraka iwezekanavyo (ndani ya sekunde 5).
  • • Weka kazi ndefu kwenye foleni na urudishe 200 OK mara moja.
  • • Tumia vituo vya HTTPS kutuma data kwa usalama.

Tunatumia kuki

Tunatumia kuki kuboresha uzoefu wako. Unaweza kuchagua ni kategoria gani za kuki kuruhusu. Pata maelezo zaidi