se-hari.com se-hari.com

Transkrip lengkap ke Google Docs

Transkrip penuh dengan penanda penutur disimpan sebagai dokumen Google Docs. Untuk rapat yang isinya perlu dikutip persis — wawancara, sesi klien, rapat…

2 menit baca Diperbarui 15 Agustus 2026 Lihat sebagai Markdown

Transkrip penuh dengan penanda penutur disimpan sebagai dokumen Google Docs. Untuk rapat yang isinya perlu dikutip persis — wawancara, sesi klien, rapat yang berujung keputusan penting.

#Kapan resep ini masuk akal

Transkrip penuh berguna kalau kata persisnya penting: wawancara, sesi dengan klien, rapat yang berujung pada komitmen. Untuk rapat rutin, ringkasan hampir selalu lebih berguna daripada transkrip — tidak ada yang akan membaca ulang dua belas ribu kata percakapan untuk mencari satu keputusan.

#Yang dihasilkan

Satu dokumen Google Docs berisi transkrip lengkap dengan nama penutur.

#Yang Anda butuhkan

  • n8n self-hosted dengan community node n8n-nodes-sehari terpasang
  • notulen:read
  • webhooks:write
  • Kredensial Google Docs 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 Transkrip (Se-Hari: seHari)
  3. Buat Google Doc (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

Resep ini memakai operasi Ambil Transkrip, bukan Ambil Notulen. Alasannya penting: transkrip tidak ikut dalam respons notulen secara bawaan, karena transkrip rapat satu jam bisa puluhan ribu kata dan akan membuat setiap item n8n menjadi sangat besar.

#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

Untuk rapat sangat panjang, batasi transkrip dengan opsi Batas Kata atau ambil per rentang waktu. Google Docs API punya batas ukuran request, dan transkrip rapat tiga jam bisa melewatinya.

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

  • Ambil hanya rentang waktu tertentu lewat opsi Detik Mulai dan Detik Selesai, misalnya lima belas menit terakhir.
  • Gabungkan ringkasan di bagian atas dokumen dan transkrip di bawahnya, sehingga pembaca bisa memilih kedalaman.
  • Simpan ke folder per klien dengan memetakan judul rapat ke id folder Drive.

#Workflow JSON

json
{
  "name": "Transkrip ke Google Docs",
  "nodes": [
    {
      "parameters": {
        "content": "## Transkrip ke Google Docs\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": "transcript",
        "noteId": "={{ $json.note.id }}",
        "transcriptOptions": {}
      },
      "id": "sh-AmbilTranskrip",
      "name": "Ambil Transkrip",
      "type": "n8n-nodes-sehari.seHari",
      "typeVersion": 1,
      "position": [
        220,
        300
      ],
      "credentials": {
        "seHariApi": {
          "id": "__SEHARI_CRED__",
          "name": "Se-Hari API"
        }
      }
    },
    {
      "parameters": {},
      "id": "dst-BuatGoogleDoc",
      "name": "Buat Google Doc",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        440,
        300
      ],
      "notes": "Ganti dengan node Google Docs → Create. Isi dokumen: {{ $json.segments.map(s => s.speaker + \": \" + s.text).join(\"\\n\") }}",
      "notesInFlow": true
    }
  ],
  "connections": {
    "Se-Hari Trigger": {
      "main": [
        [
          {
            "node": "Ambil Transkrip",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ambil Transkrip": {
      "main": [
        [
          {
            "node": "Buat Google Doc",
            "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