BIAYABLOG

Email Transaksional adalah: Pengertian, Contoh, dan API

Tim Helipod
Diterbitkan 7 menit baca

Setiap kali Anda mendaftar di sebuah aplikasi, lalu menerima email berisi kode verifikasi dalam hitungan detik, Anda sedang menerima email transaksional. Email jenis ini jarang diperhatikan, tapi sangat menentukan: kalau email OTP tidak sampai, pengguna tidak bisa masuk ke aplikasi Anda.

Artikel ini menjelaskan apa itu email transaksional, contoh-contohnya, bedanya dengan email marketing, dan cara mengirimnya dari aplikasi lewat API atau SMTP. Di bagian akhir ada contoh nyata memakai API email Helipod.

Email Transaksional adalah Apa?#

Email transaksional adalah email otomatis yang dikirim ke satu penerima sebagai respons atas aksi atau kejadian tertentu. Pemicunya bisa aksi pengguna (mendaftar, membayar, meminta reset password) atau kejadian di sistem (pesanan dikirim, langganan akan berakhir).

Ciri-cirinya:

  • Dipicu otomatis oleh sistem, bukan dijadwalkan manual
  • Satu penerima per email, isinya spesifik untuk orang itu
  • Diharapkan penerima, sehingga angka bukanya biasanya tinggi
  • Sensitif waktu: kode OTP yang sampai 10 menit kemudian sudah tidak berguna

Contoh Email Transaksional#

Jenis Kapan dikirim Isi utama
Kode OTP Saat login atau transaksi Kode sekali pakai
Verifikasi akun Setelah pendaftaran Tautan konfirmasi alamat email
Reset password Saat pengguna lupa password Tautan reset yang kedaluwarsa
Invoice dan kuitansi Setelah pembayaran Rincian tagihan
Notifikasi pesanan Pesanan diproses atau dikirim Status dan nomor resi
Pengingat tagihan Menjelang jatuh tempo Jumlah dan tanggal
Peringatan keamanan Login dari perangkat baru Lokasi dan waktu login

Email Transaksional vs Email Marketing#

Keduanya sama-sama email, tapi aturannya berbeda:

Aspek Email Transaksional Email Marketing
Pemicu Aksi pengguna atau kejadian sistem Jadwal kampanye
Penerima Satu orang Banyak orang sekaligus
Izin Bagian dari layanan yang dipakai Wajib opt-in
Unsubscribe Umumnya tidak perlu Wajib, idealnya satu klik
Isi Informasi yang dibutuhkan pengguna Promosi, newsletter
Pengiriman API atau SMTP dari aplikasi Fitur broadcast atau email blast

Hal yang sering dilupakan: jangan menyelipkan promosi berlebihan ke email transaksional. Invoice yang isinya didominasi iklan bisa dianggap email marketing oleh penerima dan penyedia email. Untuk promosi, gunakan email blast terpisah. Penjelasannya ada di Email Blast adalah.

Kenapa Tidak Kirim Langsung dari Server Aplikasi?#

Mengirim email langsung dari server aplikasi tampak sederhana, tapi bermasalah di produksi. IP server tidak punya reputasi pengiriman, domain tidak ditandatangani DKIM, dan banyak penyedia cloud memblokir port 25. Hasilnya, email OTP masuk spam atau tidak sampai.

Layanan email transaksional menangani autentikasi SPF, DKIM, dan DMARC untuk domain Anda, mengelola reputasi pengiriman, mencoba ulang saat server penerima sibuk, dan melaporkan status setiap email.

API vs SMTP: Pilih yang Mana?#

Ada dua cara mengirim email transaksional dari aplikasi:

SMTP cocok bila aplikasi atau framework Anda sudah mendukung SMTP, seperti Laravel, Django, Nodemailer, atau WordPress. Anda cukup mengganti host dan password. SMTP Helipod juga mendukung lampiran dan gambar inline. Konsepnya dibahas di SMTP Relay adalah.

REST API cocok bila Anda membangun integrasi baru dan butuh kontrol lebih:

  • Respons langsung berisi ID email untuk dilacak
  • Template dengan variabel yang dikelola di dasbor
  • Kunci idempotensi untuk retry yang aman
  • Kirim batch hingga 50 pesan dalam satu request

Satu catatan: API Helipod tidak menerima lampiran. Kalau email Anda butuh lampiran, seperti invoice PDF, kirim lewat SMTP atau sertakan tautan unduhan.

Contoh Kirim Email Transaksional lewat API#

Dokumentasi lengkap endpoint, template, dan webhook ada di halaman API email Helipod. Untuk mulai, buat API key di dasbor Helipod (menu Email, bagian API & webhooks), lalu simpan sebagai variabel lingkungan:

export HELIPOD_API_KEY="hel_xxxxxxxxxxxxxxxx"

Kirim email dengan satu request:

curl -X POST https://mail.helipod.io/api/email/send \
  -H "Authorization: Bearer $HELIPOD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Toko Anda <[email protected]>",
    "to": ["[email protected]"],
    "subject": "Kode verifikasi Anda: 482913",
    "html": "<p>Halo Budi,</p><p>Kode verifikasi Anda adalah <strong>482913</strong>. Berlaku 10 menit.</p>",
    "idempotencyKey": "otp-user-1042-20261012-1"
  }'

Beberapa hal penting:

  • Field to berupa array, meskipun hanya satu penerima.
  • Alamat from harus memakai domain yang sudah terverifikasi di project yang sama dengan API key.
  • Server membalas 202 dengan ID email. Pengiriman ke penyedia penerima diproses di belakang layar, jadi aplikasi Anda tidak perlu menunggu.

Sebelum dikirim, setiap penerima juga dicek: domainnya harus ada dan menerima email, alamat duplikat digabung, dan alamat yang pernah hard bounce atau melapor spam di Helipod diblokir. Ini menjaga reputasi domain Anda.

Retry Aman dengan idempotencyKey#

Jaringan bisa putus tepat setelah request terkirim. Kalau aplikasi mencoba ulang tanpa pengaman, pengguna bisa menerima dua email yang sama. Dengan idempotencyKey, request ulang dengan kunci yang sama mengembalikan pengiriman asli, bukan mengirim lagi.

Buat kuncinya dari data yang unik untuk satu kejadian, misalnya ID pengguna, jenis email, dan nomor percobaan OTP. Jangan memakai kunci acak baru di setiap retry, karena itu menghilangkan fungsinya.

Pakai Template#

Daripada menulis HTML di kode, simpan template di dasbor lalu kirim templateId beserta data variabelnya. Tim non-developer bisa mengubah isi email tanpa deploy ulang aplikasi.

Kirim Banyak Email Sekaligus dengan Batch#

Kalau satu kejadian memicu beberapa email berbeda, misalnya konfirmasi pesanan untuk pembeli dan notifikasi untuk admin toko, gunakan endpoint POST /send/batch. Satu request bisa memuat hingga 50 pesan, masing-masing dengan penerima dan isi sendiri. Ini lebih hemat dibanding memanggil /send berulang kali, dan setiap pesan tetap bisa diberi idempotencyKey sendiri.

Batch bukan pengganti email blast. Untuk promosi ke daftar pelanggan, pakai fitur broadcast yang menyediakan unsubscribe dan pengaman bounce.

Praktik Baik Email Transaksional#

  • Pakai alamat From yang konsisten, misalnya noreply@ atau notifikasi@ di domain Anda, agar penerima mengenali pengirimnya.
  • Isi subjek yang langsung jelas. Untuk OTP, menaruh kode di subjek membantu pengguna yang hanya melihat notifikasi ponsel.
  • Sertakan versi teks selain HTML, terutama untuk email penting seperti reset password.
  • Batasi masa berlaku tautan reset password dan verifikasi, lalu sebutkan masa berlakunya di email.
  • Pisahkan subdomain bila volume promosi Anda besar, misalnya mail.tokoanda.com untuk promosi, agar reputasi email transaksional tetap terjaga.

Pantau Status dengan Webhook#

Email yang diterima server Helipod belum tentu sampai ke inbox. Untuk mengetahui hasil akhirnya, daftarkan URL webhook di dasbor. Helipod akan mengirim event seperti:

Event Arti
email.sent Email diserahkan ke jaringan pengiriman
email.delivered Diterima server penerima
email.bounced Ditolak, misalnya alamat tidak ada
email.complained Penerima melapor spam
email.opened, email.clicked Dibuka atau tautan diklik
email.rejected, email.failed Tidak dapat dikirim

Setiap webhook ditandatangani HMAC lewat header Helipod-Signature, sehingga aplikasi Anda bisa memastikan event benar-benar dari Helipod. Contoh verifikasi di Node.js:

import { createHmac, timingSafeEqual } from "node:crypto";

function verify(rawBody, header, secret) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const expected = createHmac("sha256", secret)
    .update(`${parts.t}.${rawBody}`)
    .digest("hex");
  return timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}

Gunakan event email.bounced untuk menandai alamat yang salah di database Anda, lalu minta pengguna memperbaikinya.

FAQ#

Apa itu email transaksional?#

Email transaksional adalah email otomatis yang dikirim ke satu penerima karena aksi atau kejadian tertentu, seperti kode OTP, verifikasi akun, reset password, invoice, dan notifikasi pesanan.

Apa bedanya email transaksional dan email marketing?#

Email transaksional dipicu aksi pengguna dan berisi informasi yang dibutuhkan, sedangkan email marketing dikirim massal untuk promosi dan wajib memakai opt-in serta tombol unsubscribe.

Apakah email transaksional perlu tombol unsubscribe?#

Umumnya tidak, karena isinya bagian dari layanan yang dipakai pengguna. Namun bila email tersebut berisi promosi, perlakukan sebagai email marketing.

Lebih baik pakai API email atau SMTP?#

SMTP paling mudah bila aplikasi sudah mendukungnya dan cocok bila butuh lampiran. API memberi kontrol lebih, seperti template, kunci idempotensi, dan batch.

Kenapa email OTP saya masuk spam?#

Biasanya karena domain belum diverifikasi SPF, DKIM, dan DMARC, atau email dikirim langsung dari server aplikasi tanpa reputasi. Pakai layanan email transaksional dengan domain terverifikasi.

Apakah bisa mencoba API email secara gratis?#

Bisa. Paket Free Helipod memberi 50 email per hari lewat API dan SMTP dengan domain Anda sendiri, tanpa kartu kredit.

Kesimpulan#

Email transaksional adalah email otomatis yang dipicu aksi pengguna, dan keandalannya langsung memengaruhi pengalaman pengguna. Kirim lewat layanan khusus dengan domain terverifikasi, pakai idempotencyKey agar retry aman, dan pantau hasilnya lewat webhook.

Helipod menyediakan REST API dan SMTP dengan server Amazon SES region Jakarta, plus pembayaran QRIS atau transfer bank. Lihat dokumentasi dan paketnya di halaman API email Helipod.

Artikel terkait

Lihat semua

Siap coba Helipod?

Deploy aplikasi kamu sekarang. Gratis, tanpa kartu kredit.

Mulai Gratis →
WhatsApp