Bisnis jasa: dari lead hingga menjadi pelanggan setia
Rancang workflow untuk menerima lead, mengelola booking, mengirim invoice, dan menindaklanjuti pelanggan
Bisnis jasa, seperti salon, klinik, tempat les, konsultan, dan bengkel, memiliki beberapa proses yang saling berkaitan. Calon pelanggan menghubungi bisnis, membuat booking, menerima layanan, lalu melakukan pembayaran. Setelahnya, bisnis dapat meminta review atau mengirim pengingat kunjungan berikutnya.
Panduan ini menjelaskan cara menghubungkan proses tersebut di Alur. Kamu perlu menyiapkan tabel, connection, dan workflow yang dijelaskan di bawah. Pemberian layanan serta pengisian harga tetap dilakukan secara manual.
Ingin cepat? Template Service business membuat tahap 2 sampai 9 dalam sekali klik: formulir lead, tautan, tabel Visits beserta kolom penagihannya, dan sembilan workflow pada contoh di bawah. Terapkan, hubungkan Resend dan Mayar, lalu publish. Sisa panduan ini menjelaskan apa yang dibuatnya.
Gambaran proses bisnis
| Tahap | Tujuan | Fitur Alur |
|---|---|---|
| Attract | Menarik calon pelanggan melalui konten | Content calendar, AI Text, AI Image |
| Capture | Mengumpulkan data lead | Lead capture: form, tabel Leads, dan workflow email |
| Book | Memungkinkan pelanggan memilih jadwal | Scheduling page |
| Confirm & Remind | Mengirim konfirmasi dan pengingat booking | Scheduling Trigger dan Cron |
| Deliver | Mencatat layanan yang telah diberikan | Pengisian Served, Service, Price, dan Phone secara manual |
| Invoice | Membuat invoice dan mengirim link pembayaran | Mayar dan Resend |
| Get Paid | Memverifikasi serta mencatat pembayaran | Payment Trigger, Mayar, dan Database |
| Review | Meminta review dari pelanggan | Cron dan email |
| Rebook | Mengingatkan kunjungan/pertemuan berikutnya | Cron dan email dengan link booking |
Tahapan proses
1. Attract: menarik calon pelanggan
Rencanakan konten melalui tabel Content calendar, lalu gunakan workflow untuk memublikasikannya sesuai jadwal melalui Zernio. Kamu juga dapat menggunakan AI Text untuk menyusun draft caption dan AI Image untuk menghasilkan gambar.
Cantumkan link form dan booking pada profil atau konten media sosial agar calon pelanggan dapat menghubungi bisnis kamu.
2. Capture: mengumpulkan data lead
Template Lead capture menyediakan form Contact us, tabel Leads, serta dua draft workflow: notifikasi untuk pemilik bisnis dan konfirmasi untuk calon pelanggan. Konfigurasikan connection Resend dan alamat pengirim, lalu publikasikan kedua workflow.
Template sudah menyertakan kolom Phone sebagai isian opsional. Pastikan nomor telepon tersedia sebelum membuat invoice karena Mayar mewajibkannya.
3. Book: menerima booking
Buat tautan, lalu tentukan jam tersedia dan durasi layanan. Setiap booking muncul di Scheduling → Pemesanan.
Tambahkan link Scheduling page ke email konfirmasi lead agar pelanggan dapat langsung memilih jadwal.
4. Confirm & Remind: mengirim konfirmasi dan pengingat
Workflow dengan trigger Scheduling dapat mengirim email konfirmasi dan pembatalan booking. Email konfirmasi menyertakan link untuk membatalkan atau menjadwalkan ulang. Email baru dikirim setelah connection dan alamat pengirim diatur serta workflow dipublikasikan.
Untuk pengingat, buat workflow harian yang membaca booking terkonfirmasi pada hari berikutnya dengan step Scheduling, lalu mengirim email kepada setiap pelanggan. Contohnya dijelaskan pada Workflow B.
5. Deliver: mencatat layanan
Setiap booking baru ditambahkan ke tabel Visits. Setelah layanan diberikan, isi Service, Price, dan Phone, lalu centang Served pada tabel Visits. Data ini digunakan oleh workflow pembuatan invoice.
Workflow pada contoh ini hanya memproses baris dengan Served bernilai true dan Invoiced bernilai false.
6. Invoice: mengirim tagihan
Workflow terjadwal mencari booking yang sudah dilayani tetapi belum memiliki invoice. Untuk setiap hasil, workflow membuat invoice melalui Mayar, menyimpan Invoice ID dan Payment Link, menandai Invoiced, lalu mengirim email.
Simpan hasil pembuatan invoice sebelum mengirim email. Jika email gagal setelah data berhasil disimpan, workflow berikutnya tidak membuat invoice baru untuk baris tersebut. Jika penyimpanan data gagal setelah invoice dibuat, periksa dashboard Mayar sebelum menjalankan ulang workflow.
7. Get Paid: mencatat pembayaran
Mayar mengirim event pembayaran ke Alur melalui webhook. Payment Trigger kemudian memulai workflow untuk menemukan booking terkait, memverifikasi invoice, menandai Paid, dan mengirim email konfirmasi.
Pencocokan berdasarkan email saja belum cukup apabila pelanggan memiliki beberapa invoice. Lihat pencocokan pembayaran.
8. Review: meminta review pelanggan
Workflow harian mencari booking yang sudah dibayar dan belum dikirimi permintaan review. Workflow mengirim email berisi link review, misalnya ke Google Maps, lalu menandai Review Sent.
Penanda ini mencegah baris yang sudah diproses dipilih kembali pada jadwal berikutnya. Jika email berhasil tetapi penyimpanan penanda gagal, periksa Run sebelum menjalankan ulang workflow.
9. Rebook: mengingatkan kunjungan berikutnya
Isi Next Visit setelah layanan selesai, misalnya enam minggu setelah potong rambut atau enam bulan setelah pemeriksaan gigi. Workflow harian mencari tanggal yang sesuai, mengirim email dengan link booking, lalu menandai Rebook Sent.
Contoh: Sari Hair Studio
Contoh berikut menggunakan salon dengan satu hairstylist. Siapkan:
- Connection Resend dengan domain pengirim yang telah diverifikasi.
- Connection Mayar, beserta URL webhook Alur yang telah dipasang di dashboard Mayar.
Template Service business membuat semua tabel dan workflow di bawah ini untuk kamu (nama workflow-nya sedikit berbeda). Untuk membangunnya secara manual, terapkan template Lead capture dan Appointment scheduling, lalu tambahkan sisanya seperti dijelaskan.
Nama seperti find, each, dan invoice pada expression di bawah adalah contoh ID step. Sesuaikan dengan ID step pada workflow kamu melalui variable picker.
Menyiapkan tabel
Gunakan tabel Leads dari template Lead capture. Kolom Phone sudah tersedia; pastikan kolom tersebut dapat diisi melalui form.

Buat tabel Visits, satu baris per booking (template Service business membuatnya). Pertahankan kolom Name, lalu tambahkan:
| Kolom | Tipe | Diisi oleh |
|---|---|---|
| Workflow G | ||
| Booked For | Date and time | Workflow G |
| Phone | Text | kamu; halaman booking belum meminta nomor telepon |
| Service | Text | kamu, setelah layanan selesai |
| Price | Number | kamu, setelah layanan selesai |
| Served | Checkbox | kamu, setelah layanan selesai |
| Invoiced | Checkbox | Workflow C |
| Invoice ID | Text | Workflow C |
| Payment Link | Text | Workflow C |
| Paid | Checkbox | Workflow D |
| Review Sent | Checkbox | Workflow E |
| Next Visit | Date | kamu, setelah layanan selesai |
| Rebook Sent | Checkbox | Workflow F |
Gunakan Calendar view berdasarkan Booked For untuk melihat jadwal dalam satu bulan.
Workflow A: mengirim link booking kepada lead
Gunakan workflow konfirmasi dari template Lead capture. Tambahkan link Scheduling page ke body email, misalnya:
Terima kasih,
{{ trigger.row.name }}, telah menghubungi Sari Hair Studio.Silakan pilih jadwal melalui link booking berikut:
https://…/@handle-kamu/appointments
Workflow G: menambahkan setiap booking ke Visits
- Tambahkan Scheduling Trigger untuk tautan kamu, peristiwa Created.
- Tambahkan Database (Visits, Add a row): Name
{{ trigger.name }}, Email{{ trigger.email }}, Booked For{{ trigger.start }}.
Workflow B: mengirim pengingat booking
- Tambahkan Cron Trigger dengan jadwal setiap hari pukul 17.00 dalam zona waktu bisnis.
- Tambahkan step Scheduling untuk tautan kamu dengan Status Dikonfirmasi serta Dari hari dan Sampai hari keduanya
{{ system.tomorrow }}. - Tambahkan For each dengan daftar
{{ scheduling.items }}. - Di dalam loop, tambahkan Send Email dengan penerima
{{ each.item.email }}, subject "Sampai jumpa besok", dan body yang memuat{{ each.item.start }}.
{{ system.tomorrow }} mencakup seluruh hari berikutnya dalam zona waktu Cron. Output {{ each.item.start }} tetap menggunakan UTC. Perhatikan format waktu tersebut saat menyusun email.
Workflow C: membuat invoice setelah layanan selesai
- Tambahkan Cron Trigger yang berjalan setiap jam dari pukul 09.00 hingga 18.00.
- Gunakan Database → Find rows pada Visits dengan kondisi Served is equal to
truedan Invoiced is equal tofalse. - Tambahkan For each dengan daftar
{{ find.rows }}. - Di dalam loop, tambahkan Mayar → Create invoice dengan konfigurasi berikut.
| Field | Nilai |
|---|---|
| Customer name | {{ each.item.name }} |
| Customer email | {{ each.item.email }} |
| Customer mobile | {{ each.item.phone }} |
| Item | {{ each.item.service }} |
| Price | {{ each.item.price }} |
| Redirect URL | URL halaman terima kasih kamu |

- Setelah invoice berhasil dibuat, gunakan Database → Update rows dengan Row ID
{{ each.item.id }}. Isi Invoiced dengantrue, Invoice ID dengan{{ invoice.id }}, dan Payment Link dengan{{ invoice.link }}. - Tambahkan Send Email untuk mengirim email ke
{{ each.item.email }}. Gunakan subject "Tagihan dari Sari Hair Studio" dan sertakan{{ invoice.link }}pada body email.
Step penyimpanan data harus langsung mengikuti step pembuatan invoice. Jika pengiriman email kemudian gagal, kirim ulang link yang tersimpan pada Payment Link. Periksa dashboard Mayar jika hasil pembuatan atau penyimpanan invoice belum dapat dipastikan.
Workflow D: memverifikasi dan mencatat pembayaran
- Tambahkan Payment Trigger dan pilih connection Mayar.
- Gunakan Database → Find rows pada Visits dengan kondisi Email is equal to
{{ trigger.customerEmail }}, Invoiced is equal totrue, dan Paid is equal tofalse. - Tambahkan For each dengan daftar
{{ find.rows }}. - Di dalam loop, gunakan Mayar → Get invoice dengan ID
{{ each.item.invoice_id }}untuk memeriksa invoice pada setiap booking. - Tambahkan Condition yang memeriksa status pembayaran dari output Get invoice. Tentukan nilai pembanding berdasarkan status yang dikembalikan Mayar pada Run kamu.
- Pada cabang yang menyatakan invoice telah dibayar, gunakan Database → Update rows dengan Row ID
{{ each.item.id }}dan ubah Paid menjaditrue. - Tambahkan Send Email pada cabang yang sama untuk mengirim konfirmasi ke
{{ each.item.email }}. Gunakan nilai invoice yang telah diverifikasi untuk isi email.
Sesuaikan pemeriksaan dengan output Mayar yang kamu terima. Jangan menandai seluruh hasil pencarian email sebagai Paid tanpa memverifikasi invoice masing-masing.
Workflow E: meminta review pelanggan
- Tambahkan Cron Trigger yang berjalan setiap hari pukul 10.00.
- Gunakan Database → Find rows dengan kondisi Paid is equal to
truedan Review Sent is equal tofalse. - Tambahkan For each dengan daftar
{{ find.rows }}. - Di dalam loop, gunakan Send Email untuk mengirim email berisi link review.
- Setelah email berhasil dikirim, gunakan Database → Update rows dengan Row ID
{{ each.item.id }}untuk mengubah Review Sent menjaditrue.
Workflow F: mengingatkan kunjungan berikutnya
- Tambahkan Cron Trigger yang berjalan setiap hari pukul 09.00.
- Gunakan Database → Find rows dengan kondisi Next Visit is equal to
{{ system.today }}dan Rebook Sent is equal tofalse. - Tambahkan For each dengan daftar
{{ find.rows }}. - Di dalam loop, gunakan Send Email untuk mengirim email dengan subject "Pengingat kunjungan berikutnya" dan sertakan link Scheduling page.
- Setelah email berhasil dikirim, gunakan Database → Update rows dengan Row ID
{{ each.item.id }}untuk mengubah Rebook Sent menjaditrue.
Uji setiap workflow melalui Test run sebelum melakukan publish. Payment Trigger menggunakan data pembayaran contoh saat Test run, tetapi step lanjutan tetap dijalankan. Gunakan connection Mayar Sandbox, data uji, dan alamat email yang kamu kendalikan saat pengujian.
Mencocokkan pembayaran dengan booking
Satu pelanggan dapat memiliki beberapa invoice yang belum dibayar. Karena itu, pencarian berdasarkan email pada Workflow D hanya menghasilkan kandidat booking. Gunakan Get invoice untuk memverifikasi status masing-masing invoice sebelum menandai Paid.
Kamu juga dapat memeriksa {{ trigger.data }}. Jika payload menyediakan identifier invoice yang sesuai dengan data yang kamu simpan, gunakan identifier tersebut untuk mencari booking yang tepat. Periksa payload pada Run; jangan mengasumsikan identifier selalu tersedia.
Batasan dan penanganan kegagalan
Jumlah data per Run
Operasi Find rows mengembalikan maksimal 50 baris secara default. Kamu dapat menaikkan Max rows hingga 100. Step For each juga dibatasi hingga 100 item, sehingga satu Run pada contoh ini memproses maksimal 100 booking.
Perubahan Checkbox tidak langsung memulai workflow
Mencentang Served tidak memicu workflow secara langsung. Workflow C, E, dan F menggunakan Cron. Invoice diproses pada jadwal berikutnya selama masih berada dalam jam operasional workflow; perubahan setelah pukul 18.00 menunggu jadwal berikutnya pada hari berikutnya. Kegagalan Run atau batas hasil pencarian juga dapat menunda pemrosesan.
Perhitungan pendapatan
Alur belum menyediakan operasi penjumlahan angka pada workflow ini. Gunakan dashboard Mayar untuk melihat total transaksi dan laporan pendapatan.
Biaya layanan
Email yang dikirim menggunakan kuota paket Resend. Invoice pada connection Mayar Production merupakan invoice sebenarnya. Gunakan Sandbox selama pengujian, lalu beralih ke Production setelah konfigurasi dan hasil Run diperiksa.
Kegagalan pembuatan invoice
Create invoice tidak menjalankan retry otomatis. Jika step gagal, periksa dashboard Mayar sebelum menjalankan ulang workflow karena invoice mungkin sudah dibuat meskipun Alur tidak menerima hasilnya. Lihat penanganan kegagalan Mayar.

