Zindua
Under the hood

The Zindua Pipeline

From a single function call in your code to delivery in your user's inbox. A robust architecture built for scale and deliverability.

Step 01

Call the SDK

Install @zindua/sdk and call client.send(). Specify your template slug and an optional language code. One line of code, infrastructure-agnostic sending.

import { Zindua } from '@zindua/sdk';

const client = new Zindua({
  apiKey: process.env.ZINDUA_KEY,
});

await client.send({
  to: 'user@example.com',
  template: 'welcome',
  lang: 'fr', // pick any language version
  variables: { name: 'Alex' },
});
Step 02

Project Isolation

Your request hits our API, gets authenticated, and is isolated to your specific project environment. Each project has its own API key, templates, and service connectors.

// Zindua isolates by projectKey:
{
  "project": "proj_prod_01",
  "template": "welcome",
  "lang": "fr",
  "origin": "api.myapp.com"
}
Step 03

i18n & Engine Resolution

Our engine fetches the template slug. If a language is requested, it resolves that version; otherwise, it falls back to the project default automatically. No logic needed in your code.

// Engine resolves:
// 1. Check 'fr' version ✅
// 2. Render variables

<!-- Template: welcome/fr -->
<h1>Bienvenue, {{name}}!</h1>

<!-- Rendered output -->
<h1>Bienvenue, Alex!</h1>
Step 04

Redis-backed Queue

The rendered email is enqueued in our high-performance system with automatic retries, priority routing, and rate limiting to maximize deliverability across all projects.

// BullMQ job payload:
{
  "id": "job_0x9f2a",
  "priority": "high",
  "attempts": 0,
  "projectId": "proj_prod_01",
  "renderedHtml": "...",
}
Step 05

Universal Dispatch

Zindua dispatches the email through your connected service (Gmail, Outlook, SMTP, or any modern provider). We handle all provider-specific API nuances for you.

// Dispatching via project service:
{
  "service": "gmail_oauth2",
  "from": "app@company.com",
  "latency": "14ms",
  "providerId": "<msg_88281@mail.gmail.com>"
}
Step 06

Delivered & Tracked

The email lands in the inbox. Open, click, and bounce events are captured and routed back to your dashboard and configured webhooks in real-time.

// Webhook event fired:
{
  "event": "email.delivered",
  "to": "user@example.com",
  "openedAt": "2026-04-12T11:43:00Z",
  "project": "proj_prod_01"
}
WhatsApp OTP

OTP on WhatsApp, not only email

Connect your business number once. Send verification codes and transactional messages through the same API. Ideal for Africa where WhatsApp beats SMS cost.

Scan & connect

Dashboard → Project → WhatsApp. Scan the QR with your service phone. Pause or unlink anytime.

Your API key only

Integrate from your backend with znd_live_ keys. Keys never touch the browser; sessions stay on our servers.

One API, two channels

Use channel: 'whatsapp' or channel: 'email'. Same templates, variables, and logs.

POST /v1/send
{
  "to": "243812345678",
  "channel": "whatsapp",
  "template": "otp-verification",
  "variables": { "code": "4592" }
}

Full WhatsApp integration guide →

Reliability as a service

Built-in guarantees that keep your emails flowing.

< 15ms median latency

From API call to queue, before your email provider even sees it.

AES-256-GCM encryption

All credentials stored encrypted at rest. Never in plain text.

Automatic retries

Up to 5 attempts with exponential backoff. Reliability by default.

Full observability

Every event logged. Every error surfaced. Every delivery tracked.

Ready to build?

Connect your service and start sending transaction emails in under a minute.