---
type: step
category: event
name: VMH Beteiligte Sync
version: 2.0.0
status: active
tags: [sync, vmh, beteiligte, event, production]
dependencies: [redis, espocrm, advoware]
emits: []
subscribes: [vmh.beteiligte.create, vmh.beteiligte.update, vmh.beteiligte.delete, vmh.beteiligte.sync_check]
---

# VMH Beteiligte Sync Event Step

> **⚠️ Diese Datei ist veraltet.**  
> **Aktuelle Dokumentation**: [../../docs/SYNC_OVERVIEW.md](../../docs/SYNC_OVERVIEW.md)

## Status
✅ **PRODUCTION** - Vollständig implementiert und in Betrieb

## Zweck
Verarbeitet Create/Update/Delete-Events für Beteiligte-Entitäten und synchronisiert zwischen EspoCRM und Zielsystem.

## Config
```python
{
    'type': 'event',
    'name': 'VMH Beteiligte Sync',
    'subscribes': [
        'vmh.beteiligte.create',
        'vmh.beteiligte.update',
        'vmh.beteiligte.delete'
    ],
    'emits': [],
    'flows': ['vmh']
}
```

## Geplantes Verhalten

**Input Events**:
```json
{
  "topic": "vmh.beteiligte.create",
  "data": {
    "entity_id": "123",
    "action": "create",
    "source": "webhook",
    "timestamp": "..."
  }
}
```

**Processing**:
1. Fetch full entity data from EspoCRM
2. Map to target system format
3. Create/Update/Delete in target system
4. Remove ID from Redis pending set
5. Log success/failure

## Implementierungs-Aufgaben

- [ ] EspoCRM API Client erstellen
- [ ] Entity-Mapping definieren
- [ ] Zielsystem-Integration
- [ ] Error-Handling & Retry-Logic
- [ ] Redis Cleanup (remove from pending sets)
- [ ] Logging & Monitoring

## Redis Cleanup
Nach erfolgreicher Verarbeitung:
```python
redis.srem('vmh:beteiligte:create_pending', entity_id)
redis.srem('vmh:beteiligte:update_pending', entity_id)
redis.srem('vmh:beteiligte:delete_pending', entity_id)
```

## Testing (Future)
```bash
# Manually emit event for testing
# (via Motia CLI or test script)
```

## KI Guidance
Wenn Sie diesen Step implementieren:
1. Erstellen Sie EspoCRM API Client in `services/`
2. Definieren Sie Mapping-Logic
3. Implementieren Sie Retry-Logic mit exponential backoff
4. Cleanen Sie Redis Sets nach Verarbeitung
5. Loggen Sie alle Operationen für Audit

## Related
- [webhook/beteiligte_create_api_step.md](webhook/beteiligte_create_api_step.md) - Emits create events
- [webhook/beteiligte_update_api_step.md](webhook/beteiligte_update_api_step.md) - Emits update events
- [webhook/beteiligte_delete_api_step.md](webhook/beteiligte_delete_api_step.md) - Emits delete events
