Rezept: SevDesk-Kontakte synchronisieren
Dieses Rezept legt neue Kontakte aus Centrics automatisch in SevDesk an und hält ihren Namen aktuell. Es besteht aus zwei Arten von Webhooks:
- Anlegen: ein Webhook pro Kontakttyp, der den Kontakt in SevDesk anlegt und die SevDesk-ID am Kontakt speichert.
- Aktualisieren: ein Webhook, der verknüpfte Kontakte in SevDesk aktualisiert.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Du hast die Rolle Manager, und Webhooks sind für Deinen Account freigeschaltet (siehe Überblick).
- Du hast einen API-Token für SevDesk.
- Du kennst die IDs der SevDesk-Kategorien, die Deinen Kontakttypen in Centrics entsprechen (siehe unten).
Warum ein Anlege-Webhook pro Kontakttyp?
Abschnitt betitelt „Warum ein Anlege-Webhook pro Kontakttyp?“SevDesk ordnet jeden Kontakt einer Kategorie zu, z. B. Kunde, Lieferant oder Partner. Die Kategorie-ID steht fest im Inhalt des Webhooks. Damit jeder Kontakt die richtige Kategorie bekommt, legst Du pro Kontakttyp einen eigenen Anlege-Webhook an und schränkst ihn über Typen auf diesen Typ ein.
Schritt 1: Anlege-Webhook für Kunden
Abschnitt betitelt „Schritt 1: Anlege-Webhook für Kunden“Öffne Management → Webhooks → Neuer Webhook und fülle die Abschnitte so aus:
Ziel
| Feld | Wert |
|---|---|
| Name | SevDesk – Kunden anlegen |
| Methode | POST |
| URL | https://my.sevdesk.de/api/v1/Contact |
| Header | Name Authorization, Wert: Dein SevDesk-API-Token |
Auslöser
| Feld | Wert |
|---|---|
| Ressource | Kontakt |
| Ereignisse | nur Erstellt (Aktualisiert und Gelöscht abwählen) |
| Typen | Dein Kontakttyp für Kunden, z. B. „Kunde“ |
Verknüpfung
| Feld | Wert |
|---|---|
| Angelegten Datensatz verknüpfen | eingeschaltet |
| Referenz | SevDesk |
| Pfad der ID in der Antwort | objects.id |
Inhalt
Wähle als Format Benutzerdefiniert und trage diese Vorlage ein:
{ "name": "{{ contact.name }}", "customerNumber": "{{ contact.number }}", "category": { "id": 3, "objectName": "Category" }}Passe die Kategorie-ID an Deinen SevDesk an. Ob SevDesk die Felder in dieser Form erwartet, prüfst Du am besten mit dem Test in Schritt 2.
Schritt 2: Testen und speichern
Abschnitt betitelt „Schritt 2: Testen und speichern“- Wähle in der Vorschau unter Beispiel die Option Echte Ressource und such einen Kontakt aus, den es in SevDesk noch nicht gibt.
- Klicke auf Test senden.
- Prüfe den HTTP-Status und die Antwort. Steht die ID nicht unter
objects.id, klicke in der Antwort auf die ID, um ihren Pfad zu übernehmen. - Klicke auf Speichern.
Schritt 3: Weitere Kontakttypen
Abschnitt betitelt „Schritt 3: Weitere Kontakttypen“Öffne in der Liste das Menü … des Kunden-Webhooks und wähle Duplizieren. Die Kopie übernimmt alle Einstellungen samt Token und ist zunächst inaktiv. Ändere in der Kopie:
- Name, z. B.
SevDesk – Lieferanten anlegen, - Typen auf den passenden Kontakttyp,
- die Kategorie-ID in der Vorlage.
Speichere die Kopie und schalte sie über Aktivieren ein. Wiederhole das für jeden weiteren Kontakttyp.
Schritt 4: Update-Webhook
Abschnitt betitelt „Schritt 4: Update-Webhook“Lege einen weiteren Webhook an:
| Feld | Wert |
|---|---|
| Name | SevDesk – Kontakte aktualisieren |
| Methode | PUT |
| URL | https://my.sevdesk.de/api/v1/Contact/{{ contact.external_refs.sevdesk }} |
| Header | Name Authorization, Wert: Dein SevDesk-API-Token |
| Ressource | Kontakt |
| Ereignisse | nur Aktualisiert |
| Typen | leer (alle Typen) |
| Beobachtete Felder | z. B. nur Name |
| Verknüpfung | ausgeschaltet |
| Format | Benutzerdefiniert |
Vorlage:
{ "name": "{{ contact.name }}"}Die Vorlage enthält bewusst nur den Namen. Die Kundennummer sendet nur der Anlege-Webhook: Centrics vergibt beim Import teilweise eigene Nummern, und ein Update würde sonst die Nummer in SevDesk bei jeder Namensänderung überschreiben.
Der Platzhalter {{ contact.external_refs.sevdesk }} in der URL setzt die SevDesk-ID ein, die der Anlege-Webhook gespeichert hat.
Was dieses Rezept nicht abdeckt
Abschnitt betitelt „Was dieses Rezept nicht abdeckt“- Adressen, E-Mail-Adressen und Telefonnummern: In SevDesk sind das eigene Objekte neben dem Kontakt. Die Webhooks oben übertragen sie nicht.
- Bestehende Kontakte: Kontakte, die schon vor dem Webhook existieren, werden nicht nachträglich nach SevDesk übertragen. Der Anlege-Webhook reagiert nur auf Erstellt. Ändert sich ein solcher Kontakt, scheitert der Update-Webhook mit einem Vorlagenfehler, weil die SevDesk-ID fehlt (siehe oben). Das ist harmlos, der Kontakt bleibt aber unverändert in SevDesk, bis Du ihn dort anlegst oder über den Kontakt-Import verknüpfst.
- Typwechsel: Wechselt ein Kontakt den Typ, ändert sich seine Kategorie in SevDesk nicht. Der Anlege-Webhook des neuen Typs überspringt den Kontakt, weil er bereits verknüpft ist.
- Löschen: Gelöschte Kontakte bleiben in SevDesk bestehen.