AutomationFlowsWeb Scraping › AI Chatbot-Backend

AI Chatbot-Backend

AI Chatbot-Backend. Uses scheduleTrigger, chainLlm, lmChatGoogleGemini, outputParserStructured. Scheduled trigger; 12 nodes.

Cron / scheduled trigger★★★★☆ complexityAI-powered12 nodesChain LlmLm Chat Google GeminiOutput Parser Structured@Apify/N8N Nodes ApifyRss Feed ReadGoogle Sheets
Web Scraping Trigger: Cron / scheduled Nodes: 12 Complexity: ★★★★☆ AI nodes: yes

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "updatedAt": "2026-02-22T12:03:50.586Z",
  "createdAt": "2026-02-13T09:47:33.610Z",
  "id": "BkxSgCu84ExUBjDs",
  "name": "AI Chatbot-Backend",
  "active": false,
  "isArchived": false,
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "months",
              "triggerAtHour": 7
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        0
      ],
      "id": "8d7f6c8b-c593-4a9c-a451-ccbe6729cb07",
      "name": "Schedule Trigger"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        704,
        -16
      ],
      "id": "c774060d-f49d-484f-963b-476d446ac72d",
      "name": "Merge"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Kamu adalah Analis Data PLN.\nTugasmu adalah membaca data mentah dan mengubahnya menjadi format database JSON.\n\nDATA INPUT:\n- Sumber: {{ $json.Sumber }}\n- Tanggal: {{ $json.Tanggal }}\n- Isi Konten: {{ $json.Konten_teks }}\n- Komentar/Info Tambahan: {{ $json.Komentar }}\n\nINSTRUKSI ANALISIS:\n1. Baca konten di atas.\n2. Tentukan SENTIMEN (Wajib pilih satu: \"Positif\", \"Negatif\", atau \"Netral\").\n3. Buat RINGKASAN (Maksimal 15 kata).\n4. Tentukan TOPIK (Contoh: \"Pemadaman\", \"Promo\", \"Gangguan\", \"Apresiasi\").\n\nOUTPUT JSON SAJA:\nBerikan output HANYA dalam format JSON valid (tanpa markdown ```json atau teks lain), persis seperti ini:\n{\n\"sentimen\": \"...\",\n\"ringkasan\": \"...\",\n\"topik\": \"...\"\n}",
        "hasOutputParser": true,
        "batching": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.9,
      "position": [
        1184,
        0
      ],
      "id": "63d6b017-eb39-407b-a0b7-64332a7c326a",
      "name": "Basic LLM Chain"
    },
    {
      "parameters": {
        "modelName": "models/gemma-3-27b-it",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        1184,
        256
      ],
      "id": "125fb8f5-4901-472f-bbae-8e8598391990",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "2fca0db9-9666-4867-947f-a7a2152e15ca",
              "name": "Tanggal",
              "value": "={{ $now }}",
              "type": "string"
            },
            {
              "id": "60d2fa21-02da-4fc6-8667-2c4c32da38b3",
              "name": "Sumber",
              "value": "Instagram",
              "type": "string"
            },
            {
              "id": "11772545-f783-41c5-ac85-0ab574ed7d02",
              "name": "Konten_teks",
              "value": "={{ $json.caption }}",
              "type": "string"
            },
            {
              "id": "7afe4dfe-a3a1-42fe-bbcf-e7472f216e0a",
              "name": "Komentar",
              "value": "={{ $json.latestComments }}",
              "type": "array"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        464,
        96
      ],
      "id": "d1bc9eb9-02e1-4cf4-a9c4-594e49e245dc",
      "name": "Edit Fields Apify"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "21085c57-a948-4626-90b5-2829aee22c18",
              "name": "Tanggal",
              "value": "={{ $json.pubDate }}",
              "type": "string"
            },
            {
              "id": "58db5212-0e11-4189-a9c3-80bc0421fe35",
              "name": "Sumber",
              "value": "Google News",
              "type": "string"
            },
            {
              "id": "0eb74e8e-caf6-4aef-aea3-ff461a7ff453",
              "name": "Konten_teks",
              "value": "={{ $json.title }}",
              "type": "string"
            },
            {
              "id": "3aabf531-61d6-4d9b-b4ca-f2d36f4cb7ae",
              "name": "Komentar",
              "value": "Berita Resmi (Tidak ada komentar)",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        464,
        -128
      ],
      "id": "9d68cb85-6814-48b9-94d6-bc08b60f39ec",
      "name": "Edit Fields RSS"
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"sentimen\": \"Positif\",\n  \"ringkasan\": \"Ini adalah ringkasan singkat.\",\n  \"topik\": \"Pemadaman\"\n}"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        1328,
        272
      ],
      "id": "16ed6fbf-abea-4e28-8490-869b351422a0",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "batchSize": 2,
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        912,
        -16
      ],
      "id": "346110ce-b54a-429f-a26e-99f813cfc74d",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "amount": 15
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        736,
        -240
      ],
      "id": "3ab92f99-672e-4991-86ad-c6149d4a4105",
      "name": "Wait"
    },
    {
      "parameters": {
        "resource": "Actor tasks",
        "operation": "Run task and get dataset",
        "actorTaskId": {
          "__rl": true,
          "value": "https://console.apify.com/actors/tasks/qzquEOjml7WiJc0UG/input",
          "mode": "url"
        }
      },
      "type": "@apify/n8n-nodes-apify.apify",
      "typeVersion": 1,
      "position": [
        256,
        96
      ],
      "id": "29616f3a-ac13-4088-9d08-4899c3fbb14a",
      "name": "Run task and get dataset",
      "credentials": {
        "apifyApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "url": "https://news.google.com/rss/search?q=PLN+Aceh+listrik+after:2025-11-01&hl=id&gl=ID&ceid=ID:id",
        "options": {}
      },
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        256,
        -128
      ],
      "id": "dbb85531-9aa6-4f45-ae51-ceae97a83965",
      "name": "RSS Read"
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1DMCQfuqBJdNvbfwKY-86aO3S0zFtpZ6_SL09UQ8yt8g",
          "mode": "list",
          "cachedResultName": "Database PLN",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DMCQfuqBJdNvbfwKY-86aO3S0zFtpZ6_SL09UQ8yt8g/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DMCQfuqBJdNvbfwKY-86aO3S0zFtpZ6_SL09UQ8yt8g/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Tanggal": "={{ $('Loop Over Items').item.json.Tanggal }}",
            "Sumber": "={{ $('Loop Over Items').item.json.Sumber }}",
            "Sentimen": "={{ $json.output.sentimen }}",
            "Ringkasan": "={{ $json.output.ringkasan }}",
            "Topik": "={{ $json.output.topik }}",
            "Komentar": "={{ $('Loop Over Items').item.json.Komentar }}",
            "Konten_teks": "={{ $('Loop Over Items').item.json.Konten_teks }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Tanggal",
              "displayName": "Tanggal",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Sumber",
              "displayName": "Sumber",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Konten_teks",
              "displayName": "Konten_teks",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Komentar",
              "displayName": "Komentar",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Sentimen",
              "displayName": "Sentimen",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Ringkasan",
              "displayName": "Ringkasan",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Topik",
              "displayName": "Topik",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        1472,
        0
      ],
      "id": "1877116d-e9c7-4c9d-b979-aa87d7b08350",
      "name": "Append row in sheet",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Run task and get dataset",
            "type": "main",
            "index": 0
          },
          {
            "node": "RSS Read",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields Apify": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Edit Fields RSS": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run task and get dataset": {
      "main": [
        [
          {
            "node": "Edit Fields Apify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Read": {
      "main": [
        [
          {
            "node": "Edit Fields RSS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append row in sheet": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "c6ef1094-4dfe-4649-9be6-2cdbfa626325",
  "activeVersionId": null,
  "triggerCount": 0,
  "shared": [
    {
      "updatedAt": "2026-02-13T09:47:33.613Z",
      "createdAt": "2026-02-13T09:47:33.613Z",
      "role": "workflow:owner",
      "workflowId": "BkxSgCu84ExUBjDs",
      "projectId": "Lw4fUBTO2lFMdRF0"
    }
  ],
  "activeVersion": null,
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

About this workflow

AI Chatbot-Backend. Uses scheduleTrigger, chainLlm, lmChatGoogleGemini, outputParserStructured. Scheduled trigger; 12 nodes.

Source: https://github.com/SamVivan1/n8n-Workflows-Backup/blob/main/ai-chatbot-backend-BkxSgCu84ExUBjDs.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →