Commit Graph

1834 Commits

Author SHA1 Message Date
8e863b259e [2ff88f42] refactor(connector-superoffice): finalize production readiness cleanup
- Integrated centralized logging system in all modules.
- Extracted all IDs and ProgIds into a separate .
- Refactored  and  for cleaner dependency management.
- Included updated discovery and inspection utilities.
- Verified end-to-end workflow stability.
2026-02-10 12:43:26 +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
ada2f334b2 [2ff88f42] feat(connector-superoffice): Implement Company Explorer sync and Holiday logic
- **Company Explorer Sync**: Added `explorer_client.py` and integrated Step 9 in `main.py` for automated data transfer to the intelligence engine.
- **Holiday Logic**: Implemented `BusinessCalendar` in `utils.py` using the `holidays` library to automatically detect weekends and Bavarian holidays, ensuring professional timing for automated outreaches.
- **API Discovery**: Created `parse_ce_openapi.py` to facilitate technical field mapping through live OpenAPI analysis.
- **Project Stability**: Refined error handling and logging for a smooth end-to-end workflow.
2026-02-10 11:56:44 +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
7b61426c55 feat(connector-superoffice): implement OAuth 2.0 flow and S2S architecture
Completed POC for SuperOffice integration with the following key achievements:
- Switched from RSA/SOAP to OAuth 2.0 (Refresh Token Flow) for better compatibility with SOD environment.
- Implemented robust token refreshing and caching mechanism in .
- Solved 'Wrong Subdomain' issue by enforcing  for tenant .
- Created  for REST API interaction (Search, Create, Update UDFs).
- Added helper scripts: , , .
- Documented usage and configuration in .
- Updated  configuration requirements.

[2ff88f42]
2026-02-09 16:04:16 +00:00
Jarvis
d013b85ad5 docs: Update docs with DEV/PROD environment variable standards 2026-02-09 13:02:39 +00:00
63de2d2dcf Dateien nach "docs/Zierl" hochladen 2026-02-09 11:37:32 +00:00
84dd542f84 Fragen an Manuel ergänzt 2026-02-09 09:13:36 +00:00
Jarvis
2de113604f fix: Restore deleted API docs and ensure full file integrity 2026-02-09 07:56:44 +00:00
Jarvis
5e48de0718 docs: Add step-by-step IT setup guide for GCP Dev/Prod projects 2026-02-09 07:51:17 +00:00
bc3ab17642 Merge remote-tracking branch 'origin/main' 2026-02-06 14:01:33 +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
7ddb67d1b2 Dateien nach "docs/roboplanet/Produkte/InMotion Robotics/Puma_M20" hochladen 2026-02-05 13:26:12 +00:00
Jarvis
2332f40687 docs: Fully align architecture with Cloud Identity Free strategy (replace Gemini App with Custom Chat) 2026-02-05 09:42:25 +00:00
Jarvis
723652fd03 docs: Update strategy for Cloud Identity Free tier and GCP billing request 2026-02-05 09:39:47 +00:00
Jarvis
cd0f3e7840 docs: Update meeting cheat sheet with new IT constraints (blocked Gemini) 2026-02-05 07:53:12 +00:00
Jarvis
1d97c4f7f8 docs: Restore missing meeting notes and Axels template 2026-02-05 07:51:12 +00:00
Jarvis
45a87d2664 fix: mermaid syntax error in subgraph titles 2026-02-05 07:43:31 +00:00
Jarvis
3956d8335a docs: Add detailed GCP vs Workspace privacy architecture 2026-02-05 07:41:24 +00:00
0f9e651d95 Merge branch 'main' of https://floke-gitea.duckdns.org/Floke/Brancheneinstufung2 2026-02-04 20:44:05 +00:00
10aa6b216d [2f988f42] readme.md wiederhergestellt.
readme.md wiederhergestellt.
2026-02-04 20:43:00 +00:00
3ad316366a docs([2f988f42]): Restore full readme.md content and add LLM warning 2026-02-04 20:42:38 +00:00
c78d01608a ARCHITEKTUR_GCP_SETUP.md aktualisiert 2026-02-04 19:49:30 +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
a559bb2487 docs([2fd88f42]): finalize documentation and update tasks for heatmap tool 2026-02-04 14:59:40 +00:00
d41dcccf26 fix([2fd88f42]): restore missing MarkerClusterGroup import 2026-02-04 14:59:39 +00:00
4b10224bf1 refactor([2fd88f42]): consolidate tooltip manager into filter panel and fix app structure 2026-02-04 14:59:39 +00:00
c56bc372e2 fix([2fd88f42]): correct type import for TooltipColumn in App.tsx 2026-02-04 14:59:39 +00:00
91df52c1a8 fix([2fd88f42]): correct type import for TooltipColumn 2026-02-04 14:59:39 +00:00
73ef663f22 feat([2fd88f42]): implement tooltip column manager 2026-02-04 14:59:39 +00:00
f0713ff5b3 feat([2fd88f42]): implement smart PLZ column selection 2026-02-04 14:59:39 +00:00
ba68572146 refactor([2fd88f42]): remove legend component 2026-02-04 14:59:39 +00:00
022a397aad revert([2fd88f42]): remove zoom-adaptive legend due to critical errors 2026-02-04 14:59:39 +00:00
012328f1a5 fix([2fd88f42]): definitively resolve infinite loop in dynamic legend 2026-02-04 14:59:39 +00:00
cdba28f2ef fix([2fd88f42]): resolve infinite loop in dynamic legend handler 2026-02-04 14:59:39 +00:00
9879f5f927 feat([2fd88f42]): implement zoom-adaptive color and legend scaling 2026-02-04 14:59:39 +00:00
886e270fb1 fix([2fd88f42]): correct type import in MapBoundsManager 2026-02-04 14:59:39 +00:00
24225922de feat([2fd88f42]): add auto zoom-to-fit and dynamic legend 2026-02-04 14:59:39 +00:00
5f6cf446b1 feat([2fd88f42]): add dynamic legend to points map view 2026-02-04 14:59:38 +00:00
8c6b140b74 feat([2fd88f42]): add dynamic legend to points map view 2026-02-04 14:59:38 +00:00
72efe784c6 fix([2fd88f42]): correct import statement for MarkerClusterGroup in MapDisplay.tsx 2026-02-04 14:59:38 +00:00
4ffb52afbf feat([2fd88f42]): add marker clustering to points view 2026-02-04 14:59:38 +00:00
3a7b7afe9a fix([2fd88f42]): use legacy-peer-deps in docker build 2026-02-04 14:59:38 +00:00
326a70843e feat([2fd88f42]): display attributes in point tooltip 2026-02-04 14:59:38 +00:00
d675c46832 feat([2fd88f42]): add heatmap view with toggle switch 2026-02-04 14:59:38 +00:00