2025-06-13 14:06:38
Saat melakukan analisis manual suatu dataset akan membutuhkan waktu berjam-jam sehingga tidak efisien. Dalam artikel ini, kita akan membahas bagaimana membangun workflow yang secara otomatis dapat mengambil komentar dari halaman media sosial facebook, mengklasifikasikannya berdasarkan kategori dan sentimen, dan menyajikannya ke dalam dashboard yang mudah dianalisis dengan n8n, OpenAI dan metabase.
Di n8n, create workflow baru dan tambahkan dengan manual trigger untuk memulai workflow
Tambahkan node 2 Facebook Graph API. 1 untuk get page ID dengan node me
dan untuk get Post ID sesuai dengan page ID dengan node sebagai berikut
Setelah mendapatkan ID postingan, selanjutnya kita baru bisa mendapatkan komentar setiap postingan. Buat node facebook graph API dan tambahkan node expression ini. $json.postId didapat dari response Get Post ID, silakan sesuaikan.
{{ $json.postId }}/comments?fields=from,like_count,likes,message,created_time,id,comments{from,created_time,id,message}&limit=20
Jika dibutuhkan format ulang response dari response agar lebih rapi
Terkadang komentar mengandung karakter yang menyebabkan error ketika eksekusi secara batch sehingga perlu tambahan formatting
function escapeJSONString(str) {
return str
.replace(/\\/g, “\\\\”)
.replace(/”/g, ‘\\”’)
.replace(/\n/g, “\\n”)
.replace(/\r/g, “\\r”)
.replace(/\t/g, “\\t”);
}
let safeMessage = escapeJSONString(rawMessage);
return {
json: {
safeMessage: safeMessage
}
};
});
Selanjutnya kita akan menggunakan node http request untuk mendapatkan hasil klasifikasi sentimen dengan OpenAI. Sebelum proses ini dilakukan pastikan sudah punya API key OpenAInya
Ini contoh prompting ke OpenAI yang diinput di Body JSON.
{
"model": "gpt-4.1-mini-2025-04-14",
"messages": [
{
"role": "system",
"content": "You classify the sentiment of a message into exactly one word: Neutral or Negative. Respond only with one word: 'Neutral' if the message is a question, statement, or neutral information. Respond 'Negative' if it expresses complaint, dissatisfaction, or negative emotion."
},
{
"role": "user",
"content": "{{ $json["safeMessage"] }}"
}
],
"temperature": 0,
"max_tokens": 200
}
Tambahkan node Code untuk reformat response dari OpenAI agar hasilnya hanya data sentimen saja.
const inputItems = $items();
return inputItems.map(item => {
const sentiment = item.json.choices?.[0]?.message?.content || null;
return {
json: {
sentiment: sentiment
}
};
});
Selain menggunakan htpp request, kita juga dapat menggunakan AI nodes Sentiment Analysis dan Text Classifier untuk mendapatkan hasil klasifikasi dari AI
Lakukan hal yang sama untuk mendapatkan hasil klasifikasi komentar, lalu merge kedua node tersebut agar menjadi 1 menggunakan node Merge. Pilih mode Combine by Position dengan 2 input.
Data yang telah diklasifikasikan siap untuk disimpan dan divisualisasikan
Merge data hasil klasifikasi dengan metadata komentar dari facebook menggunakan node Merge dengan mode Combine by Position.
Simpan data hasil klasifikasi komentar ke database. Berikut contoh insert data ke table facebook di db postgres. Mapping data dapat dilakukan secara otomatis jika data response sama persis dengan nama kolom di table databasenya, jika tidak lakukan mapping manual
Lakukan test workflow untuk memastikan proses dapat berjalan
Setelah data tersedia di database, kita bisa membuat dashboard di Metabase dan melakukan analisis datanya.
Mengotomatisasi klasifikasi komentar Facebook dengan n8n, OpenAI, dan Metabase memungkinkan kita mendapatkan wawasan yang berharga dengan lebih efisien, menghemat waktu, dan memperbaiki pengambilan keputusan. Mulailah mengimplementasikan solusi ini untuk meningkatkan analisis media sosial Anda.