Status
{{ status?.activeTask ? 'Aktiv' : 'Bereit' }}
{{ status?.activeTask || 'Kein Task' }}
Letzter Lauf
{{ status?.lastRunStatus === 'success' ? '✓' : status?.lastRunStatus === 'error' ? '✗' : '–' }}
{{ status?.lastRunFinishedAt || 'Noch kein Lauf' }}
PDFs
{{ status?.pdfCount ?? '–' }}
heruntergeladen
HTML-Dateien
{{ status?.htmlCount ?? '–' }}
Versicherer
Ansprechpartner
{{ contactStats.total ?? '–' }}
+{{ contactStats.new }} neu ~{{ contactStats.updated }} geändert –{{ contactStats.deleted }} gelöscht Kontakte

Aktionen

{{ actionMsg.text }}

Lauf-Historie

Noch keine Läufe aufgezeichnet.
TaskStatusStartDauerPDFsFehler
{{ r.task }} {{ r.status }} {{ r.started_at }} {{ r.duration_s }}s {{ r.stats?.pdf?.downloaded ?? r.stats?.downloaded ?? '–' }} {{ r.error_msg ? r.error_msg.substring(0,40) : '–' }}

Live-Logs

Warte auf Log-Einträge…
{{ fmtTime(l.ts) }}{{ l.text }}

{{ pdfs.folders.length }} Ordner · {{ pdfs.total }} PDFs

{{ folderMsg }}
  • 📁
    {{ f.count > 0 ? '📁' : '📂' }} {{ f.name }} {{ f.count }}
← Ordner auswählen oder + für neuen Ordner

📁 {{ selectedFolder }}

{{ aiSummaryMsg.text }}
{{ transferMsg.text }}
Ordner ist leer.
DateinameGrößeAktionen
{{ fmtSize(f.size) }}

HTML-Versicherer {{ htmlFiles.total }}

{{ htmlSelCount }} ausgewählt
Keine HTML-Dateien vorhanden.
DateinameGrößeAktionen
{{ fmtSize(f.size) }}
{{ contacts.msg }}
{{ contacts.total }} Kontakt(e)
Zeilen:
{{ contacts.search || contacts.filterVersicherer || contacts.filterStatus ? 'Keine Treffer.' : 'Noch keine Kontakte. Vollständigen Lauf starten oder "Neu extrahieren" klicken.' }}
StatusVersichererNameAbteilung E-MailTelefonAdresseAktionen
{{ {new:'Neu',updated:'Geändert',deleted:'Gelöscht',unchanged:'Unverändert'}[c.status] || c.status }} {{ c.versicherer }} {{ c.name || '–' }} {{ c.abteilung || '–' }} {{ c.email }} {{ c.telefon || '–' }} {{ c.adresse || '–' }}

Boei Chatbot Training

{{ boeiExports.length }} Datei(en) · {{ boeiSettings.chatbotName ? 'Chatbot: ' + boeiSettings.chatbotName : 'Kein Chatbot konfiguriert' }}

⬇ ZIP Download
{{ forms.boei.msg }}
Noch keine Dateien exportiert. Klicke auf "Exportieren" um die PDF-Inhalte als .txt-Dateien aufzubereiten.
{{ boeiSel.size }} ausgewählt
Dateiname (Kategorie) Größe Aktionen
{{ fmtSize(f.size) }}

Ansprechpartner-Quell-URLs

VEMA-Seiten mit Ansprechpartner-Links. Alle aktiven werden beim Scraping zusammengeführt.

Keine URLs konfiguriert.
LabelURLAktivAktionen
{{ u.label }} {{ u.url }}

PDF-Quell-URLs

Keine URLs konfiguriert. Füge die erste URL hinzu.
Label URL Aktiv Aktionen
{{ u.label }} {{ u.url }}

VEMA-Zugangsdaten

{{ vemaSettings.source==='none' ? '✗ Nicht konfiguriert' : vemaSettings.source==='env' ? '⚠ aus .env' : '✓ Gespeichert' }}

Login-Zugangsdaten für login.vemaeg.de. Werden beim HTML-Scraping und PDF-Download verwendet.

{{ forms.vema.msg }}

Missive / Webhook-Integration

Wird für den automatischen 2FA-Code-Empfang via Missive benötigt. Leer lassen = Wert aus .env bleibt aktiv.

{{ forms.integrations.msg }}

Automatischer Lauf (Cron)

Legt fest, wie oft der vollständige Lauf automatisch ausgeführt wird. Standard: 0 2 1 * * (1. jeden Monats um 02:00 Uhr).

Beispiele: 0 2 * * 1 (wöchentlich Mo) · 0 2 1 * * (monatlich) · 0 2 * * * (täglich)
{{ forms.cron.msg }}

N8N Webhooks

Webhook-URLs für die automatische Datenübertragung. Leer lassen = kein Webhook.

Automatische Übertragung im CronJob

Kontakte → Google Sheets

Nach Kontakt-Extraktion automatisch an N8N senden

PDFs → Google Drive

Nach PDF-Download Metadaten an N8N senden

KI-Zusammenfassungen → Google Drive

Nach AI-Phase Zusammenfassungen an N8N senden

Boei Chatbot Training → Upload

PDFs exportieren und automatisch zu Boei hochladen

{{ forms.webhooks.msg }}

KI-Einstellungen

Claude API Key
{{ aiSettings.hasApiKey ? '✓ hinterlegt' : 'nicht gesetzt' }}

Wird verschlüsselt gespeichert und nie im Klartext zurückgegeben.

{{ forms.ai.keyMsg }}
Google AI Studio API Key
{{ aiSettings.hasGeminiKey ? '✓ hinterlegt' : 'nicht gesetzt' }}

Kostenlosen API Key unter aistudio.google.com erstellen → „Get API key". Kein GCP-Projekt erforderlich.

{{ forms.ai.keyMsg }}
{{ forms.ai.keyMsg }}
Mistral API Key
{{ aiSettings.hasMistralKey ? '✓ hinterlegt' : 'nicht gesetzt' }}

API Key unter console.mistral.ai erstellen → API Keys. Hinweis: PDF-Zusammenfassungen werden ohne PDF-Inhalt generiert (Mistral unterstützt kein natives PDF-Input).

Ruft aktuelle Modellliste von Mistral ab
{{ forms.ai.keyMsg }}
{{ forms.ai.promptMsg }}
Automatische KI-Zusammenfassung
Bei vollständigem Lauf alle Ordner automatisch zusammenfassen und per Webhook übertragen.
{{ forms.ai.autoMsg }}

AnythingLLM Integration

{{ anythingllmSettings.syncStats.synced }} synced {{ anythingllmSettings.syncStats.total }} gesamt

PDFs aus dem Scraper in einen AnythingLLM-Workspace übertragen und einbetten. Hash-basierte Deduplizierung verhindert doppelte Dokumente.

{{ forms.anythingllm.msg }}
Gefundene Workspaces:
{{ w.name }} ({{ w.slug }})
Automatischer Sync nach vollständigem Lauf
Nach jedem vollständigen Scraping-Lauf alle neuen und geänderten PDFs automatisch synchronisieren.
{{ forms.anythingllm.autoMsg }}

Boei Chatbot Training

PDF-Inhalte als .txt-Dateien exportieren und direkt in einen Boei-Chatbot hochladen. Jeder Ordner wird zu einer Datei (max. 4,5 MB), größere Ordner werden aufgeteilt.

{{ forms.boei.msg }}

Dateiverwaltung und Upload im Boei-Tab.

Benutzername ändern

{{ forms.username.msg }}

Passwort ändern

{{ forms.password.msg }}

Zwei-Faktor-Authentifizierung

{{ cfg?.twoFactorEnabled ? '✓ Aktiviert' : 'Nicht aktiviert' }}

Schütze deinen Account mit einem Authenticator (z.B. Google Authenticator, Authy).

QR Code Mit Authenticator-App scannen
{{ twoFa.setup.secret }}
{{ twoFa.msg }}

2FA ist aktiv. Zur Deaktivierung bitte Passwort eingeben.

{{ twoFa.msg }}
{{ t.msg }}