- Implemented `compare_beteiligte.py` script for comparing Beteiligte structures between EspoCRM and Advoware. - Created `beteiligte_comparison_result.json` to store comparison results. - Developed `EspoCRMAPI` service for handling API interactions with EspoCRM. - Added comprehensive documentation for the EspoCRM API service. - Included error handling and logging for API operations. - Enhanced entity management with CRUD operations and search capabilities.
2.9 KiB
2.9 KiB
EspoCRM Integration - Nächste Schritte
✅ Bereits erstellt:
1. EspoCRM Service (services/espocrm.py)
- Vollständiger API-Client mit allen CRUD-Operationen
- X-Api-Key Authentifizierung
- Error Handling und Logging
- Redis-Integration für Caching/Rate Limiting
2. Compare Script (scripts/compare_beteiligte.py)
- Liest Beteiligten-Daten aus EspoCRM und Advoware
- Zeigt Struktur-Unterschiede
- Hilft beim Entity-Mapping
🔧 Setup
-
Umgebungsvariablen setzen:
cp .env.example .env # Dann .env editieren und echte Keys eintragen -
EspoCRM API Key besorgen:
- In EspoCRM Admin Panel: Administration → API Users
- Neuen API User erstellen oder bestehenden Key kopieren
- In
.envalsESPOCRM_MARVIN_API_KEYeintragen
🧪 Testing
Compare Script ausführen:
cd /opt/motia-app/bitbylaw
source python_modules/bin/activate
# Mit EspoCRM ID (sucht automatisch in Advoware nach Namen)
python scripts/compare_beteiligte.py <espocrm_entity_id>
# Mit beiden IDs
python scripts/compare_beteiligte.py <espocrm_id> <advoware_id>
Beispiel:
python scripts/compare_beteiligte.py 507f1f77bcf86cd799439011 12345
Output zeigt:
- Alle Felder aus EspoCRM
- Alle Felder aus Advoware
- Strukturunterschiede
- Mapping-Vorschläge
📋 Nächste Schritte
1. Entity-Mapping definieren
Basierend auf dem Compare-Output:
bitbylaw/services/espocrm_mapper.pyerstellen- Mapping-Funktionen für Beteiligte ↔ Personen/Firmen
- Feld-Transformationen
2. Sync Event Step implementieren
bitbylaw/steps/vmh/beteiligte_sync_event_step.py:
- Events von Webhooks verarbeiten
- EspoCRM API Client nutzen
- Mapper für Transformation
- In Advoware schreiben (via Proxy)
- Redis Cleanup
3. Testing & Integration
- Unit Tests für Mapper
- Integration Tests mit echten APIs
- Error Handling testen
- Rate Limiting verifizieren
📚 Dokumentation
- Service:
services/ESPOCRM_SERVICE.md - Script README:
scripts/compare_beteiligte_README.md - API Docs:
docs/API.md(VMH Webhooks Sektion) - Architektur:
docs/ARCHITECTURE.md(EspoCRM Integration)
🔍 Tipps
EspoCRM Entity Types
Häufige Entity-Types in EspoCRM:
Contact- PersonenAccount- Firmen/OrganisationenLead- LeadsOpportunity- Verkaufschancen- Custom Entities (z.B.
CVmhBeteiligte,CVmhErstgespraech)
Advoware Mapping
- Person →
personenEndpoint - Firma →
firmenEndpoint - Beide sind "Beteiligte" in Advoware-Sprache
API Endpoints
# EspoCRM
curl -X GET "https://crm.bitbylaw.com/api/v1/Contact/ID" \
-H "X-Api-Key: YOUR_KEY"
# Advoware (via Proxy)
curl -X GET "http://localhost:3000/advoware/personen/ID" \
-H "Authorization: Bearer YOUR_TOKEN"
❓ Support
Bei Fragen siehe:
- EspoCRM API Docs: https://docs.espocrm.com/development/api/
- Advoware Integration:
docs/ADVOWARE_SERVICE.md - Motia Framework:
docs/DEVELOPMENT.md