Zum Hauptinhalt springen

Design und Nutzung Ihrer APIs mit Data connectors

Verfasst von Ivan Branimir Skoric

Data connectors verwenden APIs, um sich mit externen Systemen zu verbinden und vorhandene Daten abzurufen und/oder zu aktualisieren. Deshalb ist es wichtig, beim Einrichten von Data connectors in Intercom einige Dinge zu beachten.


Verwendung von Drittanbieter-APIs (Shopify, WooCommerce usw.)

Wenn Sie Drittanbieter-APIs (nicht intern entwickelte APIs) mit Data connectors in Intercom nutzen, haben Sie wahrscheinlich wenig bis keine Kontrolle darüber, wie sie funktionieren oder welche Antwort Sie auf eine Anfrage erhalten.

Dennoch ist die folgende Anleitung eine nützliche Orientierung, auch wenn einige Abschnitte möglicherweise nicht vollständig auf Ihren Anwendungsfall zutreffen.


Verwendung von First-Party-APIs

Unsere Entwickler haben eine Liste von Punkten zusammengestellt, die Sie beim Entwerfen oder Ändern Ihrer bestehenden APIs beachten sollten, damit sie mit Fin und Data connectors in Intercom funktionieren.

Authentifizierungs- und Identitätsüberlegungen

Wie Sie Ihre users und Benutzereingaben für die Verwendung in Data connectors absichern

Wichtig: Sie und/oder Ihr Sicherheitsteam sollten eine Risikoanalyse durchführen und die Folgen eines möglichen Datenlecks bewerten.

Intercom übernimmt keine Verantwortung oder Haftung für Datenlecks, die durch mangelhafte Authentifizierungs- und Identifikationspraktiken Ihrer oder Drittanbieter-APIs entstehen.

Wir empfehlen dringend, dass Sie Messenger Security mit JWTs aktivieren. Die Absicherung Ihres Messengers ist die wichtigste Sicherheitsmaßnahme für Ihre Integration.

Es ermöglicht Ihnen auch, mehrere Attribute zu signieren über unsere JavaScript-API, sodass Sie Daten über Ihre users sicher über den Messenger senden können, ohne eine andere Integration wie z. B. REST API verwenden zu müssen.

Um die Vorteile des sicheren Sendens von Daten zu nutzen, können Sie Ihre Attribute vor unsicheren Messenger-Updates schützen. Dann wird jedes gesendete JWT, das wir als sichere Quelle betrachten, dieses Feld beim user weiterhin aktualisieren. Dies ist entscheidend für Data connectors, wenn der Data connector sensible Daten anzeigt oder Daten manipuliert.

Wenn Ihr Data connector beispielsweise eine Anfrage an die API mit „GET /accounts/<account_id>/invoices“ stellt, sollten Sie sicherstellen, dass account_id geschützt ist, damit der user nicht einfach account_ids aufzählen und Daten sammeln kann. Wenn Ihr Data connector jedoch „GET /pizza-order-status/<order_id>“ ist, ist Ihnen die Vertrauenswürdigkeit von „order_id“ möglicherweise egal, und Sie kümmern sich nicht darum, ob diese Informationen der richtigen Person angezeigt werden.

Außerdem sollten Sie sicherstellen, dass das Attribut, das Ihr Data connector zur eindeutigen Identifizierung Ihrer users verwendet (z. B. E-Mail), vertrauenswürdig ist. Das bedeutet, dass Sie die Quelle der identifizierenden Attribute Ihres Data connectors vertrauen müssen. Wenn Ihr Data connector den user beispielsweise über user_id identifiziert, ist die Identitätsprüfung das Signieren des user_id-Attributs. Wenn Ihr Data connector den user über E-Mail oder ein anderes Attribut identifiziert, ist dieses Attribut geschützt und wird nicht ohne Verifizierung vom End user erfasst.

Dies verhindert, dass böswillige Akteure beispielsweise eine fremde E-Mail-Adresse angeben und auf einen Data connector wie „Bankauszüge per E-Mail abrufen“ zugreifen, was sensible Finanzdaten offenlegen würde.

Wo möglich, empfehlen wir, nicht die E-Mail als primären Identifikator zum Abrufen von Daten Ihrer users zu verwenden, sondern etwas Zufälligeres wie eine eindeutige, nicht erratbare user ID.

Für die Identitätsprüfung bei leads arbeitet unser Team derzeit an einer One-Time-Password-(OTP-)Funktion, die Ihnen hilft, die Identität einer Person zu verifizieren, wenn sie als lead Ihren Support kontaktiert. Wenn Sie an dieser Funktion interessiert sind, kontaktieren Sie gerne unser Support-Team über den Messenger, das Ihnen bei der Aktivierung behilflich ist.

Sie sollten auch sicherstellen, dass der user keine Data connectors ausführen kann, für die er nicht autorisiert ist, z. B. eine Bestellung einer anderen Person durch Kenntnis der Bestell-ID stornieren. Diese Logik wird nicht von Intercom gehandhabt, und Sie/Ihr Sicherheitsteam sollten eine Risikoanalyse durchführen und geeignete Methoden zur Handhabung von Authentifizierung und Autorisierung entwickeln.

Wie Sie den API-Aufruf Ihres Data connectors sicher konfigurieren

Intercom unterstützt derzeit statische Tokens, HTTP-Tokens und OAuth (geschlossene Beta, kontaktieren Sie uns für weitere Informationen über den Messenger). Unabhängig vom verwendeten Token liegt es in Ihrer Verantwortung, dieses geheim zu halten und bei einem Leak so schnell wie möglich zu aktualisieren. Als Best Practice empfehlen wir, wo immer möglich OAuth-Tokens zu verwenden.

Datenüberlegungen

Idealerweise sollte die API nur die für Ihren Workflow notwendigen Daten zurückgeben. Dies ist jedoch oft unrealistisch, und die API könnte eine Menge Daten zurückgeben, die für die Ausführung des Workflows, in dem der Data connector verwendet wird, tatsächlich nicht erforderlich sind.

Wenn Sie APIs von Grund auf neu erstellen, die ausschließlich mit Data connectors und Fin Workflows verwendet werden sollen, können Sie entweder:

  • Die API so gestalten, dass die Geschäftslogik des Workflows in einem Data connector verarbeitet wird – das spart API-Aufrufe und bündelt die Logik an einem Ort,

  • Einzelne Endpunkte erstellen, z. B. zum Finden von Bestellungen, Abrufen von Bestelldetails und schließlich zur Rückerstattung der Bestellung – das entspricht den Best Practices für RESTful API-Design, erfordert jedoch mehrere API-Aufrufe, um einen Workflow (z. B. Rückerstattung) abzuschließen.

Folgende Überlegungen sollten bei der Entscheidung, welche und wie viele Daten Ihre API zurückgibt, einbezogen werden:

  • Benötigt Fin/Workflow wirklich alle bereitgestellten Daten, um die Schritte im Workflow abzuschließen? Wenn Sie beispielsweise einen Workflow zur Erstellung einer Rückerstattung haben, benötigen Sie wahrscheinlich nur die Details zur Bestellung und nicht zusätzliche Daten zum Benutzerkonto.

  • Data connectors warten bis zu 3 Sekunden auf eine Verbindung und bis zu 30 Sekunden auf eine Antwort. Wenn die API zu lange für die Antwort benötigt, sollten Sie in Erwägung ziehen, die dahinterliegenden Operationen und möglicherweise die zurückgegebenen Datenmengen zu reduzieren.
    Für Data connectors, die länger brauchen, empfehlen wir die Nutzung der „Wait for webhook“-Funktion.

  • Data connectors können problemlos Attribute und Arrays verarbeiten, die 1 bis 2 Ebenen tief verschachtelt sind, aber komplexe Objekte mit tief verschachtelten Arrays eignen sich besser für die Verarbeitung mit Fin Procedures. Wenn Sie versuchen, solche Antwortobjekte mit einem Data connector zu verwenden, können Schwierigkeiten auftreten. Fin Tasks können diese besser handhaben.

Hinweis: Dieselbe Timeout-Regel gilt überall, wo ein Data connector ausgeführt wird, sei es in Fin Procedures, Workflows oder im Inbox. Es gibt kein separates Timeout für Procedures, und das Timeout ist für Kunden nicht konfigurierbar. Dies ist wichtig bei der Gestaltung von Workflows oder Procedures mit länger laufenden API-Aufrufen.

Außerdem sollten Sie immer verhindern, dass users fehlerhafte Daten eingeben oder einfach etwas eintippen.

Beispielsweise sollten Sie den user nicht bitten, seine Konto-ID einzugeben, sondern ihm basierend auf einem bekannten, sicheren Identifikator seine Konto-IDs in einer Dropdown-Liste präsentieren und ihn auswählen lassen. Mehr dazu, wie Sie Daten von users erfassen können, finden Sie hier.

Weitere Überlegungen

  • Ihre API sollte anwendungsspezifische Limits durchsetzen, z. B. Rückerstattungen auf einen maximalen Betrag pro Tag begrenzen.

  • Stellen Sie sicher, dass Ihre API idempotent ist, da Fin dieselbe Rückerstattungsanfrage mehrfach senden kann.

  • Implementieren Sie serverseitige Validierungen, um sicherzustellen, dass alle Eingaben dem in Ihrem Data connector angegebenen Format entsprechen.

  • Wenden Sie Eingabereinigung auf eingehende Daten an und erkennen Sie KI-generierte Felder, die halluzinierte oder bösartige Inhalte enthalten können.

  • Verwenden Sie standardisierte HTTP-Fehlercodes, damit Fin angemessen reagieren kann. Beispielsweise können HTTP-429- oder 500-Fehler einen erneuten Versuch rechtfertigen, während HTTP-410 anzeigt, dass keine weiteren Versuche unternommen werden sollten.

  • Versionieren Sie Ihre API, um eine nahtlose Migration von Live Fin Data connectors zwischen Versionen zu ermöglichen (z. B. /v1/orders zu /v2/orders).

Zusammenfassung

  1. Sichern Sie den Messenger mit JWTs, um user-Daten und Attribute zu schützen.

  2. Verwenden Sie vertrauenswürdige Identifikatoren (z. B. signierte user IDs, nicht E-Mail), um Daten abzurufen.

  3. Beschränken Sie user-Aktionen auf das, wozu sie autorisiert sind.

  4. Vermeiden Sie Freitexteingaben – verwenden Sie Dropdowns aus bekannten, sicheren Quellen.

  5. Wählen Sie sichere API-Tokens, idealerweise OAuth (in geschlossener Beta).

  6. Geben Sie nur benötigte Daten zurück, um Verzögerungen oder Datenlecks zu vermeiden.

  7. Verwenden Sie eine klare API-Struktur – einfache Antworten, richtige Versionierung und standardisierte Fehlercodes.

  8. Validieren Sie alle Eingaben und bereinigen Sie alles, was von users oder KI generiert wurde.

Hat dies deine Frage beantwortet?