Commit Graph

84 Commits

Author SHA1 Message Date
afbca4aebc fix: [30388f42] Hardcodierung der DB-Pfade auf /data/
- Entfernt Abhängigkeit von Umgebungsvariablen für DB-Pfade in config.py (Explorer) und queue_manager.py (Connector).
- Setzt die Pfade fest auf /data/companies_v3_fixed_2.db und /data/connector_queue.db.
- Dies stellt sicher, dass die Anwendungen zwingend auf die korrekt gemounteten Volumes zugreifen.
2026-03-06 16:09:10 +00:00
ec39cf5cd6 fix: [30388f42] Worker v1.9.8 - THE FORTRESS - Restore strict Ground Truth filters 2026-03-06 15:46:08 +00:00
212cbf5891 fix: [30388f42] Restaure strict name/website filter for webhooks (v1.9.7)
- Implementiert die Filter-Logik, die Webhooks nur verarbeitet, wenn sich Name oder Webseite geändert haben.
- Dies verhindert effektiv jede Form von Endlosschleifen (Echos), da unsere eigenen UDF-Updates nun ignoriert werden.
- Stellt den produktiven Standard des Systems wieder her.
2026-03-06 15:40:47 +00:00
45fde236d7 fix: [30388f42] Worker v1.9.5 - Löse Feld-Kollisionen und deaktiviere unnötige Updates
- Behebt die kritische Kollision von ProgIDs in der Standard-Konfiguration.
- Führt detailliertes 'Before/After' Logging für alle Feldvergleiche ein.
- Optimiert die Idempotenz-Prüfung, um Webhook-Loops bei identischen Daten zu verhindern.
- Stellt sicher, dass das System auch dann stabil bleibt, wenn User und Bot die gleiche ID 528 teilen.
2026-03-06 15:34:39 +00:00
324ab1ffeb fix: [30388f42] Finale DB-Pfad Korrektur (Vermeidung von Volume-Shadowing)
- Verschiebt alle Datenbank-Mounts im Container nach /data/.
- Verhindert, dass der /app Code-Mount die Datenbankdateien überschreibt oder blockiert.
- Betrifft alle Dienste mit persistenter Datenbank.
- Synchronisiert die Pfade in config.py (Explorer) und queue_manager.py (Connector).
2026-03-06 15:22:34 +00:00
b9536927f1 fix: [30388f42] Maximiere DB-Performance und behebe Locking-Endlosschleife
- Aktiviert den SQLite WAL-Modus für echtes Concurrent Reading/Writing.
- Optimiert get_next_job, um unnötige EXCLUSIVE-Locks zu vermeiden.
- Dies stellt sicher, dass Jobs nach der Verarbeitung korrekt als COMPLETED markiert werden und der Worker nicht in einer Wiederholungsschleife gefangen bleibt.
2026-03-06 14:55:05 +00:00
2783e51f44 fix: [30388f42] Stoppe Webhook-Loop durch Idempotenz und Truncation
- Führt clean_text_for_so Hilfsfunktion ein, die KI-Texte auf 200 Zeichen kürzt.
- Vergleicht und sendet nur noch gekürzte Texte an SuperOffice, um Differenzen durch serverseitige Kürzung zu vermeiden.
- Fügt detailliertes Logging für erkannte Änderungen hinzu.
- Verhindert so die Endlosschleife bei Benutzern mit ID 528 (Bot-ID).
2026-03-06 14:46:41 +00:00
735cd77b68 fix: [30388f42] Unterbreche Webhook-Endlosschleife
- Aktualisiert den Zeitstempel in SuperOffice nur noch dann, wenn auch andere inhaltliche Änderungen vorliegen.
- Dies verhindert, dass der Worker durch seine eigene Zeitstempel-Aktualisierung ständig neue Webhooks triggert (besonders relevant, da User und Bot die gleiche ID 528 teilen).
- Beruhigt das System und führt zu stabilen 'SUCCESS' Zuständen im Dashboard.
2026-03-06 14:33:53 +00:00
ebd95be42e fix: [30388f42] Deaktiviere das automatische Überspringen für Associate 528
- Ändert die Circuit-Breaker-Logik in worker.py, damit Events von ID 528 (Bot/User-ID) nicht mehr sofort übersprungen werden.
- Dies ermöglicht manuelle Änderungen durch den Benutzer, der aktuell dieselbe ID wie der Bot verwendet.
- Mögliche Echos werden weiterhin geloggt, aber zur Verarbeitung freigegeben.
2026-03-06 14:22:03 +00:00
2b9c4b737e fix: [30388f42] Erhöhe SQLite Timeout auf 30s in queue_manager.py
- Setzt  für alle -Aufrufe.
- Behebt  unter hoher Last, wenn Dashboard und Worker gleichzeitig zugreifen.
2026-03-06 13:54:09 +00:00
fb2a27751c feat: [30388f42] Führe granulare Status-Trennung 'DELETED' und 'SKIPPED' ein
- Erweitert die JobQueue um die Methode mark_as_deleted.
- Passt den Worker an, um bei ContactNotFoundException (404) den Status DELETED zu vergeben.
- Verbessert das Logging für den Wackler-Filter.
- Aktualisiert das Dashboard-Styling für den neuen DELETED-Status.
2026-03-06 13:19:30 +00:00
50ef577341 fix: [30388f42] Überspringe Jobs ohne ContactId oder PersonId
- Fügt eine Early-Exit-Bedingung zum Worker hinzu, um Jobs zu überspringen, die weder eine ContactId noch eine PersonId enthalten.
- Behebt das Problem, dass 'test.ping'-Jobs oder andere fehlerhafte Payloads zu 'FAILED'-Einträgen führen.
2026-03-06 12:48:33 +00:00
7d4e1d5aaa fix: [30388f42] Mache den Worker robust gegenüber gelöschten Entitäten
- Fügt eine  zum  hinzu, die bei einem HTTP 404 Fehler ausgelöst wird.
- Fängt diese  im  ab.
- Markiert Jobs, die sich auf nicht (mehr) existierende Kontakte oder Personen beziehen, als  anstatt .
- Dies verhindert, dass die Fehlerwarteschlange mit Jobs für gelöschte Entitäten überläuft, was das Hauptproblem der "failed"-Jobs löst.
2026-03-06 12:30:40 +00:00
d021b6b71c refactor: [30388f42] Strukturiere Root-Skripte thematisch neu
- Organisiert eine Vielzahl von Skripten aus dem Root-Verzeichnis in thematische Unterordner, um die Übersichtlichkeit zu verbessern und die Migration vorzubereiten.
- Verschiebt SuperOffice-bezogene Test- und Hilfsskripte in .
- Verschiebt Notion-bezogene Synchronisations- und Import-Skripte in .
- Archiviert eindeutig veraltete und ungenutzte Skripte in .
- Die zentralen Helfer  und  bleiben im Root, da sie von mehreren Tools als Abhängigkeit genutzt werden.
2026-03-06 10:16:08 +00:00
5ef247190e feat(connector): [31188f42] Finalize production optimizations, filtering, and dashboard enhancements 2026-03-05 09:48:34 +00:00
f341d85024 docs(connector): [31188f42] Comprehensive documentation update with multi-tenant filtering, echo protection, and API lessons 2026-03-05 09:47:47 +00:00
2805459fc8 feat(so-api): [31188f42] Hardcode production vertical mapping IDs 2026-03-05 07:15:18 +00:00
b33d2a0103 docs(so-api): [31188f42] Diagnosis of email sending blockade & cleanup 2026-03-05 06:19:45 +00:00
56ed64cd6d [31188f42] Keine neuen Commits in dieser Session.
Keine neuen Commits in dieser Session.
2026-03-04 18:41:35 +00:00
81fcdc4e8a Docs: Final update of SuperOffice Connector README with Noise Reduction, Sync-Runs, and bug resolution notes [31188f42] 2026-03-04 18:41:03 +00:00
434524338d Dashboard: Implement status prioritization in Sync-Runs (COMPLETED over SKIPPED) [31188f42] 2026-03-04 18:21:20 +00:00
c46822ddf8 [31188f42] Feat: Filterlogik für 'person.changed' Webhooks implementiert.
Nur relevante Änderungen (Jobtitel, Position, UDFs) lösen eine KI-Verarbeitung aus. Irrelevante Änderungen (Telefon, etc.) werden ignoriert, um Loops und unnötige Last zu vermeiden.
2026-03-04 17:51:55 +00:00
adde309920 Docs: Update SuperOffice Connector README with Production details, critical API bug (UDF crash), and Circuit Breaker logic [31188f42] 2026-03-04 16:52:49 +00:00
5493438f02 [31188f42] Keine neuen Commits in dieser Session.
Keine neuen Commits in dieser Session.
2026-03-04 16:46:23 +00:00
c25ed4d941 [31188f42] Fix: Stabilität und Resilienz auf Produktion (Cust26720) hergestellt.
- worker.py: Circuit Breaker implementiert (Ignoriert Associate ID 528), um Ping-Pong-Loops zu verhindern.
- worker.py: Resiliente UDF-Behandlung hinzugefügt (behebt 'unhashable type: dict' API-Antwort-Problem).
- tools/: Umfangreiche Test- und Diagnose-Suite hinzugefügt.
Die Anreicherung für 'Bremer Abenteuerland' wurde erfolgreich verifiziert.
2026-03-04 16:46:16 +00:00
a1795b7020 [31188f42] Keine neuen Commits in dieser Session.
Keine neuen Commits in dieser Session.
2026-03-04 16:32:35 +00:00
50764c4490 [31188f42] Fix: Default-Umgebung auf 'online3' gesetzt & Test-Suite hinzugefügt.
- config.py: Standard-Environment auf 'online3' geändert, um Auth-Fehler ohne .env zu beheben.
- tools/create_company.py: Skript zum Anlegen von Test-Accounts in Prod.
- tools/get_enriched_company_data.py: Diagnose-Tool für API-Antworten.
- tools/verify_enrichment.py: Verifikations-Skript (zeigt aktuelles UDF-Problem).
2026-03-04 16:30:57 +00:00
4f3ff619d7 [31188f42] Fix: Webhook-Registrierung für SuperOffice Prod Umgebung erfolgreich abgeschlossen.
Behobene Probleme:
- WEBHOOK_TOKEN/WEBHOOK_SECRET Verwechslung in webhook_app.py korrigiert.
- NameError in receive_webhook Funktion behoben.
- Sichergestellt, dass Umgebungsvariablen im Docker-Container geladen werden.
2026-03-04 16:18:43 +00:00
34ef6ce5fb [2ea88f42] Keine neuen Commits in dieser Session.
Keine neuen Commits in dieser Session.
2026-03-04 15:14:14 +00:00
6ee24012cc Docs: Aktualisierung der Dokumentation für Task [31588f42] 2026-03-03 08:37:11 +00:00
ae68bac009 [31588f42] docs: add Selections strategy to README 2026-02-28 18:42:22 +00:00
57e020eee5 [31588f42] docs: document SuperOffice Product Families (Robot Models) 2026-02-28 18:39:34 +00:00
6662c9c585 [31588f42] docs: document SuperOffice Service/Ticket module and categories 2026-02-28 18:34:33 +00:00
717ba9a2ca [31588f42] fix: update Sale creation with Roboplanet-specific ID 14 and mandatory Saledate 2026-02-28 18:15:45 +00:00
d6818986a0 [31588f42] feat: implement SuperOffice Sales API prototype and fix auth docs 2026-02-28 18:06:12 +00:00
1280631d8e [2ff88f42] Implementierung E-Mail-Dokument-Automatisierung und technischer Check der Versand-Blocker. Workaround via SuperOffice-Aktivitäten etabliert.
Implementierung E-Mail-Dokument-Automatisierung und technischer Check der Versand-Blocker. Workaround via SuperOffice-Aktivitäten etabliert.
2026-02-28 14:25:25 +00:00
00a58df6e1 docs(email-strategy): Add detailed technical analysis of sending blockers 2026-02-28 14:20:47 +00:00
92fab6ae1b fix(email-api): Implement robust content upload and activity-based workaround 2026-02-28 13:51:58 +00:00
a8a4e04876 docs(email-api): Update email test script with manual sending instructions and link 2026-02-28 13:46:24 +00:00
14c9fdeb43 feat(email-api): Implement email document creation via SuperOffice API (no SMTP) 2026-02-28 13:42:34 +00:00
04c7c9fc6c Finalize SuperOffice production migration and multi-campaign architecture (v1.8) 2026-02-27 15:09:52 +00:00
ea553290ba docs: Add post-migration to-do checklist to README [31188f42] 2026-02-26 07:23:53 +00:00
2c89523183 docs: Add Lessons Learned for Production Migration in README [31188f42] 2026-02-26 07:16:41 +00:00
9363dad5b9 fix: Refactor SuperOfficeClient to support production environments and global token endpoints [31188f42] 2026-02-26 07:15:16 +00:00
f10548e63d docs: Update SuperOffice endpoint to production (online3) [31188f42] 2026-02-26 07:07:15 +00:00
36d37ac80a Refactor API calls to use PATCH instead of PUT for cleaner updates (SuperOffice Certification) 2026-02-25 17:21:36 +00:00
316303253b docs: update readme with api optimization and getAllRows lessons learned [31188f42] 2026-02-24 13:07:56 +00:00
b43910550e fix(so-worker): robust id extraction from webhook fieldvalues & safe api access [31188f42] 2026-02-24 12:56:18 +00:00
57e999bf95 refactor(so-connector): optimize api calls with $select and filtering [31188f42] 2026-02-24 12:38:14 +00:00
7c82e4b5d7 feat: Implement unsubscribe link for marketing automation [31188f42]
This commit introduces a new unsubscribe feature to allow contacts to opt-out
from marketing automation.

Key changes include:
- Database schema migration: Added  (UUID) to the  model.
- Data population: Implemented a script to assign unique tokens to existing contacts.
- API endpoint: Created a public GET  endpoint to handle opt-out requests.
- Automation: New contacts automatically receive an unsubscribe token upon creation.
- Integration: The full unsubscribe link is now returned via the provisioning API
  for storage in SuperOffice UDFs (ProgID: SuperOffice:9).
- Documentation: Updated  and
  to reflect the new feature and its integration requirements.
- Added  for quick overview and next steps.
2026-02-24 12:18:13 +00:00