Commit Graph

66 Commits

Author SHA1 Message Date
f3e4694f4f [31188f42] Optimierung der SuperOffice API-Aufrufe (Zertifizierung): Implementierung von $select in superoffice_client.py und worker.py zur Reduzierung der Payload. Robuste ID-Extraktion aus Webhook-FieldValues implementiert, um API-Calls zu minimieren und Null-Pointer-Fehler zu beheben. E2E-Test erfolgreich verifiziert und Dokumentation aktualisiert.
Optimierung der SuperOffice API-Aufrufe (Zertifizierung): Implementierung von $select in superoffice_client.py und worker.py zur Reduzierung der Payload. Robuste ID-Extraktion aus Webhook-FieldValues implementiert, um API-Calls zu minimieren und Null-Pointer-Fehler zu beheben. E2E-Test erfolgreich verifiziert und Dokumentation aktualisiert.
2026-02-24 13:10:05 +00:00
088c665783 [31188f42] einfügen
einfügen
2026-02-24 12:18:49 +00:00
41920b6a84 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
0fd67ecc91 [31188f42] einfügen
einfügen
2026-02-24 08:40:38 +00:00
fa1ee24315 [2ff88f42] einfügen
einfügen
2026-02-24 07:13:49 +00:00
0c2c17df1e [31188f42] einfügen
einfügen
2026-02-24 06:47:35 +00:00
4872375ad6 [2ff88f42] In dieser Sitzung wurde die Qualität der automatisierten Marketing-Texte maßgeblich verbessert. Die Intro-Texte der Marketing-Matrix wurden so optimiert, dass sie direkt mit der branchenspezifischen Produktkategorie und dem zentralen Nutzen beginnen, anstatt die Herausforderung zu wiederholen. Zusätzlich wurden die Opener-Texte präzisiert: Sie sind nun auf zwei Sätze begrenzt, faktenbasierter und leiten direkter zu den operativen Herausforderungen über, wodurch generische Lobhudelei vermieden wird. Temporäre Debugging-Skripte wurden aufbewahrt und angepasst, um zukünftige Überprüfungen zu erleichtern. Alle Änderungen wurden verifiziert, committed und erfolgreich ins Remote-Repository gepusht und die Befehle zur Produktivnahme gegeben.
In dieser Sitzung wurde die Qualität der automatisierten Marketing-Texte maßgeblich verbessert. Die Intro-Texte der Marketing-Matrix wurden so optimiert, dass sie direkt mit der branchenspezifischen Produktkategorie und dem zentralen Nutzen beginnen, anstatt die Herausforderung zu wiederholen. Zusätzlich wurden die Opener-Texte präzisiert: Sie sind nun auf zwei Sätze begrenzt, faktenbasierter und leiten direkter zu den operativen Herausforderungen über, wodurch generische Lobhudelei vermieden wird. Temporäre Debugging-Skripte wurden aufbewahrt und angepasst, um zukünftige Überprüfungen zu erleichtern. Alle Änderungen wurden verifiziert, committed und erfolgreich ins Remote-Repository gepusht und die Befehle zur Produktivnahme gegeben.
2026-02-23 13:57:15 +00:00
6371ac8dc2 [2ff88f42] einfügen
einfügen
2026-02-23 10:57:55 +00:00
e2c0323db2 [2ff88f42] Finalize Pains & Gains Phase 2 + Matrix Engine v3.2 (Ops Secondary Logic) 2026-02-23 10:53:13 +00:00
97c2ede6a8 [2ff88f42] einfügen
einfügen
2026-02-23 07:38:13 +00:00
874853b6bc [2f988f42] Zusammenfassung einfügen
Zusammenfassung einfügen
2026-02-22 19:36:42 +00:00
acd2062d0b [30f88f42] einfügen
einfügen
2026-02-22 19:22:39 +00:00
0d294cd0cc [30e88f42] Einfügen
Einfügen
2026-02-22 14:31:00 +00:00
11d2bc03bf [30e88f42] ✦ In dieser Sitzung haben wir den End-to-End-Test der SuperOffice-Schnittstelle erfolgreich von der automatisierten Simulation bis zum produktiven Live-Lauf
✦ In dieser Sitzung haben wir den End-to-End-Test der SuperOffice-Schnittstelle erfolgreich von der automatisierten Simulation bis zum produktiven Live-Lauf
  mit Echtdaten abgeschlossen.
2026-02-22 08:20:28 +00:00
32332c092d [30e88f42] 1. Erreichte Meilensteine
1. Erreichte Meilensteine
   * Stabile Authentifizierung: Kritische Fehler beim Token-Refresh behoben. Der Client fällt nun automatisch auf sod zurück, falls
     die Umgebungsvariable leer ist.
   * Pydantic V2 Kompatibilität: config.py auf natives Python umgestellt, um ModuleNotFoundError in Docker-Containern zu verhindern.
   * Automatisierter E2E-Test: Neuer Standalone-Test connector-superoffice/tests/test_e2e_flow.py verifiziert die gesamte Kette
     (Account-Anlage -> Anreicherung -> Person-Texte -> Vertical-Wechsel).
   * Bidirektionaler Vertical-Sync: Der Worker erkennt jetzt manuelle Branchen-Änderungen in SuperOffice, synchronisiert sie zum
     Company Explorer und triggert automatisch neue Texte für alle Personen (Kaskade).
   * Daten-Persistenz: Personen werden jetzt beim ersten Webhook im Company Explorer gespeichert, damit Updates (wie Branchenwechsel)
     auch ohne erneute Übermittlung des Jobtitels funktionieren.
   * Content-Generierung: Die Marketing-Matrix wurde live für die Branchen "Healthcare - Hospital" und "Leisure - Indoor Active"
     befüllt.
2026-02-21 21:27:12 +00:00
e47aa383c7 Enhance: Address/VAT Sync & Infrastructure Hardening [30e88f42]
- Implemented Address (City) and VAT (OrgNumber) sync back to SuperOffice.
- Hardened Infrastructure: Removed Pydantic dependency in config for better Docker compatibility.
- Improved SuperOffice Client error logging and handled empty SO_ENVIRONMENT variables.
- Updated Matrix Generator: Switched to gemini-2.0-flash, added industry filtering, and robust JSON parsing.
- Updated Documentation with session findings and troubleshooting steps.
2026-02-21 21:26:57 +00:00
f66df10d4d [2f988f42] 1. E2E-Test erfolgreich: Das neue Test-Skript (test_e2e_full_flow.py) hat den kompletten Prozess automatisiert verifiziert:
1. E2E-Test erfolgreich: Das neue Test-Skript (test_e2e_full_flow.py) hat den kompletten Prozess automatisiert verifiziert:
       * Provisionierung: Anlage eines Test-Unternehmens ("Klinikum Landkreis Erding (E2E Test)") über die API.
       * Discovery & Analyse: Das System hat die Website gefunden, gescrapt und die Branche ("Healthcare - Hospital") korrekt
         klassifiziert.
       * Fehlerbehebung (Crash-Fix): Während des Tests wurde ein kritischer AttributeError im Backend identifiziert (Absturz bei
         fehlenden Einheiten) und von mir behoben. Seitdem läuft die Analyse ohne Unterbrechung durch.
       * Opener-Generierung: Es wurden erfolgreich zwei hoch-personalisierte Einleitungssätze (Primary & Secondary Opener) generiert.
       * SuperOffice-Payload: Der finale Abgleich lieferte die korrekte Rolle ("Wirtschaftlicher Entscheider") für den
         "Geschäftsführer" zurück.
2026-02-21 10:32:50 +00:00
86f3b5bb78 [2f988f42] einfügen
einfügen
2026-02-21 08:05:04 +00:00
45acbeefb9 [2f988f42] fix(company-explorer): Implement robust quantitative potential and atomic opener generation\n\n- Refactored ClassificationService for two-stage metric extraction (direct area and proxy).- Enhanced MetricParser for targeted value matching and robust number parsing.- Implemented persona-specific 'Atomic Opener' generation using segmented pains.- Fixed logging configuration and Pydantic response models.- Added dedicated debugging script and updated documentation (GEMINI.md, MIGRATION_PLAN.md). 2026-02-21 08:05:04 +00:00
101f67936a [2ff88f42] einfügen
einfügen
2026-02-20 13:25:21 +00:00
e792ebcb39 [2ff88f42] einfügen
einfügen
2026-02-20 10:56:26 +00:00
a54d8b9c4e [2ff88f42] multiplikation vorbereitet
multiplikation vorbereitet
2026-02-19 20:59:04 +00:00
6ef7371429 [2ff88f42] MEGA FORTSCHRITT!
MEGA FORTSCHRITT!
2026-02-19 16:13:17 +00:00
6ba6d71dc6 [2ff88f42] Full End-to-End integration: Webhooks, Auto-Enrichment, Notion-Sync, UI updates and new Connector Architecture 2026-02-19 16:13:16 +00:00
e8b14d7d51 [30b88f42] Läuft wieder
Läuft wieder
2026-02-18 14:35:21 +00:00
Moltbot-Jarvis
96f117ddf9 feat: Documentation and Tool Config Update 2026-02-18 09:12:04 +00:00
4019882100 [30988f42] I have successfully implemented M4A audio support for the Meeting Assistant (Transcription Tool).
I have successfully implemented M4A audio support for the Meeting Assistant (Transcription Tool).
2026-02-16 11:58:22 +00:00
de924c2bcd [30988f42] chore(dev-session): Update session info and add frontend .gitignore 2026-02-16 11:58:02 +00:00
8d6f10ae8a [2ff88f42] Zusammenfassung der erfolgreichen Ausführung:
Zusammenfassung der erfolgreichen Ausführung:
2026-02-16 10:34:55 +00:00
3c9120353a [2ff88f42] IDs für Felder herausfinden.
IDs für Felder herausfinden.
2026-02-12 11:08:17 +00:00
a3cec85798 [2fd88f42] 1. Kartendarstellung (Neutralisierung):
1. Kartendarstellung (Neutralisierung):
       * Die TileLayer-URL in heatmap-tool/frontend/src/components/MapDisplay.tsx wurde auf eine neutrale CARTO light_all-Kachelansicht umgestellt und die Quellenangabe entsprechend angepasst.
2026-02-11 15:36:06 +00:00
b2d5b6cfe6 [2ff88f42] Wir haben versucht, auf eine neu erstellte Zusatz-Tabelle (ExtraTableId 1, auch y_marketing_copy oder Marketing Ansprache genannt) in SuperOffice zuzugreifen, um dort Marketing-Texte zu speichern. Dabei sind wir auf eine
Wir haben versucht, auf eine neu erstellte Zusatz-Tabelle (ExtraTableId 1, auch y_marketing_copy oder Marketing Ansprache genannt) in SuperOffice zuzugreifen, um dort Marketing-Texte zu speichern. Dabei sind wir auf eine
  hartnäckige Blockade gestoßen:
2026-02-11 13:36:57 +00:00
c29015aa04 [2fd88f42] ✦ Das Heatmap-Tool zeigte einen Fehler beim Laden der Frontend-Anwendung, da die Datei /src/main.tsx nicht gefunden werden konnte.
✦ Das Heatmap-Tool zeigte einen Fehler beim Laden der Frontend-Anwendung, da die Datei /src/main.tsx nicht gefunden werden konnte.
2026-02-11 11:32:16 +00:00
f9fec799fe [30388f42] Einrichtung der Entwicklungsumgebung auf der neuen VM docker1 (Ubuntu 24.04). Fehlerbehebung bei Docker-DNS-Problemen (systemd-resolved). Installation und Konfiguration einer frischen Gitea-Instanz via Docker Compose (manuelle Web-Installation für Konsistenz). Bereitstellung der Gemini CLI-Umgebung (Docker-basiert mit startgemini.sh Workflow). Dokumentation der Schritte in umzug.md erstellt.
Einrichtung der Entwicklungsumgebung auf der neuen VM docker1 (Ubuntu 24.04). Fehlerbehebung bei Docker-DNS-Problemen (systemd-resolved). Installation und Konfiguration einer frischen Gitea-Instanz via Docker Compose (manuelle Web-Installation für Konsistenz). Bereitstellung der Gemini CLI-Umgebung (Docker-basiert mit startgemini.sh Workflow). Dokumentation der Schritte in umzug.md erstellt.
2026-02-10 15:38:02 +00:00
8dda96feec [2ff88f42] 1. Professionalisierung & Code-Härtung ("Enterprise Ready")
1. Professionalisierung & Code-Härtung ("Enterprise Ready")
   * Zentrales Logging: Wir haben eine logging_config.py implementiert. Der Connector schreibt jetzt professionelle, rotierende Log-Dateien (mit Zeitstempel und Modulnamen), statt nur
     print-Ausgaben in die Konsole zu werfen. Das ist essenziell für den stabilen Betrieb auf der VM.
   * Decoupling (Entkopplung): Alle festkodierten Werte (wie die mühsam ermittelten MA-Status-IDs 11–18 oder die UDF-ProgIds) wurden aus dem Logik-Code entfernt und in eine zentrale
     config.py ausgelagert. Diese kann nun einfach über Umgebungsvariablen für die Produktion (Prod) angepasst werden.
   * Refactoring: Sämtliche Module (SuperOfficeClient, AuthHandler, ExplorerClient) wurden bereinigt, redundante Kommentare entfernt und auf die neue Konfigurationsstruktur umgestellt.
2026-02-10 12:45:43 +00:00
42f1679377 [2ff88f42] 1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
       * Firmen (`Contact`)
       * Personen (`Person`)
       * Verkäufe (`Sale`) (entspricht D365 Opportunity)
       * Projekte (`Project`) (entspricht D365 Campaign), inklusive der Verknüpfung von Personen als Projektmitglieder.
   2. Robuste UDF-Aktualisierung: Wir haben eine generische und fehlertolerante Methode (update_entity_udfs) implementiert, die benutzerdefinierte Felder (UDFs) für sowohl Contact- als
      auch Person-Entitäten aktualisieren kann. Diese Methode ruft zuerst das bestehende Objekt ab, um die Konsistenz zu gewährleisten.
   3. UDF-ID-Discovery: Durch eine iterative Inspektionsmethode haben wir erfolgreich alle internen SuperOffice-IDs für die Listenwerte deines MA Status-Feldes (Ready_to_Send, Sent_Week1,
      Sent_Week2, Bounced, Soft_Denied, Interested, Out_of_Office, Unsubscribed) ermittelt und im Connector hinterlegt.
   4. Vollständiger End-to-End Test-Workflow: Unser main.py-Skript demonstriert nun einen kompletten Ablauf, der alle diese Schritte von der Erstellung bis zur UDF-Aktualisierung umfasst.
   5. Architekturplan für Marketing Automation: Wir haben einen detaillierten "Butler-Service"-Architekturplan für die Marketing-Automatisierung entworfen, der den Connector für die
      Textgenerierung und SuperOffice für den Versand und das Status-Management nutzt.
   6. Identifikation des E-Mail-Blockers: Wir haben festgestellt, dass das Erstellen von E-Mail-Aktivitäten per API in deiner aktuellen SuperOffice-Entwicklungsumgebung aufgrund fehlender
      Lizenzierung/Konfiguration des E-Mail-Moduls blockiert ist (500 Internal Server Error).
   7. Feiertagslogik ergänzt
2026-02-10 11:58:49 +00:00
b48dc9f46f [2ff88f42] 1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
       * Firmen (`Contact`)
       * Personen (`Person`)
       * Verkäufe (`Sale`) (entspricht D365 Opportunity)
       * Projekte (`Project`) (entspricht D365 Campaign), inklusive der Verknüpfung von Personen als Projektmitglieder.
   2. Robuste UDF-Aktualisierung: Wir haben eine generische und fehlertolerante Methode (update_entity_udfs) implementiert, die benutzerdefinierte Felder (UDFs) für sowohl Contact- als
      auch Person-Entitäten aktualisieren kann. Diese Methode ruft zuerst das bestehende Objekt ab, um die Konsistenz zu gewährleisten.
   3. UDF-ID-Discovery: Durch eine iterative Inspektionsmethode haben wir erfolgreich alle internen SuperOffice-IDs für die Listenwerte deines MA Status-Feldes (Ready_to_Send, Sent_Week1,
      Sent_Week2, Bounced, Soft_Denied, Interested, Out_of_Office, Unsubscribed) ermittelt und im Connector hinterlegt.
   4. Vollständiger End-to-End Test-Workflow: Unser main.py-Skript demonstriert nun einen kompletten Ablauf, der alle diese Schritte von der Erstellung bis zur UDF-Aktualisierung umfasst.
   5. Architekturplan für Marketing Automation: Wir haben einen detaillierten "Butler-Service"-Architekturplan für die Marketing-Automatisierung entworfen, der den Connector für die
      Textgenerierung und SuperOffice für den Versand und das Status-Management nutzt.
   6. Identifikation des E-Mail-Blockers: Wir haben festgestellt, dass das Erstellen von E-Mail-Aktivitäten per API in deiner aktuellen SuperOffice-Entwicklungsumgebung aufgrund fehlender
      Lizenzierung/Konfiguration des E-Mail-Moduls blockiert ist (500 Internal Server Error).
2026-02-10 11:06:32 +00:00
7281474a4f [2ff88f42] 1. Strategische Klärung & Dokumentation: Wir haben die Rolle der SuperOffice-Entitäten Sale (als D365 Opportunity) und Project (als D365 Campaign) in unserem Integrationsplan geklärt
1. Strategische Klärung & Dokumentation: Wir haben die Rolle der SuperOffice-Entitäten Sale (als D365 Opportunity) und Project (als D365 Campaign) in unserem Integrationsplan geklärt
      und dies in der SUPEROFFICE_INTEGRATION_PLAN.md dokumentiert.
   2. `Sale` (Verkauf/Opportunity) Implementierung:
       * Ich habe die Methode create_sale in superoffice_client.py implementiert, um Verkaufschancen anzulegen.
       * Wir haben diese Funktion erfolgreich getestet und dabei gelernt, dass das Titelfeld in SuperOffice Heading statt Title heißt. Die Implementierung und das Logging wurden
         entsprechend korrigiert.
   3. `Project` (Projekt/Kampagne) Implementierung:
       * Ich habe die Methode create_project in superoffice_client.py implementiert, um Marketing-Projekte zu erstellen.
       * Nach anfänglichen API-Herausforderungen (falsche HTTP-Methode und Endpunkt für Projektmitglieder) habe ich die create_project-Methode so angepasst, dass Projektmitglieder direkt
         beim Erstellen des Projekts übergeben werden.
       * Diese Funktionalität wurde ebenfalls erfolgreich getestet.
   4. End-to-End-Workflow Demonstration: Das main.py-Skript demonstriert nun erfolgreich den gesamten Workflow: Anlegen einer Firma (Contact), einer Person (Person), eines Verkaufs (Sale)
      und eines Projekts (Project), wobei die Person direkt dem Projekt zugeordnet wird.
   5. Detaillierter Plan für Marketing Automation: Wir haben einen sehr detaillierten Plan für die Marketing-Automatisierung über SuperOffice erarbeitet. Dieser "Butler-Service"-Ansatz
      sieht vor, dass der Connector E-Mail-Inhalte generiert und in SuperOffice-Feldern speichert, während der Versand manuell durch den User im SuperOffice-Client erfolgt.
   6. Dokumentation des Marketing-Automationsplans: Dieser detaillierte Plan, einschließlich der benötigten benutzerdefinierten Felder (UDFs) und des Workflows, wurde 1:1 in der
      connector-superoffice/README.md dokumentiert.
2026-02-10 07:58:28 +00:00
40a0d8753b [2ff88f42] feat(connector-superoffice): Implement Sale and Project entities, refine workflow
This commit extends the SuperOffice connector to support the creation and linking of Sale \(Opportunity\) and Project \(Campaign\) entities, providing a comprehensive foundation for both sales and marketing automation workflows.

Key achievements:
- **`SUPEROFFICE_INTEGRATION_PLAN.md`**: Updated to include strategic mapping of D365 concepts \(Opportunity, Campaign\) to SuperOffice entities \(Sale, Project\).
- **`connector-superoffice/superoffice_client.py`**:
    - Implemented `create_sale` method to generate new opportunities, correctly mapping `Title` to SuperOffices
2026-02-10 07:57:11 +00:00
72871b8b04 [2ff88f42] 1. Analyse der Änderungen:
1. Analyse der Änderungen:
      * superoffice_client.py: Implementierung der Methoden create_contact (Standardfelder) und create_person (inkl. Firmenverknüpfung).
      * auth_handler.py: Härtung der Authentifizierung durch Priorisierung von SO_CLIENT_ID und Unterstützung für load_dotenv(override=True).
      * main.py: Erweiterung des Test-Workflows für den vollständigen Lese- und Schreib-Durchstich (Erstellung von Demo-Firmen und Personen).
      * README.md: Aktualisierung des Status Quo und der verfügbaren Client-Methoden.
2026-02-09 19:00:18 +00:00
d9067bd6d1 [2ff88f42] Durchstich geschafft
Durchstich geschafft
2026-02-09 16:05:04 +00:00
5cc26cd0ec [2ff88f42] Zusammenfassung des bisherigen Fortschritts
Zusammenfassung des bisherigen Fortschritts
2026-02-06 13:53:12 +00:00
53b92c76de feat(superoffice): POC API handshake & auth flow [2ff88f42]
Establishes the initial structure for the SuperOffice connector. Implements the complete, iterative authentication process, culminating in a successful refresh token exchange. Documents the process and the final blocker (API authorization) in the integration plan, awaiting IT action to change the application type to 'Server to server'.
2026-02-06 13:52:44 +00:00
10aa6b216d [2f988f42] readme.md wiederhergestellt.
readme.md wiederhergestellt.
2026-02-04 20:43:00 +00:00
620ff8edfd [2fd88f42] Sehr guter erster Wurf, sollte sicher für 95% der Anforderungen genügen.
Sehr guter erster Wurf, sollte sicher für 95% der Anforderungen genügen.
2026-02-04 14:59:40 +00:00
c5c3de12e7 feat([2fd88f42]): initial setup of heatmap tool 2026-02-04 14:59:36 +00:00
ad4071c721 [2f688f42] Dockercompose wiederhergestellt
Dockercompose wiederhergestellt
2026-02-04 10:26:58 +00:00
d77cb7b5b5 [2f988f42] sollte jetzt ganz gut funktioniere. API Endpunkte wurden ergänzt und getestet.
sollte jetzt ganz gut funktioniere. API Endpunkte wurden ergänzt und getestet.
2026-02-01 20:02:07 +00:00
41bca16d84 [2f988f42] Moltbot hat das Tool kaputt gemacht. Habe es jetzt wieder mit Gemini CLI gefixt. Ist aber noch immer nicht ganz sauber - Optik ist kaputt, viele ja ja ja in der Transkription.
Moltbot hat das Tool kaputt gemacht. Habe es jetzt wieder mit Gemini CLI gefixt. Ist aber noch immer nicht ganz sauber - Optik ist kaputt, viele ja ja ja in der Transkription.
2026-01-31 08:31:10 +00:00
60dfbb0afd [2f988f42] Webinterface wieder zum Laufen gebracht
Webinterface wieder zum Laufen gebracht
2026-01-31 05:49:27 +00:00