Finalize SuperOffice production migration and multi-campaign architecture (v1.8)

This commit is contained in:
2026-02-27 15:09:52 +00:00
parent 89fe284554
commit 41e5696c57
18 changed files with 460 additions and 311 deletions

View File

@@ -366,6 +366,50 @@ PERSÖNLICHE HERAUSFORDERUNGEN: {persona_pains}
2. **Matrix-Anschluss (Infrastruktur):** "...minimieren Ausfallzeiten um 80-90% durch proaktives Monitoring... planbare Wartung und Transparenz durch feste **SLAs**." (Direkter Bezug auf hinterlegte Überzeugungsargumente).
3. **Matrix-Anschluss (Wirtschaftlich):** "...Reduktion operativer Personalkosten um 10-25%... wirkt sich direkt auf **ROI** und **Amortisationszeit** aus." (Direkter Bezug auf hinterlegte KPIs).
### 17.10 Production Switch & Multi-Campaign Architecture (Feb 27, 2026)
Das System wurde erfolgreich von der Sandbox auf die SuperOffice-Produktionsumgebung migriert. Alle technischen Hürden (Auth, ProgIDs, REST-Besonderheiten) wurden beseitigt.
#### A. Umgebungsparameter (Production)
* **Base URL (OAuth):** `https://online.superoffice.com/login/common/oauth/tokens`
* **Base URL (API):** `https://online3.superoffice.com/Cust26720/api/v1/`
* **Tenant ID:** `Cust26720`
* **Client ID:** `0fd8272803551846f7212a961a1a0046`
#### B. Finales UDF Mapping (ProgIDs)
Verifizierte IDs für den Mandanten `Cust26720`:
| Zweck | Entität | ProgID | Format / Logik |
| :--- | :--- | :--- | :--- |
| **MA Subject** | Person | `SuperOffice:19` | Text |
| **MA Intro** | Person | `SuperOffice:20` | Text |
| **MA Social Proof** | Person | `SuperOffice:21` | Text |
| **MA Unsubscribe** | Person | `SuperOffice:22` | URL (DSGVO konform) |
| **MA Campaign** | Person | `SuperOffice:23` | Liste (Auflösung via `:DisplayText`) |
| **Vertical** | Contact | `SuperOffice:83` | Liste (Mapping siehe unten) |
| **AI Summary** | Contact | `SuperOffice:84` | Truncated (< 135 Zeichen) |
| **AI Last Update** | Contact | `SuperOffice:85` | Datum: `[D:MM/DD/YYYY HH:MM:SS]` |
| **Opener Primary** | Contact | `SuperOffice:86` | Text (Infrastruktur/Cleaning) |
| **Opener Secondary**| Contact | `SuperOffice:87` | Text (Service/Logistik) |
| **Last Outreach** | Contact | `SuperOffice:88` | Datum |
#### C. Vollständige Vertical-Liste (Produktiv-IDs)
Die Liste `udlist331` steuert die Branchenzuordnung. Der Connector nutzt folgendes Mapping:
`Automotive - Dealer: 1613, Corporate - Campus: 1614, Energy - Grid & Utilities: 1615, Energy - Solar/Wind: 1616, Healthcare - Care Home: 1617, Healthcare - Hospital: 1618, Hospitality - Gastronomy: 1619, Hospitality - Hotel: 1620, Industry - Manufacturing: 1621, Infrastructure - Communities: 1622, Infrastructure - Public: 1623, Infrastructure - Transport: 1624, Infrastructure - Parking: 1625, Leisure - Entertainment: 1626, Leisure - Fitness: 1627, Leisure - Indoor Active: 1628, Leisure - Outdoor Park: 1629, Leisure - Wet & Spa: 1630, Logistics - Warehouse: 1631, Others: 1632, Reinigungsdienstleister: 1633, Retail - Food: 1634, Retail - Non-Food: 1635, Retail - Shopping Center: 1636, Tech - Data Center: 1637`.
#### D. Technische Meilensteine (Lessons Learned)
1. **Atomic PATCH Workflow:** Um API-Timeouts und Inkonsistenzen zu vermeiden, bündelt der `worker.py` (v1.8) alle Änderungen an einem Kontakt in einem einzigen `PATCH`-Request an `/Contact/{id}`.
2. **Website-Sync (REST-Korrektur):** Die Aktualisierung der Website erfolgt über das `Urls`-Array (nicht `UrlAddress`). Format: `"Urls": [{"Value": "...", "Description": "AI Discovered"}]`.
3. **Listen-Auflösung (Optimierung):** Kampagnen-Namen werden ohne zusätzliche API-Calls über das Pseudo-Feld `ProgID:DisplayText` (z.B. `SuperOffice:23:DisplayText`) direkt im Payload des Personen-Abrufs gelesen.
4. **Längenbegrenzung:** Da viele UDFs in SuperOffice standardmäßig auf 254 Zeichen begrenzt sind, wird das AI-Dossier (Summary) hart auf 132 Zeichen (+ "...") gekürzt, um 400er Fehler beim Update zu vermeiden.
5. **Docker Orchestrierung:** Der Wechsel auf `env_file: .env` in der `docker-compose.yml` stellt sicher, dass alle Services (CE + Connector) konsistent auf dieselben Mappings zugreifen.
#### E. Kampagnen-Steuerung (Multi-Template)
Der Company Explorer unterstützt nun den Parameter `campaign_tag`. Der Connector sendet den Namen des gewählten Listeneintrags (z.B. "First Contact") an den CE. Dieser liefert spezifische Texte aus der `MarketingMatrix`, sofern vorhanden (Fallback: "standard").
---
---
## 18. Next Steps & Todos (Post-Migration)