Setiap rapat jadi satu halaman Notion, lengkap dengan ringkasan dan action item. Cocok untuk tim yang sudah menjadikan Notion sebagai arsip pengetahuan.
#Kapan resep ini masuk akal
Notion cocok kalau notulen perlu dicari dan dirujuk berbulan-bulan kemudian, bukan sekadar dibaca sekali. Kalau yang Anda butuhkan hanya pemberitahuan, Slack lebih ringan dan lebih murah disiapkan. Kekuatan Notion baru terasa saat notulen ditautkan ke halaman proyek, klien, atau keputusan — dan itu berarti struktur database-nya perlu dipikirkan lebih dulu.
#Yang dihasilkan
Satu halaman Notion baru per rapat, di database yang Anda pilih.
#Yang Anda butuhkan
- n8n self-hosted dengan community node
n8n-nodes-sehariterpasang notulen:readwebhooks:write- Integrasi Notion dengan akses ke database tujuan
Kalau belum memasang node-nya, ikuti panduan n8n lebih dulu — pemasangannya satu langkah dari menu Settings.
#Alur workflow
- Se-Hari Trigger (
Se-Hari: seHariTrigger) - Ambil Notulen Lengkap (
Se-Hari: seHari) - Buat Halaman Notion (
noOp)
#Cara memakainya
- Salin JSON di bawah
- Di n8n: Workflows → Import from Clipboard, lalu tempel
- Pilih kredensial Se-Hari API pada setiap node Se-Hari
- Sesuaikan node tujuan (lihat catatan di bawah)
- Aktifkan workflow
Kalau workflow ini memakai node trigger, endpoint webhook-nya didaftarkan otomatis saat diaktifkan dan dihapus saat dinonaktifkan. Tidak ada URL yang perlu disalin manual.
#Yang perlu disesuaikan
Notion membatasi satu blok teks di 2.000 karakter. Ringkasan rapat panjang perlu dipecah — node Code sederhana yang membagi teks per paragraf lalu mengirimnya sebagai beberapa blok jauh lebih andal daripada mengirim satu blok raksasa yang ditolak diam-diam.
#Sebelum dijalankan di produksi
Impor dulu ke workflow terpisah dan jalankan sekali secara manual. n8n menyimpan hasil setiap node pada eksekusi terakhir, jadi Anda bisa melihat bentuk data yang sebenarnya keluar dari node Se-Hari sebelum menulis ekspresi apa pun di node berikutnya. Menebak bentuk data lalu memperbaikinya lewat percobaan berulang jauh lebih lambat, dan pada resep yang memakai kredit, percobaan berulang itu ada harganya.
Perhatikan juga penagihan kredit resep ini. Operasi yang membuat meeting memotong kredit saat itu juga, sedangkan operasi notulen menagih setelah pemrosesan selesai sesuai durasi asli rekaman. Kalau workflow Anda membaca saldo tepat setelah mengantre notulen, angkanya belum berubah — itu bukan bug. Pasang batas kredit harian pada API key yang dipakai workflow ini supaya kesalahan sekali tidak berubah menjadi tagihan besar.
#Kalau tidak berjalan seperti seharusnya
Kesalahan paling umum bukan di Se-Hari melainkan di Notion: integrasi Notion harus di-share ke database tujuan secara eksplisit. Tanpa itu, API Notion menjawab "object not found" untuk database yang jelas-jelas ada.
Untuk masalah yang lebih umum, tab Webhooks di dashboard developer memuat riwayat pengiriman lengkap dengan kode respons dari instance n8n Anda — tempat pertama yang harus dilihat ketika trigger tidak pernah berjalan.
#Variasi yang sering diminta
- Tambahkan properti relasi ke database proyek, dan isi berdasarkan kata kunci di judul rapat.
- Simpan action item sebagai to-do block alih-alih teks biasa, sehingga bisa dicentang langsung di Notion.
- Tambahkan properti tanggal dan durasi supaya arsip rapat Anda bisa dilihat sebagai kalender.
#Workflow JSON
{
"name": "Notulen ke Notion",
"nodes": [
{
"parameters": {
"content": "## Notulen ke Notion\n\nBerjalan otomatis setiap kali notulen selesai diproses.\n\n**Yang perlu Anda lakukan:**\n1. Pilih kredensial Se-Hari (scope: notulen:read, webhooks:write)\n2. Ganti node terakhir dengan tujuan Anda\n3. Aktifkan workflow — endpoint webhook didaftarkan otomatis\n\nPayload webhook membungkus entitasnya di bawah nama jenisnya, jadi ekspresinya\nlewat $json.note — BUKAN $json langsung:\n\n{{ $json.note.title }} — judul rapat\n{{ $json.note.summary }} — ringkasan\n{{ $json.note.action_items }} — array action item\n{{ $json.note.duration_minutes }} — durasi\n{{ $json.retryable }} — hanya pada note.failed, sejajar dengan note\n{{ $json._event.type }} — jenis event",
"width": 460,
"height": 260
},
"id": "note-1",
"name": "Catatan",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-40,
-40
]
},
{
"parameters": {
"events": [
"note.completed"
]
},
"id": "trg-notecompleted",
"name": "Se-Hari Trigger",
"type": "n8n-nodes-sehari.seHariTrigger",
"typeVersion": 1,
"position": [
0,
300
],
"credentials": {
"seHariApi": {
"id": "__SEHARI_CRED__",
"name": "Se-Hari API"
}
},
"webhookId": "__AUTO__"
},
{
"parameters": {
"resource": "notulen",
"operation": "get",
"noteId": "={{ $json.note.id }}",
"include": [
"summary",
"action_items"
]
},
"id": "sh-AmbilNotulenLengkap",
"name": "Ambil Notulen Lengkap",
"type": "n8n-nodes-sehari.seHari",
"typeVersion": 1,
"position": [
220,
300
],
"credentials": {
"seHariApi": {
"id": "__SEHARI_CRED__",
"name": "Se-Hari API"
}
}
},
{
"parameters": {},
"id": "dst-BuatHalamanNotion",
"name": "Buat Halaman Notion",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
440,
300
],
"notes": "Ganti dengan node Notion → Create Page. Title: {{ $json.title }}, isi: {{ $json.summary }}",
"notesInFlow": true
}
],
"connections": {
"Se-Hari Trigger": {
"main": [
[
{
"node": "Ambil Notulen Lengkap",
"type": "main",
"index": 0
}
]
]
},
"Ambil Notulen Lengkap": {
"main": [
[
{
"node": "Buat Halaman Notion",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": [
{
"name": "Se-Hari"
}
]
}#Resep lain
- Semua resep n8n
- Panduan n8n — pemasangan node dan kredensial
- Webhook — cara kerja trigger di baliknya