AI-Analyse & Handlungsempfehlungen
Claude Opus 4.6Tiefe Analyse aller KPI-Daten mit konkreten Handlungsempfehlungen.
Erst Daten laden (Aktualisieren), dann hier starten.
⛵ SailWithUs KPI Dashboard
Zentrales Marketing-Cockpit für sailwithus.de — alle wichtigen KPIs aus über 12 Plattformen auf einen Blick, mit KI-Analyse und GEO-Monitoring für KI-Sichtbarkeit.
Übersicht
Alle wichtigsten KPIs auf einen Blick: Sessions, Umsatz, Klicks, Conversions. Inklusive Conversion-Funnel vom Websitebesucher bis zum gewonnenen Deal.
Traffic & SEO
Google Analytics 4 mit Kanal-Aufschlüsselung (Organic, Direct, Paid, Social…) und Google Search Console mit Top-Suchanfragen, Klicks und Impressionen.
Paid Media
Google Ads und Meta Ads — Kosten, Klicks, ROAS, Käufe. Vergleich zum Vorjahr oder Vormonat auf Knopfdruck.
Social Media
Meta Business Suite: Instagram- und Facebook-Insights mit Views, Reach, Interactions, Follows — letzte 28 Tage.
E-Mail & Kontakt
Brevo E-Mail-Kampagnen (Open Rate, Click Rate) und Gmail-Kontaktanfragen mit Antwortzeit-Analyse.
Bots & Calls
Chatbase (Chatbot-Gespräche & Leads), Retell AI (Voicebot Marina — Calls, Erfolgsrate, Leads) und Cal.com (gebuchte Beratungs-Calls).
Sales CRM
Pipedrive: Won Deals, Umsatz, Win Rate, Pipeline-Übersicht. Lead Attribution zeigt welche Bots & Calls zu gewonnenen Deals geführt haben.
GEO Monitoring
Testet wie oft sailwithus.de in Antworten von ChatGPT, Gemini, Claude und Llama auf relevante Segelurlaub-Anfragen erwähnt wird. Inklusive technischer GEO-Faktoren.
AI-Analyse
Claude Opus analysiert alle geladenen KPIs und liefert priorisierte, umsetzbare Handlungsempfehlungen auf Deutsch — inkl. Executive Summary und Risiko/Chancen-Einschätzung.
🚀 Installation & erster Start
Node.js installieren
Das Dashboard läuft auf Node.js. Falls noch nicht installiert: nodejs.org/de/download → Version 18 oder neuer herunterladen und installieren.
START.bat doppelklicken
Die Datei START.bat im Dashboard-Ordner starten. Beim ersten Start werden alle benötigten Pakete automatisch installiert (einmalig, ca. 1 Minute).
API-Keys eintragen (nur beim ersten Start)
Die Datei .env im Dashboard-Ordner mit einem Texteditor öffnen und die gewünschten API-Keys eintragen. Dann START.bat erneut starten.
Dashboard im Browser öffnen
Der Browser öffnet sich automatisch auf http://localhost:3000. Monat auswählen → Aktualisieren klicken → alle Daten werden geladen.
Gmail-Authentifizierung (einmalig, optional)
Für den Gmail-Kontaktanfragen-Tab: node setup-gmail.js im Terminal ausführen. Ein Browser-Fenster öffnet sich zur Google-Anmeldung. Das Token wird lokal gespeichert.
🖥️ Bedienung
| Element | Funktion |
|---|---|
| Monat-Auswahl (oben links) | Wähle den gewünschten Auswertungszeitraum — einzelne Monate oder "Letzte 7/28 Tage" für Rolling Windows |
| 📅 vs. Vorjahr / Vormonat | Wechselt den Vergleichszeitraum für alle Metriken: entweder selber Monat im Vorjahr oder der unmittelbare Vormonat |
| ▶ Aktualisieren | Lädt alle Plattformen parallel neu. Ein Ladebalken und Status-Pills zeigen den Fortschritt in Echtzeit |
| 🌙 / ☀️ Theme | Wechselt zwischen Dark und Light Mode |
| Tabs (oben) | Wechseln zwischen den Bereichen: Übersicht, Traffic, Paid, Social, E-Mail, Bots, CRM, GEO, AI-Analyse |
| ✨ AI-Analyse starten | Startet die Claude-Analyse aller geladenen KPIs. Streamt die Antwort live. Erst Daten laden, dann analysieren. |
| Status-Pills (unter dem Header) | Grün = Daten geladen ✓ · Gelb = Kein API Key · Rot = Fehler · Blau blinkend = Lädt gerade |
🔑 API-Keys — Wo bekomme ich sie?
Du brauchst nicht alle Keys. Das Dashboard zeigt nur Plattformen an, für die ein Key vorhanden ist.
| Plattform | Key holen unter | Typ |
|---|---|---|
| 📊 Google Analytics + 🔍 Search Console | console.cloud.google.com → OAuth 2.0 Client IDs → Desktop App → GOOGLE_CLIENT_ID + GOOGLE_CLIENT_SECRET |
Empfohlen |
| ✉️ Gmail (Kontaktanfragen) | Gleiche Google Cloud Console — separaten OAuth Client für Gmail anlegen → GMAIL_CLIENT_ID + GMAIL_CLIENT_SECRET |
Optional |
| 📘 Meta Ads + 📱 Instagram/Facebook | developers.facebook.com/apps → App anlegen → Long-lived User Token → META_APP_ID, META_APP_SECRET, META_ACCESS_TOKEN |
Optional |
| 👁️ SISTRIX | app.sistrix.com → Einstellungen → API → SISTRIX_API_KEY |
Optional |
| 🎯 Google Ads | Google Ads API → Developer Token + Customer ID → GOOGLE_ADS_DEVELOPER_TOKEN |
Optional |
| 📧 Brevo | app.brevo.com → Einstellungen → API-Schlüssel → BREVO_API_KEY |
Optional |
| 📅 Cal.com | app.cal.com → Settings → API Keys → CALCOM_API_KEY |
Optional |
| 💬 Chatbase | chatbase.co → Settings → API Keys → CHATBASE_API_KEY |
Optional |
| 📞 Retell AI | app.retellai.com → Settings → API Keys → RETELL_API_KEY |
Optional |
| 📈 Pipedrive CRM | app.pipedrive.com → Einstellungen → Personal Preferences → API → PIPEDRIVE_API_KEY |
Optional |
| ✨ Claude AI (KI-Analyse) | console.anthropic.com → API Keys → ANTHROPIC_API_KEY |
Empfohlen |
| 🤖 ChatGPT (GEO) | platform.openai.com/api-keys → Create new key → OPENAI_API_KEY |
Optional |
| 🔵 Gemini (GEO + Web-Suche) | aistudio.google.com/apikey → Create API Key → GEMINI_API_KEY |
Optional |
| ⚡ Groq / Llama (GEO, kostenlos) | console.groq.com/keys → Create API Key → GROQ_API_KEY |
Kostenlos |
.env-Datei auf deinem Computer gespeichert. Sie werden nicht übertragen oder geteilt.🔭 GEO Monitoring — Was wird hier gemessen?
GEO = Generative Engine Optimization. Das Dashboard misst, wie sichtbar sailwithus.de in KI-Antworten ist.
| Modell | Besonderheit | Benötigt |
|---|---|---|
| Claude Haiku | Antwortet aus Trainingsdaten — zeigt langfristige Markenbekanntheit | ANTHROPIC_API_KEY |
| ChatGPT GPT-4o mini | Antwortet aus Trainingsdaten — weltweit meistgenutztes KI-Modell | OPENAI_API_KEY |
| Gemini 1.5 Flash | Mit Google Search Grounding — sucht aktiv im Web, sehr aktuell | GEMINI_API_KEY |
| Llama 3.3 70B (Groq) | Open-Source-Modell, kostenlos, aus Trainingsdaten | GROQ_API_KEY |
Jedes Modell beantwortet 6 Anfragen rund um Segelurlaub, Mitsegeln und Yachtcharter. Die Citation Rate zeigt, wie oft sailwithus.de in den Antworten erwähnt wird (0–100%). Zusätzlich werden technische Faktoren geprüft: llms.txt, Robots.txt-Freigaben für KI-Bots und Schema.org-Markup.
🔄 Dashboard weiterbearbeiten — Session mit Claude Code neu aufsetzen
Wenn deine lokale Claude-Code-Session verloren geht (Laptop-Neustart, Terminal zu, etc.), so kannst du eine neue Session mit vollem Zugriff auf alle Connectoren und Funktionen wieder aufbauen.
📁 Lokales Projektverzeichnis
Der Code liegt lokal hier:
cd "/Users/lucas/Downloads/wetransfer_sailwithus-dashboard_2026-04-02_0550/SailWithUs-Dashboard 2"
Falls dieses Verzeichnis nicht mehr existiert, kann der gesamte Stand aus dem Server zurückgeholt werden (siehe unten).
🔑 Zugriff auf den Server
Server-IP, SSH-Key und PM2-Prozessname:
| Host | root@91.98.74.113 (Hetzner) |
| SSH-Key | ~/.ssh/sailwithus_deploy |
| Working dir | /var/www/dashboard/ |
| PM2 Prozess | dashboard (Port 3000, hinter nginx mit Basic-Auth auf dashboard.sailwithus.de) |
| Cache | /var/www/dashboard/data/cache.json (Multi-Period-Cache, täglicher Cron um 8:30 Berlin-Zeit) |
| .env | /var/www/dashboard/.env (alle API-Keys, Credentials) |
🚀 Neue Claude-Code Session starten — Schritt-für-Schritt
- Terminal öffnen und ins Projektverzeichnis wechseln:
cd "/Users/lucas/Downloads/wetransfer_sailwithus-dashboard_2026-04-02_0550/SailWithUs-Dashboard 2"
- Claude Code starten:
claude
- Kontext geben — gleich am Anfang die folgende Nachricht senden, damit Claude weiß was los ist:
Ich arbeite am sailwithus Marketing-Dashboard. Code liegt hier lokal, Server ist root@91.98.74.113 (SSH-Key ~/.ssh/sailwithus_deploy), auf dem Server unter /var/www/dashboard/ läuft der PM2-Prozess "dashboard". Frontend dashboard.sailwithus.de hinter Basic-Auth. Bitte einen kurzen Status-Check machen: was läuft, was nicht, gibt es offene PRs/Bugs.
- Verbindung testen — Claude wird typischerweise diesen Test durchführen:
ssh -i ~/.ssh/sailwithus_deploy root@91.98.74.113 "pm2 status dashboard"
🧩 Integrierte Connectoren (vollständige Liste)
| Connector | Datei | API-Key in .env |
|---|---|---|
| Google Analytics 4 | apis/ga4.js | GOOGLE_CLIENT_ID/SECRET (OAuth + tokens/google-token.json) |
| Google Search Console | apis/gsc.js | derselbe OAuth-Token |
| Google Ads | apis/google-ads.js | GOOGLE_ADS_DEVELOPER_TOKEN + GOOGLE_ADS_CUSTOMER_ID |
| Meta Ads | apis/meta-ads.js | FACEBOOK_ACCESS_TOKEN + FACEBOOK_AD_ACCOUNT_ID |
| Meta Business (IG+FB) | apis/meta-business.js | derselbe Token + FACEBOOK_PAGE_ID |
| Pinterest Ads | apis/pinterest.js | PINTEREST_ACCESS_TOKEN (Trial-Token 24h-Rotation) oder Standard via OAuth |
| SISTRIX | apis/sistrix.js | SISTRIX_API_KEY |
| Brevo (Newsletter) | apis/brevo.js | BREVO_API_KEY |
| Gmail (Kontaktanfragen) | apis/gmail.js | derselbe Google-OAuth-Token |
| Cal.com | apis/calcom.js | CALCOM_API_KEY |
| Chatbase (Sailbot, Headskipper) | apis/chatbase.js | CHATBASE_API_KEY + Bot-IDs |
| Retell AI (Voicebot Marina) | apis/retell.js | RETELL_API_KEY (v3-API) |
| Pipedrive CRM | apis/pipedrive.js | PIPEDRIVE_API_KEY + Pipeline-ID + Person-Lookup-Cache |
| Twilio | apis/twilio.js | TWILIO_ACCOUNT_SID + TWILIO_AUTH_TOKEN |
| Outbrain | apis/outbrain.js | OUTBRAIN_TOKEN (läuft regelmäßig ab — manueller Refresh) |
| Google Reviews | apis/google-reviews.js | GOOGLE_PLACES_API_KEY + GOOGLE_PLACE_ID |
| Shopify (Crew-Shop) | apis/shopify.js | SHOPIFY_SHOP + SHOPIFY_ACCESS_TOKEN + SHOPIFY_API_VERSION |
| Gelato (Print-on-Demand) | apis/gelato.js | GELATO_API_KEY |
| Stripe | apis/stripe.js | STRIPE_API_KEY (Restricted Key, Live-Mode) |
| Anthropic Claude (AI-Analyse + GEO) | direkt in server.js | ANTHROPIC_API_KEY |
🔄 Standard-Deployment-Workflow
Code lokal ändern → auf Server kopieren → PM2 neu starten:
scp -i ~/.ssh/sailwithus_deploy server.js root@91.98.74.113:/var/www/dashboard/ ssh -i ~/.ssh/sailwithus_deploy root@91.98.74.113 "pm2 restart dashboard"
📥 Falls die lokalen Dateien verloren sind
Der komplette Code-Stand lebt auf dem Server. Hol ihn zurück:
mkdir -p ~/Downloads/dashboard-restore && cd ~/Downloads/dashboard-restore
scp -i ~/.ssh/sailwithus_deploy -r root@91.98.74.113:/var/www/dashboard/{server.js,apis,public,config.js,data,package.json,.env} .
⚠️ .env enthält alle API-Keys — sicher aufbewahren, niemals committen.
🛠️ Wichtige Debug-Befehle
| PM2-Logs live | ssh -i ~/.ssh/sailwithus_deploy root@91.98.74.113 "pm2 logs dashboard --lines 100" |
| Cache-Status | curl -s http://localhost:3000/api/cache | jq . (auf dem Server) |
| Refresh erzwingen | curl 'http://localhost:3000/api/refresh?month=6&year=2026' |
| nginx-Config | /etc/nginx/sites-enabled/dashboard |
| SSL-Zertifikat | Letsencrypt via Certbot, Auto-Renewal aktiv |
🌐 Browser-Connector (für UI-Aktionen via Claude)
Wenn Claude direkt in deinem Chrome navigieren soll (z. B. Stripe-/Shopify-/Pinterest-Setup):
- Chrome-Extension „Claude in Chrome" installieren (claude.ai/chrome)
- Einloggen mit demselben Anthropic-Account wie Claude Code
- Claude erkennt den Browser dann automatisch über
mcp__Claude_in_Chrome__*-Tools - Tab freigeben, Claude kann lesen, klicken, JS ausführen — Finanz-Seiten (Stripe, Bank-Portal) sind aus Sicherheitsgründen geblockt
💡 Tipp: In jeder neuen Session zuerst git status oder ls apis/ ausführen lassen, damit Claude den aktuellen Stand erfasst. Bei kritischen Änderungen (Token regenerieren, Cache leeren) immer erst Backup ziehen.
❓ Häufige Fragen
| Das Dashboard lädt, aber eine Plattform zeigt „Kein API Key" | Den entsprechenden Key in die .env-Datei eintragen, speichern und den Server neu starten (START.bat schließen und erneut öffnen). |
| Google Analytics zeigt keine Daten | Google-OAuth ist nötig. Beim ersten Start öffnet sich automatisch ein Browser-Fenster zur Anmeldung. Danach werden Token lokal im tokens/-Ordner gespeichert. |
| Wie starte ich das Dashboard neu? | Einfach START.bat erneut doppelklicken. Falls der Server schon läuft, öffnet sich nur der Browser. Für einen kompletten Neustart: das schwarze Server-Fenster schließen, dann START.bat. |
| Kann ich einen anderen Port als 3000 nutzen? | Ja — in der Datei server.js die Zeile const PORT = 3000 auf den gewünschten Port ändern. |
| Die KI-Analyse läuft nicht | Erst Daten mit „Aktualisieren" laden, dann AI-Analyse starten. Ein gültiger ANTHROPIC_API_KEY in der .env muss vorhanden sein. |
| Wie aktuell sind die GEO-Daten? | GEO wird bei jedem Klick auf „Aktualisieren" live abgefragt. Gemini nutzt Google Search Grounding und liefert tagesaktuell Ergebnisse. Die anderen Modelle basieren auf ihren Trainingsdaten. |