> For the complete documentation index, see [llms.txt](https://docs.dibales.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dibales.ai/n8n/tiktok-nodes.md).

# Tiktok Nodes

Dua node ini menghubungkan N8N langsung ke akun TikTok yang sudah terhubung di dibales.ai. **TikTok Trigger** menangkap event masuk sebagai pemicu workflow, sementara **TikTok** (action node) mengirim pesan dan mengelola komentar.

***

**Pastikan kamu sudah:**

* Menginstall package `n8n-nodes-dibales-ai` di instance N8N kamu
* Membuat credential **dibales.ai account** di N8N menggunakan API Key dari dashboard dibales.ai
* Menghubungkan akun TikTok ke dashboard dibales.ai ➡️ [cs.pake.ai](https://cs.pake.ai/)

***

## Node 1: TikTok Trigger

<figure><img src="/files/HzlhSRtMissXnwSrSP1J" alt=""><figcaption></figcaption></figure>

Memulai workflow setiap kali ada event masuk dari akun TikTok yang terhubung.

#### Parameter

| Parameter          | Keterangan                                                                                                                                                                                              |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Webhook URLs**   | URL endpoint yang didaftarkan ke dashboard dibales.ai. Tersedia dua mode: **Test URL** untuk pengujian saat workflow belum aktif, dan **Production URL** untuk workflow yang sudah aktif dan dipublish. |
| **Webhook Secret** | String rahasia yang disalin dari halaman Webhooks di dashboard dibales.ai. Digunakan untuk memverifikasi bahwa kiriman event benar-benar dari sistem dibales.ai.                                        |

#### Setup

1. **Tambahkan node Tiktok Trigger ke workflow kamu** Cari `dibales.ai - Tiktok` di panel node N8N, pilih sebagai trigger.
2. **Salin Webhook URL** Buka node, expand bagian **Webhook URLs**, klik tab **Test URL & Production URL**, lalu *copy* URL-nya.
3. **Buka dashboard dibales.ai,** pilih agent yang ingin dihubungkan → halaman [**Webhooks**](https://cs.pake.ai/agent/integrations/webhooks) → klik **Tambah Webhook**.
4. **Paste** url webhook dari N8N untuk **Test URL**, dan ulangi dengan klik Tambah Webhook untuk **Production URL**

<figure><img src="/files/InAzssQQxmiZEv6xDrfl" alt=""><figcaption></figcaption></figure>

**OPTIONAL**

1. **Salin Webhook Secret** Setelah webhook dibuat, salin nilai **Secret** yang tampil di dashboard.

<figure><img src="/files/prB4HdQxAEaQO8tOGfNn" alt=""><figcaption></figcaption></figure>

2. **Paste Secret ke node** Kembali ke N8N, buka node Tiktok Trigger, paste secret ke field **Webhook Secret**, lalu simpan workflow.

<figure><img src="/files/vk8yxJr6Gq09K10hJbH3" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Bagian ini berfungsi untuk mengamankan URL webhook agar tidak bisa diakses tanpa secret key tersebut
{% endhint %}

{% hint style="warning" %}
Pastikan secret key sesuai dengan webhook url yang digunakan
{% endhint %}

✅ **Selesai!** Workflow akan aktif menerima event dari Tiktok. Setiap event yang masuk akan muncul sebagai satu execution di tab **Executions**.

***

#### Output Ports

Node ini memiliki **7 output port**. Setiap port aktif untuk tipe event yang berbeda, sehingga kamu bisa membuat routing langsung dari satu trigger ke flow yang berbeda.

| Port                              | Event                                        | Keterangan                                                                                 |
| --------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **0. Message Received**           | DM baru masuk dari pengguna                  | Teks, gambar, video, atau stiker yang dikirim ke akun kamu                                 |
| **1. Message Echo**               | Pesan yang dikirim dari akun kamu sendiri    | Berguna untuk logging atau monitoring pesan keluar                                         |
| **2. Message Read**               | Pengguna membaca DM yang kamu kirim          | Field `raw.last_read_timestamp` menunjukkan batas pesan terakhir yang sudah dibaca         |
| **3. Comment Created**            | Komentar baru di video kamu                  | Termasuk reply komentar, cek `raw.parent_comment_id` untuk bedakan komentar utama vs reply |
| **4. Comment Deleted**            | Komentar dihapus dari video kamu             |                                                                                            |
| **5. Comment Visibility Changed** | Status visibility komentar berubah           | Field `raw.visibility` berisi `HIDDEN`, `FRIENDS_ONLY`, atau `PUBLIC`                      |
| **6. Other**                      | Event lain yang tidak masuk kategori di atas | Bisa dipakai untuk debugging atau menangkap event baru                                     |

> 💡 Sambungkan hanya port yang kamu butuhkan. Port yang tidak terhubung tidak akan mempengaruhi performa workflow.

#### Struktur Data Trigger

Payload TikTok menggunakan key `raw`. Gunakan ekspresi berikut untuk mengakses field dari event di node selanjutnya:

**Field tersedia di semua event:**

| Field           | Ekspresi N8N              |
| --------------- | ------------------------- |
| Tipe event      | `{{ $json.event_type }}`  |
| Timestamp event | `{{ $json.occurred_at }}` |

**Untuk event DM (`Message Received` dan `Message Echo`):**

| Field                    | Ekspresi N8N                      |
| ------------------------ | --------------------------------- |
| ID percakapan            | `{{ $json.raw.conversation_id }}` |
| Open ID pengirim         | `{{ $json.raw.from.open_id }}`    |
| Username pengirim        | `{{ $json.raw.from.username }}`   |
| Tipe pesan               | `{{ $json.raw.message.type }}`    |
| Isi teks                 | `{{ $json.raw.message.text }}`    |
| Pengirim adalah follower | `{{ $json.raw.is_follower }}`     |

**Untuk event komentar (`Comment Created`):**

| Field                          | Ekspresi N8N                        |
| ------------------------------ | ----------------------------------- |
| ID komentar                    | `{{ $json.raw.comment_id }}`        |
| ID video                       | `{{ $json.raw.video_id }}`          |
| Username komentator            | `{{ $json.raw.from.username }}`     |
| Isi komentar                   | `{{ $json.raw.text }}`              |
| ID komentar induk (jika reply) | `{{ $json.raw.parent_comment_id }}` |

> 💡 Untuk membalas DM masuk, gunakan `{{ $json.raw.conversation_id }}` sebagai **Conversation ID** di node TikTok Send.

***

## Node 2: TikTok

Action node untuk mengirim pesan dan mengelola komentar melalui akun TikTok di dibales.ai.

### Credential

Di field **Credential**, pilih credential dengan tipe **dibales.ai account**. Jika belum ada, buat credential baru dan isi dengan API Key yang tersedia di dashboard dibales.ai.

> 💡 Berbeda dengan IG dan WA, node TikTok menggunakan **operation terpisah per tipe pesan** — bukan satu operation Send dengan dropdown Type.

***

### Resource: Message

Semua operation pengiriman pesan membutuhkan **Conversation ID** sebagai parameter utama. Ambil dari trigger event: `{{ $json.raw.conversation_id }}`.

**Operation: Send Text**

Kirim pesan teks ke percakapan TikTok.

| Parameter           | Keterangan                                                                  |
| ------------------- | --------------------------------------------------------------------------- |
| **Conversation ID** | ID percakapan tujuan. Ambil dari trigger: `{{ $json.raw.conversation_id }}` |
| **Text**            | Isi teks pesan yang akan dikirim.                                           |

***

**Operation: Send Image**

Kirim pesan berisi gambar.

| Parameter           | Keterangan                                                                       |
| ------------------- | -------------------------------------------------------------------------------- |
| **Conversation ID** | ID percakapan tujuan.                                                            |
| **URL**             | URL publik dari gambar yang akan dikirim. File harus bisa diakses secara publik. |

***

**Operation: Send Button**

Kirim pesan dengan tombol CTA yang bisa diklik pengguna.

| Parameter           | Keterangan                                                                                                        |
| ------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Conversation ID** | ID percakapan tujuan.                                                                                             |
| **Text**            | Teks utama pesan yang tampil di atas tombol.                                                                      |
| **Buttons**         | Daftar tombol. Klik **Add Button**, isi **Title** (label tombol) dan **URL** atau **Payload** sesuai tipe tombol. |

***

### Resource: Comment

Operasi untuk mengelola komentar di video TikTok.

| Operation  | Fungsi                                      | Parameter Utama                                             |
| ---------- | ------------------------------------------- | ----------------------------------------------------------- |
| **Reply**  | Balas komentar di video                     | `Comment ID`: ID komentar yang dibalas, `Text`: isi balasan |
| **Hide**   | Sembunyikan komentar                        | `Comment ID`: ID komentar yang akan disembunyikan           |
| **Unhide** | Tampilkan kembali komentar yang tersembunyi | `Comment ID`: ID komentar yang akan ditampilkan             |
| **Delete** | Hapus komentar                              | `Comment ID`: ID komentar yang akan dihapus                 |

> 💡 `Comment ID` bisa diambil langsung dari output port **Comment Created**: `{{ $json.raw.comment_id }}`

***

#### Output Data

Semua operation di **Resource: Message** mengembalikan output dengan struktur yang konsisten:

| Field                 | Tipe              | Keterangan                    |
| --------------------- | ----------------- | ----------------------------- |
| `message_id`          | String            | ID pesan di sistem dibales.ai |
| `platform_message_id` | String            | ID pesan asli di TikTok       |
| `sent_at`             | String (ISO 8601) | Timestamp saat pesan terkirim |

Akses field ini di node berikutnya dengan ekspresi: `{{ $json.message_id }}`, `{{ $json.platform_message_id }}`, dst.

***

### Catatan

> ⚠️ Nodes ini saat ini masih dalam tahap **staging**. Tersedia untuk early access. Perilaku dan parameter bisa berubah sebelum rilis publik penuh.

***

> \[Update Mei 2026] — Halaman ini dirilis bersamaan dengan peluncuran early access N8N nodes dibales.ai.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.dibales.ai/n8n/tiktok-nodes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
