Commit Graph

48 Commits

Author SHA1 Message Date
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
0c7088e5fd [31188f42] einfügen
einfügen
2026-02-24 08:40:38 +00:00
f3fab63cc0 [2ff88f42] Finalize Pains & Gains Phase 2 + Matrix Engine v3.2 (Ops Secondary Logic) 2026-02-23 10:53:13 +00:00
a821d232c3 [30f88f42] einfügen
einfügen
2026-02-22 19:22:39 +00:00
8e39333267 [30e88f42] Einfügen
Einfügen
2026-02-22 14:31:00 +00:00
d8dc37fa91 [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
b41b6c38b8 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
1acdad9923 Feat: End-to-End Test & Bidirectional Vertical Sync [30e88f42]
- Implemented comprehensive E2E test  covering full roundtrip and manual overrides.
- Enhanced  to detect manual Vertical changes in SuperOffice and sync them to Company Explorer.
- Updated  to handle industry overrides from CRM and auto-persist Person/Contact data for robust cascade updates.
2026-02-21 20:05:25 +00:00
02ea4938d2 [2ff88f42] feat(GTM-Engine): Finalize Dual Opener Strategy and E2E Tests
Completed the full GTM Engine implementation:\n\n- Implemented 'Dual Opener' (Primary/Secondary) generation in ClassificationService and DB.\n- Updated Frontend Inspector to display both openers.\n- Hardened analysis process (fixed duplicate scrapes, improved metric prompt).\n- Created robust, API-level E2E test script (test_opener_api.py).\n- Created a standalone health_check.py for diagnostics.\n- Updated all relevant documentation (README, GEMINI.md).
2026-02-20 15:50:53 +00:00
30529b2b13 [2ff88f42] feat(GTM-Engine): Implement Dual Opener Strategy & Harden Analysis
Completed the GTM engine setup:\n\n- Implemented 'Dual Opener' generation (Primary/Secondary) in ClassificationService.\n- Migrated DB to support two opener fields.\n- Updated API and Frontend to handle and display both openers.\n- Fixed bug creating duplicate website_scrape entries.\n- Hardened metric extraction by improving the LLM prompt and adding content length checks.
2026-02-20 15:38:06 +00:00
0b64b1fd49 [2ff88f42] Finalize Verticals Pains/Gains in Notion & Update Docs
Updated all Notion Verticals with sharpened Pains/Gains based on internal strategy (Ops vs Infra focus). Updated SuperOffice Connector README to reflect the 'Static Magic' architecture.
2026-02-20 13:24:13 +00:00
c58707cc1e [2ff88f42] Finalize SuperOffice Integration: Enhanced Persona model with Influencer role, switched Matrix Generator to Gemini, implemented Noise Reduction for Webhooks, and added E2E test scenarios. 2026-02-20 10:55:57 +00:00
9b712d261f [2ff88f42] Refine Webhook Filter: Restrict to Strategic Fields (Name, URL, JobTitle, Position) only 2026-02-20 09:36:34 +00:00
681e4b2607 [2ff88f42] Implement Webhook Noise Reduction: Filter irrelevant events (Sale, Project) and minor field changes 2026-02-20 08:15:19 +00:00
cb17ebed82 [2ff88f42] Finalize SuperOffice Connector: Centralized Config, Added Position/Role Mapping Logic, and Discovery Tools 2026-02-20 07:20:26 +00:00
d64189ef5f [2ff88f42] multiplikation vorbereitet
multiplikation vorbereitet
2026-02-19 20:59:04 +00:00
a39efeb5b1 [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
Moltbot-Jarvis
fcedd25372 docs: Add scale-up plan for SuperOffice batch processing 2026-02-19 08:14:44 +00:00
Moltbot-Jarvis
ca32715185 feat(so-sync): final round-trip tools and infrastructure fixes 2026-02-16 13:58:37 +00:00
Moltbot-Jarvis
073d3460fe feat(so-sync): bidirectional round-trip for company data established [lessons-learned] 2026-02-16 13:58:37 +00:00
f861ca030c feat(superoffice): Restore full main.py functionality and add health check [2ff88f42]
This commit restores the full functionality of the  script within the  module. Several  instances were resolved by implementing missing methods in  (e.g., , , , , , , ) and correcting argument passing.

The data extraction logic in  was adjusted to correctly parse the structure returned by the SuperOffice API (e.g.,  and ).

A dedicated SuperOffice API health check script () was introduced to quickly verify basic API connectivity (reading contacts and persons). This script confirmed that read operations for  and  entities are functional, while the  endpoint continues to return a , which is now handled gracefully as a warning, allowing other tests to proceed.

The  now successfully executes all SuperOffice-specific POC steps, including creating contacts, persons, sales, projects, and updating UDFs.
2026-02-16 10:33:19 +00:00
Jarvis
3d45e03739 docs: Add ID mappings for Roles and Verticals (DEV) 2026-02-12 14:24:57 +00:00
Jarvis
5040b0b52e docs: Add DEV/PROD mapping for UDF ProgIds 2026-02-12 14:23:45 +00:00
Jarvis
5a19a9c85f feat: Build complete POC for Butler model (client, matrix, daemon) 2026-02-12 14:18:57 +00:00
Jarvis
5b1939c881 docs: Create comprehensive documentation for the Butler model architecture 2026-02-12 14:18:57 +00:00
88f9b8efb5 [2ff88f42] Update README.md with custom table access lessons learned and revert unrequested files. 2026-02-11 13:34:35 +00:00
92fcfd747c [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
2f17a3bec1 [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
312ce8aa1d [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
c420bb31c3 [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
47cd047bc8 [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
a479058df2 [2ff88f42] Durchstich geschafft
Durchstich geschafft
2026-02-09 16:05:04 +00:00
16fc826b5e 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
a04d92253a 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
Jarvis
ca0ef5d741 chore: scaffold superoffice connector service for development 2026-02-02 19:42:38 +00:00