✉️
Kirim Email Di Sendinblue Dengan Firebase Cloud Function
Notion image

Kita akan menggunakan Sendinblue sebagai layanan pengiriman emailnya

Alasan:

  • Sebelum ini ditolak SendGrid
  • Pricingnya lebih murah dari Mailgun
  • Hasil pencarian "mailgun" mereka berada diatas karena ads, jadi tertarik menggunakan
  • Ada email gratis 300 / hari, jadi tidak perlu bayar dulu kalau belum banyak
  • Selain "transactional", mereka juga menyediakan email "marketing"

Step:

1. Daftar

Notion image
  • Lakukan pendaftaran dengan informasi dasar yaitu nama perusahaan, email, dan password
  • Sehabis itu akan diminta melakukan informasi data diri dan perusahaan termasuk nomor telepon
  • Lalu lakukan verifikasi nomor telepon melalui SMS, jika belum maka akunnya belum aktif untuk bisa mengirim email
  • Lalu kirim email ke [email protected] dengan subject "I would like to activate my transactional account"
  • Sehabis itu kalian akan diminta informasi seperti alamat web kalian, untuk apa kalian akan menggunakan layanan email ini, dan perkiraan penggunaan email kalian
  • Tunggu hingga kalian mendapat email balasan yang menyatakan kalian sudah bisa melakukan transactional email

2. Desain

Notion image
  • Sendinblue sudah menyediakan WYSIWYG untuk mendesain tampilan emailnya sehingga kalian akan lebih mudah mendesainnya
  • Jika kalian ingin menggunakan data dinamis misalnya dari Firestore, tulis seperti {{ params.name }} sehingga nanti kalian bisa mengirim nama dari API call nya
  • Tekan "Save & Quit", saat mendevelop ini tombolnya ada masalah yaitu loadingnya tidak selesai-selesai tapi jika di reload desainnya sudah tersimpan
Notion image
  • Jangan lupa di "Active" kan dulu template nya sehingga baru bisa digunakan
  • Pada template "Workshop Confirmation" diatas, templateId nya adalah 1 dan ini akan digunakan saat API call nanti

3. Kirim

Notion image
  • Buat API Key dulu untuk project Firebasenya, API Key hanya akan ditampilkan sekali jadi begitu diperlihatkan jangan lupa dicopy dulu
  • Buat Firebase Cloud Functionnya, email akan terkirim tiap ada data baru ditambahkan ke collection workshops . Kemudian jangan lupa deploy
export const workshopNotifier = functions.firestore
	.document("workshops/{workshopId}")
	.onCreate(async (snapshot, context) => {
	  const {name, email} = snapshot.data();
	
	  return await axios.post("https://api.sendinblue.com/v3/smtp/email", {
	    templateId: 1,
	    params: {
	      name: name, // will passed to email dynamic data
	    },
	    to: [{ // you can send to many recipients at once
	      name: name,
	      email: email,
	    }],
	  }, {
	    headers: {
	      "api-key": "xkeysib-XXXX", // get your own API key
	      "content-type": "application/json",
	      "accept": "application/json",
	    },
	  });
	});

4. Hasil 🎉

  • Sekarang setiap ada penambahan data baru ke collection workshops , akan ada email konfirmasi dikirimkan
Notion image

Alternative Tutorial