se-hari.com se-hari.com

Kirim notulen lewat email

Ringkasan rapat dikirim otomatis ke peserta segera setelah notulen selesai. Berguna untuk tim yang belum memakai Slack atau Notion, dan untuk peserta…

2 menit baca Diperbarui 15 Agustus 2026 Lihat sebagai Markdown

Ringkasan rapat dikirim otomatis ke peserta segera setelah notulen selesai. Berguna untuk tim yang belum memakai Slack atau Notion, dan untuk peserta eksternal.

#Kapan resep ini masuk akal

Email masih kanal terbaik untuk peserta di luar organisasi Anda — klien, vendor, kandidat. Untuk komunikasi internal, hampir selalu ada kanal yang lebih cepat dibaca. Pertimbangkan juga bahwa email bersifat permanen dan mudah diteruskan; ringkasan rapat internal yang mendarat di inbox pribadi seseorang akan bertahan jauh lebih lama daripada yang Anda perkirakan.

#Yang dihasilkan

Satu email berisi ringkasan dan action item, per rapat.

#Yang Anda butuhkan

  • n8n self-hosted dengan community node n8n-nodes-sehari terpasang
  • notulen:read
  • webhooks:write
  • Kredensial SMTP atau penyedia email di n8n

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

#Alur workflow

  1. Se-Hari Trigger (Se-Hari: seHariTrigger)
  2. Ambil Notulen Lengkap (Se-Hari: seHari)
  3. Kirim Email (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

Susun subject dari judul rapat: Notulen — {{ $json.title }}. Kirim sebagai HTML kalau Anda ingin action item tampil sebagai daftar; email teks polos membuat daftar panjang sulit dibaca di ponsel.

#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

Perhatikan ke mana email dikirim. Payload notulen tidak memuat daftar peserta, jadi alamat tujuannya harus Anda tentukan sendiri — entah tetap, atau diambil dari sistem kalender Anda. Mengirim ke alamat yang salah adalah kebocoran isi rapat, bukan sekadar email nyasar.

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

  • Kirim hanya ringkasan beserta tautan berbagi, alih-alih seluruh isi notulen — lebih aman dan lebih mudah dibaca.
  • Tambahkan node IF yang hanya mengirim kalau rapat menghasilkan minimal satu action item.
  • Susun sebagai digest harian dengan menampung notulen sepanjang hari, bukan satu email per rapat.

#Workflow JSON

json
{
  "name": "Notulen ke Email",
  "nodes": [
    {
      "parameters": {
        "content": "## Notulen ke Email\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-KirimEmail",
      "name": "Kirim Email",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        440,
        300
      ],
      "notes": "Ganti dengan node Send Email. Subject: Notulen — {{ $json.title }}",
      "notesInFlow": true
    }
  ],
  "connections": {
    "Se-Hari Trigger": {
      "main": [
        [
          {
            "node": "Ambil Notulen Lengkap",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ambil Notulen Lengkap": {
      "main": [
        [
          {
            "node": "Kirim Email",
            "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