Fitur

Fitur & arsitektur

Email transaksional dan campaign dalam satu platform dengan REST API, SMTP relay, dan dashboard untuk developer.

01

REST API & SDK

Kirim email dari kode dengan SDK TypeScript dan Python, atau REST langsung dengan Bearer API key.

  • HTML, plain text, atau template dari dashboard dengan variables.
  • cc, bcc, replyTo, custom headers, dan hingga 10 lampiran per email.
  • Batch hingga 100 email per request lewat /emails/batch.
  • Jadwalkan dengan scheduledAt — ubah jadwal atau batalkan sebelum terkirim.
  • Header Idempotency-Key mencegah pengiriman ganda saat request di-retry.
src/services/mail.tsTypeScript
import { F14 } from 'f14';

const f14 = new F14(process.env.F14_API_KEY);

export async function sendOtp(to: string, code: string) {
  return f14.emails.send(
    {
      from: 'keamanan@auth.perusahaan.id',
      to,
      subject: 'Kode verifikasi kamu',
      html: `<p>Kode OTP: <strong>${code}</strong></p>`,
    },
    { idempotencyKey: `otp-${to}-${code}` },
  );
}

02

SMTP relay siap pakai

Punya backend atau tools yang hanya mendukung SMTP? Sambungkan langsung — email yang dikirim lewat SMTP tetap tercatat di log dan webhook.

  • Port 465 dan 2465 (TLS implisit), 587 dan 2587 (STARTTLS).
  • Password SMTP adalah API key kamu.
  • Kompatibel dengan Supabase Auth, Laravel, Django, NextAuth, dan WordPress.
.env.productionSMTP relay
SMTP_HOST="smtp.f14.email"
SMTP_PORT=587
SMTP_USER="f14"
SMTP_PASS="<API key kamu>"
SMTP_ENCRYPTION="starttls"
DEFAULT_FROM="halo@brandkamu.id"

03

Verifikasi domain

Kirim dari domain milikmu. Dashboard menampilkan record DNS yang perlu dipasang, lalu memverifikasinya secara otomatis.

  • DKIM untuk tanda tangan kriptografis setiap email.
  • SPF dan MX pada subdomain mail. untuk alignment dan feedback bounce.
  • DMARC untuk kebijakan autentikasi domain.
  • Mendukung subdomain, misalnya notif.domainkamu.id.
DNS records · app.domainkamu.id
f14._domainkey
p=MIGfMA0GCSqGSIb3DQEBAQUAA…
TXT
mail
v=spf1 include:spf.f14.email ~all
TXT
mail
feedback-smtp.f14.email
MX
_dmarc
v=DMARC1; p=none;
TXT

04

Webhook dengan signature HMAC

Sinkronkan status pengiriman ke database aplikasimu. Tangani bounce, complaint, atau klik secara otomatis.

  • Event email: queued, sent, delivered, opened, clicked, bounced, complained, delivery_delayed, failed, rejected, suppressed, cancelled.
  • Event contact.* dan domain.* untuk sinkronisasi data lainnya.
  • Signature HMAC SHA-256 dengan timestamp untuk verifikasi.
  • Dikirim ulang otomatis hingga 6 kali dengan exponential backoff, atau retry manual dari dashboard.
POST /webhooks/f14Payload
{
  "id": "call_abc123",
  "type": "email.delivered",
  "createdAt": "2026-10-13T10:30:00.000Z",
  "data": {
    "id": "email_123",
    "status": "DELIVERED",
    "from": "billing@acme.id",
    "to": ["klien@perusahaan.co.id"],
    "subject": "Invoice #0812 lunas"
  },
  "attempt": 1
}

05

Campaign & contact book

Kirim newsletter, pengumuman produk, atau promo ke daftar kontak — dari dashboard atau API.

  • Contact book dengan import massal, upsert, dan properti per kontak.
  • Editor visual dan template yang bisa dipakai ulang.
  • Jadwalkan, pause, dan resume campaign.
  • Unsubscribe one-click otomatis di setiap campaign.
Campaign
Newsletter Oktober
Pelanggan aktif · 4.812 kontak
Terkirim
Peluncuran fitur baru
Semua pengguna · 15 Okt 09.00
Terjadwal
Promo akhir bulan
Leads · 1.204 kontak
Dijeda

06

Log & analitik

Temukan email apa pun saat debugging laporan pengguna, lalu lihat timeline event-nya.

  • Filter berdasarkan status: delivered, opened, clicked, bounced, complained, dan lainnya.
  • Timeline event per email, termasuk detail bounce.
  • Grafik volume pengiriman dan metrik reputasi (bounce rate dan complaint rate).
Email
budi@tokoonline.id
Kode OTP login #8812
Delivered
andi@kledo.com
Invoice pembelian INV-092
Clicked
salah@invalid.id
Reset password
Bounced

07

Akses & tim

Atur siapa yang bisa mengirim dan dari domain mana.

  • API key dengan izin Full access atau Sending only.
  • Batasi API key ke satu domain.
  • API key disimpan dalam bentuk hash, bukan teks asli.
  • Undang anggota tim sebagai Admin atau Member.
API keys
production-backend
Domain: notif.acme.id
Sending only
ci-staging
Domain: staging.acme.id
Sending only
admin-scripts
Semua domain
Full access