Commit Graph

1833 Commits

Author SHA1 Message Date
98e8fe6283 [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
fd5ca41e7f [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
b7265ff1e7 [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
75510e9f63 [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
07207921e0 [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
53f8fad7f2 [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
28f8f33c0e [2ff88f42] Durchstich geschafft
Durchstich geschafft
2026-02-09 16:05:04 +00:00
f1b1b70f23 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
38bc8c9c65 docs: Update docs with DEV/PROD environment variable standards 2026-02-09 13:02:39 +00:00
4905409c72 Dateien nach "docs/Zierl" hochladen 2026-02-09 11:37:32 +00:00
a2fb922643 Fragen an Manuel ergänzt 2026-02-09 09:13:36 +00:00
Jarvis
0fc6b0877f fix: Restore deleted API docs and ensure full file integrity 2026-02-09 07:56:44 +00:00
Jarvis
2db8cdf2fd docs: Add step-by-step IT setup guide for GCP Dev/Prod projects 2026-02-09 07:51:17 +00:00
77a4601caf Merge remote-tracking branch 'origin/main' 2026-02-06 14:01:33 +00:00
4af0e999fd [2ff88f42] Zusammenfassung des bisherigen Fortschritts
Zusammenfassung des bisherigen Fortschritts
2026-02-06 13:53:12 +00:00
219534ae67 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
2c9dd1764b Dateien nach "docs/roboplanet/Produkte/InMotion Robotics/Puma_M20" hochladen 2026-02-05 13:26:12 +00:00
Jarvis
91e24b4873 docs: Fully align architecture with Cloud Identity Free strategy (replace Gemini App with Custom Chat) 2026-02-05 09:42:25 +00:00
Jarvis
e317eacbf5 docs: Update strategy for Cloud Identity Free tier and GCP billing request 2026-02-05 09:39:47 +00:00
Jarvis
006772dee8 docs: Update meeting cheat sheet with new IT constraints (blocked Gemini) 2026-02-05 07:53:12 +00:00
Jarvis
bed121a3d0 docs: Restore missing meeting notes and Axels template 2026-02-05 07:51:12 +00:00
Jarvis
fc30e62a05 fix: mermaid syntax error in subgraph titles 2026-02-05 07:43:31 +00:00
Jarvis
8939579517 docs: Add detailed GCP vs Workspace privacy architecture 2026-02-05 07:41:24 +00:00
95a642b445 Merge branch 'main' of https://floke-gitea.duckdns.org/Floke/Brancheneinstufung2 2026-02-04 20:44:05 +00:00
9949ec4663 [2f988f42] readme.md wiederhergestellt.
readme.md wiederhergestellt.
2026-02-04 20:43:00 +00:00
0c8beb1d02 docs([2f988f42]): Restore full readme.md content and add LLM warning 2026-02-04 20:42:38 +00:00
d71902a48a ARCHITEKTUR_GCP_SETUP.md aktualisiert 2026-02-04 19:49:30 +00:00
d07c3eaf64 [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
992a0a7331 docs([2fd88f42]): finalize documentation and update tasks for heatmap tool 2026-02-04 14:59:40 +00:00
6bbea85831 fix([2fd88f42]): restore missing MarkerClusterGroup import 2026-02-04 14:59:39 +00:00
c6b0b658ef refactor([2fd88f42]): consolidate tooltip manager into filter panel and fix app structure 2026-02-04 14:59:39 +00:00
8a988539be fix([2fd88f42]): correct type import for TooltipColumn in App.tsx 2026-02-04 14:59:39 +00:00
ab83e60f1d fix([2fd88f42]): correct type import for TooltipColumn 2026-02-04 14:59:39 +00:00
4dcbe81bf5 feat([2fd88f42]): implement tooltip column manager 2026-02-04 14:59:39 +00:00
3a4f7ae790 feat([2fd88f42]): implement smart PLZ column selection 2026-02-04 14:59:39 +00:00
56397f80dc refactor([2fd88f42]): remove legend component 2026-02-04 14:59:39 +00:00
0663bd08bb revert([2fd88f42]): remove zoom-adaptive legend due to critical errors 2026-02-04 14:59:39 +00:00
915d1b5da0 fix([2fd88f42]): definitively resolve infinite loop in dynamic legend 2026-02-04 14:59:39 +00:00
400da810c8 fix([2fd88f42]): resolve infinite loop in dynamic legend handler 2026-02-04 14:59:39 +00:00
9bc3741715 feat([2fd88f42]): implement zoom-adaptive color and legend scaling 2026-02-04 14:59:39 +00:00
07ed6fbd2d fix([2fd88f42]): correct type import in MapBoundsManager 2026-02-04 14:59:39 +00:00
db0baf18e1 feat([2fd88f42]): add auto zoom-to-fit and dynamic legend 2026-02-04 14:59:39 +00:00
544f20b249 feat([2fd88f42]): add dynamic legend to points map view 2026-02-04 14:59:38 +00:00
c0dc1e09a9 feat([2fd88f42]): add dynamic legend to points map view 2026-02-04 14:59:38 +00:00
b7766452ae fix([2fd88f42]): correct import statement for MarkerClusterGroup in MapDisplay.tsx 2026-02-04 14:59:38 +00:00
46dbe0b3aa feat([2fd88f42]): add marker clustering to points view 2026-02-04 14:59:38 +00:00
0f0d5a4f34 fix([2fd88f42]): use legacy-peer-deps in docker build 2026-02-04 14:59:38 +00:00
f084f1be12 feat([2fd88f42]): display attributes in point tooltip 2026-02-04 14:59:38 +00:00
8dc274ce5d feat([2fd88f42]): add heatmap view with toggle switch 2026-02-04 14:59:38 +00:00
278c1aada7 feat([2fd88f42]): add adjustable marker radius and collapse filters by default 2026-02-04 14:59:38 +00:00