Kirim Email Di Sendinblue Dengan Firebase Cloud Function

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

- 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 support@sendinblue.com 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

- 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

- Jangan lupa di "Active" kan dulu template nya sehingga baru bisa digunakan
- Pada template "Workshop Confirmation" diatas, templateId nya adalah
1dan ini akan digunakan saat API call nanti
3. Kirim

- 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", }, }); });
- Untuk referensi lengkap endpointnya bisa refer kesini
4. Hasil 🎉
- Sekarang setiap ada penambahan data baru ke collection
workshops, akan ada email konfirmasi dikirimkan
