{
  "name": "Antworten auf Google-Bewertungen per KI vorschlagen",
  "nodes": [
    {
      "name": "Zeitplan",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "id": "00000000-0000-4000-8000-000000000028",
      "position": [
        240,
        300
      ]
    },
    {
      "name": "Bewertungen laden",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "parameters": {
        "method": "GET",
        "url": "https://mybusiness.googleapis.com/v4/accounts/DEIN_ACCOUNT/locations/DEIN_STANDORT/reviews",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api"
      },
      "id": "00000000-0000-4000-8000-000000000029",
      "position": [
        480,
        300
      ]
    },
    {
      "name": "Unbeantwortete filtern",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "parameters": {
        "jsCode": "const reviews = $input.first().json.reviews || [];\nreturn reviews.filter(r => !r.reviewReply).map(r => ({ json: { name: r.reviewer?.displayName || 'Gast', sterne: r.starRating, text: r.comment || '' } }));"
      },
      "id": "00000000-0000-4000-8000-000000000030",
      "position": [
        720,
        300
      ]
    },
    {
      "name": "KI",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "parameters": {
        "method": "POST",
        "url": "https://api.openai.com/v1/chat/completions",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ model: 'gpt-4o-mini', temperature: 0.2, response_format: { type: 'json_object' }, messages: [ { role: 'system', content: 'Du antwortest im Namen eines deutschen Betriebs auf Google-Bewertungen. Kurz, freundlich, persönlich, ohne Floskeln. Bei Kritik: bedanken, Verständnis, Lösung anbieten. Antworte als JSON: antwort.' }, { role: 'user', content: String('Name: ' + $json.name + ', Sterne: ' + $json.sterne + ', Text: ' + $json.text).slice(0, 12000) } ] }) }}",
        "options": {}
      },
      "id": "00000000-0000-4000-8000-000000000031",
      "position": [
        960,
        300
      ]
    },
    {
      "name": "Antwort aufbereiten",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "parameters": {
        "jsCode": "const src = null;\nreturn $input.all().map((item, i) => {\n  const raw = item.json.choices[0].message.content;\n  let data; try { data = JSON.parse(raw); } catch (e) { data = { text: raw }; }\n  const r = $('Unbeantwortete filtern').all()[i].json; data.mailtext = r.name + ' (' + r.sterne + '): ' + r.text + '\\n\\nVorschlag:\\n' + data.antwort;\n  return { json: data };\n});"
      },
      "id": "00000000-0000-4000-8000-000000000032",
      "position": [
        1200,
        300
      ]
    },
    {
      "name": "E-Mail senden",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2.1,
      "parameters": {
        "fromEmail": "automation@deine-firma.de",
        "toEmail": "inhaber@deine-firma.de",
        "subject": "Neuer Antwortvorschlag für eine Google-Bewertung",
        "emailFormat": "text",
        "text": "={{ $json.mailtext }}",
        "options": {}
      },
      "id": "00000000-0000-4000-8000-000000000033",
      "position": [
        1440,
        300
      ]
    }
  ],
  "connections": {
    "Zeitplan": {
      "main": [
        [
          {
            "node": "Bewertungen laden",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bewertungen laden": {
      "main": [
        [
          {
            "node": "Unbeantwortete filtern",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Unbeantwortete filtern": {
      "main": [
        [
          {
            "node": "KI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "KI": {
      "main": [
        [
          {
            "node": "Antwort aufbereiten",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Antwort aufbereiten": {
      "main": [
        [
          {
            "node": "E-Mail senden",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "pinData": {},
  "active": false,
  "meta": {
    "templateCredsSetupCompleted": false,
    "source": "flowregal.de"
  }
}