Membuat layanan
Buat dan atur layanan (event type) Termilo: durasi, buffer, harga, deposit, mode lokasi, dan staf. Bisa lewat dashboard atau langsung lewat endpoint POST /api/services.
Layanan adalah hal yang dipesan pelanggan — konsultasi 1:1, kelas, meeting, atau sesi apa pun yang punya durasi. Di standar penamaan Termilo istilahnya event type; di skema dan API resource-nya secara literal bernama services (tidak ada tabelevent_type terpisah).
tenant_owner atau tenant_admin (peran tulis). tenant_staff dan tenant_viewer hanya bisa membaca.Lewat dashboard#
Cara tercepat. Semua langkah di bawah mengikuti editor layanan di dashboard.
- Katalog → Layanan → Tambah layanan
Buka dashboard, masuk ke Katalog, lalu pilih Layanan dan klik Tambah layanan.
- Identitas layanan
Isi Nama, Kategori, dan Deskripsi. Aktifkan "Aktif untuk dibooking" agar layanan muncul di halaman publik; matikan untuk menyembunyikannya tanpa menghapus.
- Durasi & buffer
Atur Durasi (menit) dan Buffer setelah (menit) lewat stepper. Buffer adalah jeda otomatis sesudah sesi agar slot berikutnya tidak menempel.
- Harga & deposit
Isi Harga (Rp). Opsional, aktifkan "Minta deposit" lalu pilih 20% / 30% / 50% dari harga.
- Lokasi & staf
Pilih Mode lokasi (offline / online / customer / phone / manual) dan tetapkan staf yang melayani layanan ini.
- Simpan
Simpan. Layanan langsung tersedia di halaman booking jika statusnya aktif.
active langsung muncul di halaman booking. Pilih hidden untuk menyembunyikannya dari pelanggan tanpa menghapus, atau disabled untuk menonaktifkan.Field sebuah layanan#
Field di bawah adalah body untuk POST /api/services. Hanya slug, name, dan durationMin yang wajib; sisanya punya nilai bawaan yang aman. Buffer default 0, status default active.
Catatan satuan: priceAmount memakai satuan terkecil mata uang dan boleh null untuk layanan gratis. Durasi dan buffer dalam menit. Semua timestamp di respons adalah epoch milidetik UTC (sufiks _at_ms).
capacity di layanan. Kapasitas berasal dari resource (resources.capacity) yang ditautkan ke layanan; availability mengembalikan capacityRemaining per slot. Selengkapnya di panduan Booking grup & kelas.Lewat API#
Dashboard memakai POST /api/services dengan sesi + CSRF. Integrasi server-to-server memakai GET /v1/services, POST /v1/services, dan PATCH /v1/services/:serviceId dengan API key tenant. Read membutuhkan services:read; create dan update membutuhkan services:write.
Idempotency-Key. Retry request yang sama mengembalikan layanan awal tanpa duplikat; gunakan PATCH dengan status: disabled untuk menonaktifkan layanan secara recoverable.POST /api/servicesLiveAPI key tenant · POST /v1/servicesSukses mengembalikan 201 dengan envelope standar Termilo — ok, data, dan meta.requestId. requestId juga dikirim di header respons x-request-id. Validasi gagal mengembalikan VALIDATION_ERROR (400) dengan details: [{path, message}].
Deposit, lokasi & staf#
Editor layanan juga mengatur deposit, mode lokasi, dan penugasan staf. Ini konfigurasi di sisi dashboard — sebagian tidak ditulis lewat POST /api/services (deposit dan staf memakai relasi tersendiri).
- Minta deposit
Aktifkan per layanan lalu pilih 20% / 30% / 50% dari harga. Nilai ini tampil di ringkasan booking.
- Mode lokasi
Pilih
offline,online,customer,phone, ataumanual. Untuk online, tautan meeting datang dari integrasi Google Meet/Zoom saat booking dibuat. - Staf
Tetapkan staf yang melayani layanan ini. Hanya staf terpilih yang muncul saat pelanggan memilih. Penugasan disimpan lewat relasi
service_staff.