Skip to main content
Das sind Rezepte für dieselbe Handvoll Probleme, auf die die meisten Integrationen stoßen, gebaut auf den echten Request- und Response-Formen aus der API-Einführung. Passe Endpunkt, Felder und Scopes an die Ressource an, mit der du arbeitest – die Muster selbst (nicht die exakten Payloads) sind es, was sich wiederzuverwenden lohnt.

Den API-Key vom Client fernhalten

Rufe die API niemals direkt aus Browser- oder Mobile-Code auf – das legt deinen Key gegenüber jedem offen, der die Entwicklertools öffnet. Setze stattdessen einen schlanken Proxy davor: Dein Frontend ruft dein eigenes Backend auf, und nur dein Backend kennt den Famulor-Key.
Das Frontend bekommt FAMULOR_API_KEY nie zu Gesicht – es spricht nur mit /api/trigger-call auf deiner eigenen Domain.

Mit Backoff wiederholen

Ein 429 oder ein 5xx lohnt sich meist zu wiederholen, statt sofort aufzugeben. Warte zwischen den Versuchen, statt die API im Dauerfeuer zu belasten:
Jeder fehlgeschlagene Versuch verdoppelt ungefähr die Wartezeit (500 ms, 1 s, 2 s …) mit ein wenig zufälligem Jitter, damit nicht alle parallelen Aufrufer im Gleichschritt erneut versuchen.

Webhooks empfangen

Buchungs-Webhooks sind signiert: Setze eine URL auf einem Buchungs-Event-Typ, und jede Zustellung trägt X-Famulor-Signature: sha256=<hex digest> – ein HMAC-SHA256 des rohen Request-Bodys mit dem Secret, das dir beim Speichern der URL einmalig angezeigt wird. Der Variablen-Webhook verwendet dasselbe Schema mit einem eigenen Secret, während Webhooks nach dem Anruf auf Assistentenebene unsigniert sind. Prüfe die Signatur, bevor du der Payload vertraust:
Prüfe gegen die rohen Bytes, vor jedem JSON-Parsing. Wird der Body vorher neu serialisiert, können sich Whitespace oder Feldreihenfolge ändern und die Signaturprüfung stillschweigend brechen.

Eine CSV im Batch anrufen

Um eine Liste statt einer einzelnen Nummer anzurufen, begrenze, wie viele Anrufe du gleichzeitig auslöst – die API lehnt Anfragen ab, sobald dein Credit-Hold oder dein Concurrency-Limit erreicht ist, sodass eine unbegrenzte Schleife nur einen Berg von Fehlern statt eines schnelleren Ergebnisses produziert.
famulorRequest ist hier der Retry-with-Backoff-Helfer von oben – das Batching gibt dir kontrollierte Nebenläufigkeit, und der Helfer fängt den gelegentlichen 429 ab, ohne den ganzen Lauf scheitern zu lassen. Für mehr Volumen als ein einmaliges Skript braucht eine Kampagne oder eine durch CRM-Daten ausgelöste Automatisierung meist weniger eigenen Code, um sie am Laufen zu halten, als ein Batch-Skript, das du selbst am Leben halten musst.