AI-Event- und Budget-Planungs-Suite

Experte

Dies ist ein Project Management, Multimodal AI-Bereich Automatisierungsworkflow mit 20 Nodes. Hauptsächlich werden Code, Merge, Slack, Webhook, EmailSend und andere Nodes verwendet. Automatisierung der Eventplanung und Budgetoptimierung mit Claude AI und Google Sheets

Voraussetzungen
  • Slack Bot Token oder Webhook URL
  • HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
  • Google Sheets API-Anmeldedaten
  • Anthropic API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "KjnG4Wn0rWx8YM2N",
  "meta": {
    "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
    "templateCredsSetupCompleted": true
  },
  "name": "AI Event & Budget Orchestration Suite",
  "tags": [],
  "nodes": [
    {
      "id": "a3da1a86-2036-4134-a947-6adc55068f04",
      "name": "Orchestrierungs-Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -560,
        584
      ],
      "webhookId": "event-orchestrate-webhook",
      "parameters": {
        "path": "event-orchestrate",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "65fa224a-7f5a-49d2-9ec6-5dd24dd86f50",
      "name": "Kundenbriefing lesen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -336,
        296
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "ClientBriefs"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.spreadsheetId || '1234567890abcdefghijklmnop' }}"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "ScSS2KxGQULuPtdy",
          "name": "Google Sheets- test"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "3844dc0e-e84f-45ed-aa29-eb09ab4d7bcd",
      "name": "Budgetkalkulationen lesen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -336,
        488
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "BudgetEstimates"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.spreadsheetId || '1234567890abcdefghijklmnop' }}"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "ScSS2KxGQULuPtdy",
          "name": "Google Sheets- test"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "6545f261-99a3-4ca1-90d8-f5d514dcd68d",
      "name": "Ist-Kosten lesen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -336,
        680
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "ActualCosts"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.spreadsheetId || '1234567890abcdefghijklmnop' }}"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "ScSS2KxGQULuPtdy",
          "name": "Google Sheets- test"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "8c47bb9f-4969-4627-8888-bf64df202de8",
      "name": "Anbieterdatenbank lesen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -336,
        872
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "VendorDatabase"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.vendorSpreadsheetId || $json.spreadsheetId }}"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "ScSS2KxGQULuPtdy",
          "name": "Google Sheets- test"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "23f81562-d7e7-45c7-8c52-d42750b1b68f",
      "name": "Alle Daten fusionieren",
      "type": "n8n-nodes-base.merge",
      "position": [
        -112,
        584
      ],
      "parameters": {
        "mode": "mergeByPosition"
      },
      "typeVersion": 3
    },
    {
      "id": "c3ea1e44-1472-43e2-ac30-da2b19f17a6b",
      "name": "Data Fusion Engine",
      "type": "n8n-nodes-base.code",
      "position": [
        112,
        584
      ],
      "parameters": {
        "jsCode": "const all = $input.all();\nconst brief = all.find(i => i.json.clientName)?.json || {};\nconst budgets = all.filter(i => i.json.budgetAmount !== undefined).map(i => i.json);\nconst actuals = all.filter(i => i.json.actualCost !== undefined).map(i => i.json);\nconst vendors = all.filter(i => i.json.vendorName).map(i => i.json);\n\n// Metadata\nconst meta = {\n  eventId: brief.eventId || `EVT-${Date.now()}`,\n  clientName: brief.clientName || 'Client',\n  eventType: brief.eventType || 'Conference',\n  attendees: parseInt(brief.attendees) || 150,\n  targetBudget: parseFloat(brief.budget) || 75000,\n  eventDate: brief.eventDate || 'TBD',\n  plannerEmail: brief.plannerEmail || 'planner@company.com',\n  spreadsheetId: brief.spreadsheetId || '1234567890abcdefghijklmnop',\n  teamChannel: brief.teamChannel || '#event-orchestration',\n  priority: brief.priority || 'Medium'\n};\n\n// Budget aggregation\nlet totalBudgeted = 0, totalEstimated = 0, totalActual = 0;\nconst categories = {};\n\nbudgets.forEach(b => {\n  const cat = b.category || 'Other';\n  const budgeted = parseFloat(b.budgetAmount || 0);\n  const estimated = parseFloat(b.estimatedCost || 0);\n  totalBudgeted += budgeted;\n  totalEstimated += estimated;\n  if (!categories[cat]) categories[cat] = { budgeted: 0, estimated: 0, actual: 0, items: [] };\n  categories[cat].budgeted += budgeted;\n  categories[cat].estimated += estimated;\n  categories[cat].items.push(b);\n});\n\nactuals.forEach(a => {\n  const cat = a.category || 'Other';\n  const actual = parseFloat(a.actualCost || 0);\n  totalActual += actual;\n  if  if (categories[cat]) categories[cat].actual += actual;\n});\n\nconst variance = totalBudgeted - totalEstimated;\nconst variancePct = totalBudgeted > 0 ? ((variance / totalBudgeted) * 100).toFixed(2) : 0;\n\nreturn {\n  json: {\n    ...meta,\n    budgets, actuals, vendors,\n    totalBudgeted: totalBudgeted.toFixed(2),\n    totalEstimated: totalEstimated.toFixed(2),\n    totalActual: totalActual.toFixed(2),\n    variance: variance.toFixed(2),\n    variancePct,\n    overBudget: variance < 0,\n    categories: Object.values(categories),\n    validation: { errors: [], warnings: [] },\n    timestamp: new Date().toISOString()\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "033b6830-f7af-4a48-be42-02d4f568d5ab",
      "name": "Claude AI Core",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        408,
        808
      ],
      "parameters": {
        "model": "claude-3-5-sonnet-20241022",
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "fK55jZdb6CaYNukq",
          "name": "Anthropic account - test"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "874f36ce-4862-4f15-988c-a5eb08d21594",
      "name": "AI Orchestration Engine",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        336,
        584
      ],
      "parameters": {
        "options": {
          "systemMessage": "=You are an elite event orchestration strategist. Generate a complete event plan + budget optimization in JSON.\n\n**Client:** {{ $json.clientName }}\n**Event:** {{ $json.eventType }} | {{ $json.attendees }} guests | {{ $json.eventDate }}\n**Budget:** ${{ $json.totalBudgeted }} (Target: ${{ $json.targetBudget }}) | Variance: ${{ $json.variance }} ({{ $json.variancePct }}%)\n\n**Current Spend:** Estimated ${{ $json.totalEstimated }} | Actual ${{ $json.totalActual }}\n\n**Categories:** {{ $json.categories.map(c => `${c.category}: $${c.budgeted} → $${c.estimated}`).join(', ') }}\n\n**Vendors Available:** {{ $json.vendors.map(v => v.vendorName).join(', ') }}\n\n**Deliver JSON with:**\n- planSummary\n- optimizedTimeline (phases with dates)\n- optimizedBudgetBreakdown (category, current, recommended, savings)\n- taskList (task, owner, due, priority)\n- vendorRecommendations\n- riskAnalysis (risk, probability, impact, mitigation)\n- totalSavings, finalCost, roiImprovement\n- autoApproval: true/false"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5a91a3b7-02ac-49cf-9536-37dc72355e20",
      "name": "Parsen & Finalisieren",
      "type": "n8n-nodes-base.code",
      "position": [
        688,
        584
      ],
      "parameters": {
        "jsCode": "const ai = $input.first().json.response || $input.first().json.text;\nconst base = $('Data Fusion Engine').first().json;\nlet plan; try { plan = JSON.parse(ai.match(/\\{[\\s\\S]*\\}/)[0]); } catch { plan = { planSummary: 'AI parse failed' }; }\n\nconst savings = (plan.optimizedBudgetBreakdown || []).reduce((s, c) => s + (c.savings || 0), 0);\nconst final = base.totalEstimated - savings;\nconst roi = ((savings / base.totalEstimated) * 100).toFixed(1);\nconst riskScore = (plan.riskAnalysis || []).reduce((s, r) => s + (r.probability === 'High' ? 3 : r.probability === 'Medium' ? 2 : 1) * (r.impact === 'High' ? 3 : 2 : 1), 0);\nconst riskLevel = riskScore > 12 ? 'High' : riskScore > 6 ? 'Medium' : 'Low';\nconst autoApprove = plan.autoApproval !== false && riskLevel !== 'High' && savings > 0;\n\nreturn { json: { ...base, ...plan, totalSavings: savings.toFixed(2), finalCost: final.toFixed(2), roiImprovement: roi, riskScore, riskLevel, autoApprove, orchestratedAt: new Date().toISOString() } };"
      },
      "typeVersion": 2
    },
    {
      "id": "83fbc169-9531-4ba2-9abd-8bfb8367b9b2",
      "name": "Orchestrierten Plan speichern",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        912,
        392
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "OrchestratedPlans"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.spreadsheetId }}"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "ScSS2KxGQULuPtdy",
          "name": "Google Sheets- test"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "3c2551b2-68ca-44c4-b60b-0c33b11c4f75",
      "name": "Team-Synchronisation",
      "type": "n8n-nodes-base.slack",
      "position": [
        912,
        584
      ],
      "webhookId": "3e1216b9-e7dc-4123-87b9-6d5c20e2171d",
      "parameters": {
        "text": "=*{{ $json.eventId }}: {{ $json.clientName }} - {{ $json.eventType }}*\n\n*Status:* {{ $json.autoApprove ? 'AUTO-APPROVED' : 'REVIEW NEEDED' }}\n*Savings:* ${{ $json.totalSavings }} ({{ $json.roiImprovement }}% ROI)\n*Risk:* {{ $json.riskLevel }}\n\n{{ $json.autoApprove ? 'Proceeding to execution' : 'Team review required' }}\n\n[View Full Plan](https://docs.google.com/spreadsheets/d/{{ $json.spreadsheetId }})",
        "select": "channel",
        "channelId": "={{ $json.teamChannel }}",
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "MQ0fgwuS8AzfwFvy",
          "name": "Slack account - test "
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "0cb88543-7089-43e2-87d5-090da88bf447",
      "name": "Führungsbericht",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        912,
        776
      ],
      "webhookId": "49513419-b372-4ecc-88c0-c5c2612e429e",
      "parameters": {
        "options": {},
        "subject": "={{ $json.autoApprove ? 'Approved' : 'Review' }}: {{ $json.eventId }} Plan & Budget",
        "toEmail": "={{ $json.plannerEmail }}",
        "fromEmail": "ai-orchestrator@company.com"
      },
      "credentials": {
        "smtp": {
          "id": "G1kyF8cSWTZ4vouN",
          "name": "SMTP -test"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "90e4cb72-7890-4f58-ab49-51702e273cc1",
      "name": "Notizzettel",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        352
      ],
      "parameters": {
        "width": 160,
        "height": 480,
        "content": "Webhook (POST /event-orchestrate) or Daily @ 7 AM schedule"
      },
      "typeVersion": 1
    },
    {
      "id": "f176b3a1-86c7-4d52-b928-3d64a7d7095d",
      "name": "Notizzettel1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        368
      ],
      "parameters": {
        "width": 160,
        "height": 480,
        "content": "Aggregates totals, calculates variance, validates data"
      },
      "typeVersion": 1
    },
    {
      "id": "795cbb12-04b2-4540-a0b0-af0876ae2383",
      "name": "Notizzettel2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        368
      ],
      "parameters": {
        "width": 256,
        "height": 480,
        "content": "Sends structured prompt to Claude AI"
      },
      "typeVersion": 1
    },
    {
      "id": "523ede3a-588a-45f2-bff7-05fc4dd0e8d0",
      "name": "Notizzettel3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        384
      ],
      "parameters": {
        "width": 160,
        "height": 480,
        "content": "Merges all sources into unified dataset"
      },
      "typeVersion": 1
    },
    {
      "id": "71f0b271-cb1e-4ead-92b9-76f86fffb7c2",
      "name": "Notizzettel4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        -48
      ],
      "parameters": {
        "width": 160,
        "height": 1104,
        "content": "Pulls event metadata from ClientBriefs sheet\n\nFetches budgetAmount, estimatedCost, vendor\n\nLoads real-time spend from ActualCosts\n\nRetrieves pricing, ratings, and reliability"
      },
      "typeVersion": 1
    },
    {
      "id": "abad8a6f-7029-4d85-8015-e4f332dc61ac",
      "name": "Notizzettel5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        368
      ],
      "parameters": {
        "width": 160,
        "height": 480,
        "content": "Extracts JSON, computes savings, ROI, risk, sets auto-approve"
      },
      "typeVersion": 1
    },
    {
      "id": "d016d1ad-268d-4c5e-94c0-cba1694e883b",
      "name": "Notizzettel6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        80
      ],
      "parameters": {
        "width": 160,
        "height": 848,
        "content": "Writes full plan + KPIs to OrchestratedPlans\n\nPosts rich Slack message with status & link\n\nSends interactive HTML email to planner"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "0ab79068-95e9-4212-ba5c-bd692eaf49dc",
  "connections": {
    "23f81562-d7e7-45c7-8c52-d42750b1b68f": {
      "main": [
        [
          {
            "node": "c3ea1e44-1472-43e2-ac30-da2b19f17a6b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "033b6830-f7af-4a48-be42-02d4f568d5ab": {
      "ai_languageModel": [
        [
          {
            "node": "874f36ce-4862-4f15-988c-a5eb08d21594",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "5a91a3b7-02ac-49cf-9536-37dc72355e20": {
      "main": [
        [
          {
            "node": "83fbc169-9531-4ba2-9abd-8bfb8367b9b2",
            "type": "main",
            "index": 0
          },
          {
            "node": "3c2551b2-68ca-44c4-b60b-0c33b11c4f75",
            "type": "main",
            "index": 0
          },
          {
            "node": "0cb88543-7089-43e2-87d5-090da88bf447",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6545f261-99a3-4ca1-90d8-f5d514dcd68d": {
      "main": [
        [
          {
            "node": "23f81562-d7e7-45c7-8c52-d42750b1b68f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "65fa224a-7f5a-49d2-9ec6-5dd24dd86f50": {
      "main": [
        [
          {
            "node": "23f81562-d7e7-45c7-8c52-d42750b1b68f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c3ea1e44-1472-43e2-ac30-da2b19f17a6b": {
      "main": [
        [
          {
            "node": "874f36ce-4862-4f15-988c-a5eb08d21594",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a3da1a86-2036-4134-a947-6adc55068f04": {
      "main": [
        [
          {
            "node": "65fa224a-7f5a-49d2-9ec6-5dd24dd86f50",
            "type": "main",
            "index": 0
          },
          {
            "node": "3844dc0e-e84f-45ed-aa29-eb09ab4d7bcd",
            "type": "main",
            "index": 0
          },
          {
            "node": "6545f261-99a3-4ca1-90d8-f5d514dcd68d",
            "type": "main",
            "index": 0
          },
          {
            "node": "8c47bb9f-4969-4627-8888-bf64df202de8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8c47bb9f-4969-4627-8888-bf64df202de8": {
      "main": [
        [
          {
            "node": "23f81562-d7e7-45c7-8c52-d42750b1b68f",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "3844dc0e-e84f-45ed-aa29-eb09ab4d7bcd": {
      "main": [
        [
          {
            "node": "23f81562-d7e7-45c7-8c52-d42750b1b68f",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "874f36ce-4862-4f15-988c-a5eb08d21594": {
      "main": [
        [
          {
            "node": "5a91a3b7-02ac-49cf-9536-37dc72355e20",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Projektmanagement, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes20
Kategorie2
Node-Typen9
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
Oneclick AI Squad

Oneclick AI Squad

@oneclick-ai

The AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34