Kontext
Vreespol vermittelt polnische Saisonkräfte in großem Umfang in die niederländische Land- und Gartenbauwirtschaft. Salesforce war das operative Rückgrat: Mitarbeitende, Einsätze, Stundenzettel, Forecasts. Die Lohnabrechnung lief in DATEV, dem De-facto-Standard für Lohnabrechnung im deutschsprachigen Raum, doch die Daten wurden Monat für Monat manuell zwischen den Systemen kopiert. Bei dieser Größenordnung brach der manuelle Prozess: hunderte Mitarbeitende, mehrere Lohnarten, Urlaubs- und Krankheits-Anwartschaft, Abzüge für Transport und Unterkunft, alles musste bis zum 5. oder 6. eines Monats für die Vormonats-Abrechnung in DATEV landen.
Die Integration musste innerhalb der Salesforce-Governor-Limits laufen und berücksichtigen, dass das führende Resource-Objekt in einem Managed Package lag, dessen Trigger wir nicht ändern konnten und um das wir herumarchitektieren mussten.
Unsere Rolle
Durchgehende Salesforce-Lieferung für die Integration und die umliegende Lohn-Automatisierung. Architektur, Custom Apex, Batch-Jobs und der laufende Betrieb der Pipeline gemeinsam mit Vreespols HR-Operations-Team.
Was wir geliefert haben
- DATEV-API-Integration über OAuth 2.0, einschließlich Client-ID- und Secret-Handling, Zertifikats-Setup und Routing über Vreespols On-Premise-DATEV-Connect-Instanz. Salesforce hat keine direkte DATEV-Anbindung, deshalb saß die Integration zwischen Salesforce und Vreespols eigenen Servern.
- Monatlicher Lohn-Batch-Job, der Stunden, Urlaub, Krankheit, Boni, Transport, Unterkunft und Gruppenversicherung aus den operativen Forecast-Datensätzen aggregiert und unter den korrekten Lohnarten für jede Kategorie an DATEV überträgt (Bezüge und Abzüge separat behandelt).
- Engine für die Urlaubsanwartschaft mit Jahreswechsel-Logik, monatlich geplant, mit Reset im Januar und Übertrag von Teil-Beständen.
- Stammdaten-Sync für Mitarbeitende als separater Batch-Pfad: Name, Adresse, Beschäftigungsdaten, deutsche Krankenkasse, Bundesland, jedes Feld, das DATEV vor der Buchung von Lohnzeilen verlangt.
- Workaround für das Managed Package. Die führenden Datensätze lagen in einem Managed Package, also haben wir um die Paket-Restriktionen herum konstruiert, statt es zu modifizieren.
- Sichtbarkeit für HR-Ops. Status-Felder, Letzte-Aktualisierung-Zeitstempel und DATEV-IDs auf jedem Datensatz, sodass Finance und Operations jederzeit sehen konnten, was synchronisiert wurde und was offen war, ohne Engineering anzufragen.
Aus der Lohnabrechnung wurde ein geplanter Job statt eines fünftägigen Abgleichs.
Ergebnis
Neue Mitarbeitende waren innerhalb von Stunden synchronisiert, statt auf den Monatsabschluss zu warten. Urlaubsansprüche drifteten nicht mehr auseinander, weil dieselbe Engine, die sie auszahlte, sie auch fortschrieb. Das HR-Ops-Team bekam eine Dashboard-Sicht darauf, was an DATEV gesendet wurde und was noch ausstand, was den dauerhaften ‘Ist das durchgegangen?’-Support-Faden beendete.
Die Integration lief über ein Jahr lang bis zum Projektabschluss und überstand alle DATEV-API-Eigenheiten ohne manuelles Eingreifen.