se-hari.com se-hari.com

Rekap rapat mingguan ke spreadsheet

Setiap Jumat sore, semua rapat minggu itu masuk ke satu spreadsheet. Berguna untuk melihat pola: berapa jam tim habiskan di rapat, dan rapat mana yang…

2 menit baca Diperbarui 15 Agustus 2026 Lihat sebagai Markdown

Setiap Jumat sore, semua rapat minggu itu masuk ke satu spreadsheet. Berguna untuk melihat pola: berapa jam tim habiskan di rapat, dan rapat mana yang berulang tanpa menghasilkan keputusan.

#Kapan resep ini masuk akal

Rekap berkala berguna kalau seseorang benar-benar akan membacanya — biasanya manajer atau pemilik anggaran. Kalau tidak ada pembacanya, spreadsheet ini akan tumbuh diam-diam tanpa pernah dibuka. Pertimbangkan menambahkan notifikasi ringkas ke Slack yang menautkan ke spreadsheet, bukan mengandalkan orang membukanya sendiri.

#Yang dihasilkan

Satu blok baris per minggu di spreadsheet rekap.

#Yang Anda butuhkan

  • n8n self-hosted dengan community node n8n-nodes-sehari terpasang
  • notulen:read
  • Kredensial Google Sheets di n8n

Kalau belum memasang node-nya, ikuti panduan n8n lebih dulu — pemasangannya satu langkah dari menu Settings.

#Alur workflow

  1. Tiap Jumat 17:00 (scheduleTrigger)
  2. Notulen Minggu Ini (Se-Hari: seHari)
  3. Tulis ke Spreadsheet (noOp)

#Cara memakainya

  1. Salin JSON di bawah
  2. Di n8n: Workflows → Import from Clipboard, lalu tempel
  3. Pilih kredensial Se-Hari API pada setiap node Se-Hari
  4. Sesuaikan node tujuan (lihat catatan di bawah)
  5. 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

Filter tanggal memakai ekspresi $now.minus(7, "days"), jadi rentangnya bergeser sendiri tiap minggu tanpa perlu diubah. Toggle Ambil Semua menelusuri paginasi cursor sampai habis — tanpanya Anda hanya mendapat 20 rapat pertama.

#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

Jadwal n8n memakai zona waktu instance Anda, sedangkan data Se-Hari memakai WIB. Kalau instance n8n Anda berjalan di UTC, "Jumat 17:00" di n8n adalah Sabtu dini hari WIB — dan rekapnya akan memuat satu hari yang sebenarnya milik minggu berikutnya.

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

  • Ubah menjadi rekap bulanan dengan mengganti jadwal dan rentang filternya.
  • Tambahkan baris ringkasan berisi total jam rapat minggu itu, dihitung lewat node Code.
  • Kirim tautan spreadsheet ke Slack setiap Jumat sore sebagai pengingat bahwa rekapnya sudah siap.

#Workflow JSON

json
{
  "name": "Rekap Mingguan ke Sheets",
  "nodes": [
    {
      "parameters": {
        "content": "## Rekap Mingguan\n\nSetiap Jumat sore, semua rapat minggu ini masuk satu spreadsheet.\n\nFilter tanggal memakai ekspresi, jadi rentangnya bergeser sendiri tiap minggu.",
        "width": 460,
        "height": 260
      },
      "id": "note-1",
      "name": "Catatan",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -40,
        -40
      ]
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                5
              ],
              "triggerAtHour": 17
            }
          ]
        }
      },
      "id": "sch-TiapJumat1700",
      "name": "Tiap Jumat 17:00",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        0,
        300
      ]
    },
    {
      "parameters": {
        "resource": "notulen",
        "operation": "getAll",
        "returnAll": true,
        "filters": {
          "status": "completed",
          "from": "={{ $now.minus(7, \"days\").toISO() }}",
          "to": "={{ $now.toISO() }}"
        }
      },
      "id": "sh-NotulenMingguIni",
      "name": "Notulen Minggu Ini",
      "type": "n8n-nodes-sehari.seHari",
      "typeVersion": 1,
      "position": [
        220,
        300
      ],
      "credentials": {
        "seHariApi": {
          "id": "__SEHARI_CRED__",
          "name": "Se-Hari API"
        }
      }
    },
    {
      "parameters": {},
      "id": "dst-TuliskeSpreadsheet",
      "name": "Tulis ke Spreadsheet",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        440,
        300
      ],
      "notes": "Ganti dengan Google Sheets → Append Row. Kolom: {{ $json.created_at }}, {{ $json.note.title }}, {{ $json.note.duration_minutes }}",
      "notesInFlow": true
    }
  ],
  "connections": {
    "Tiap Jumat 17:00": {
      "main": [
        [
          {
            "node": "Notulen Minggu Ini",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notulen Minggu Ini": {
      "main": [
        [
          {
            "node": "Tulis ke Spreadsheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": [
    {
      "name": "Se-Hari"
    }
  ]
}

#Resep lain

Siap mencoba?

Buat API key gratis di dashboard — tidak ada biaya berlangganan, kredit terpakai hanya saat Anda benar-benar memproses rekaman atau membuat meeting.

Buat API Key