Zum Inhalt

Integrationen

Expecto kommuniziert mit externen Plattformen in zwei Richtungen:

  • Context — bevor eine Lieferung verarbeitet wird, liest Expecto Referenzdaten aus einem externen System und legt sie in den Session-Kontext: die Salden des Vormonats aus einem Data Warehouse, eine Fondsnummer aus einer Stammdaten-API, einen Wechselkurs aus einer Reporting-Datenbank. Geschäftsregeln und Transformer nutzen diese Werte wie jeden anderen Kontext.
  • Outbound — erreicht eine Session einen Meilenstein (Prüfungen bestanden, eine Stufe fehlgeschlagen, das Paket exportiert), schreibt Expecto einen Datensatz in eine externe Plattform: einen Status-Datensatz in Salesforce, eine Zeile in einer Betriebstabelle.

Beide Richtungen bestehen aus denselben drei Bausteinen.

Die Bausteine

Baustein Lebt auf Enthält
Connection Organisation (Settings → Connections) Wie ein externes System erreicht wird: Typ, URL oder DSN, Zugangsdaten, anbieterspezifische Konfiguration. Zugangsdaten werden verschlüsselt gespeichert und nie wieder angezeigt.
Context Source Projekt (Project → Context) Eine Abfrage gegen eine Connection mit {{ … }}-Platzhaltern sowie die Kontexttabelle oder der Skalar, den sie erzeugt.
Outbound Binding Projekt (Project → Context → Outbound Bindings) Welche Session-Ereignisse an welche Connection gehen und wie die Nutzlast geformt wird.

Der Typ einer Connection bestimmt, was sie kann. Jeder Typ wird von einem Adapter implementiert, der seine Fähigkeiten deklariert:

Plattform Typ Fähigkeiten Seite
Salesforce salesforce outbound Salesforce
BuiltAPI builtapi context BuiltAPI
PostgreSQL postgres context PostgreSQL

Eine Context Source muss auf eine context-fähige Connection verweisen, ein Outbound Binding auf eine outbound-fähige; alles andere wird beim Speichern mit einer klaren Meldung abgelehnt. Der aktuelle Katalog mit Fähigkeiten und Formularfeldern kommt von GET /api/integration-connections/types (bzw. dem MCP-Tool list_connection_types), sodass Clients ihn nie hart kodieren.

Wer darf was

Aktion Benötigt
Connections anlegen, bearbeiten, testen, löschen; Context Sources und Outbound Bindings bearbeiten Die Berechtigung integrations:manage — enthalten in den Rollen owner und admin
Outbound Bindings und ihr Zustellungsprotokoll unter Settings → Webhooks sehen webhooks:manage (ebenfalls owner/admin)

Connections

Öffnen Sie Settings → Connections. Jede Zeile zeigt den Typ, das Fähigkeits-Badge (context / outbound), ob die Connection aktiv ist und ob Zugangsdaten hinterlegt sind.

Settings → Connections mit drei Connections unterschiedlicher Typen

Add Connection öffnet ein Formular, dessen Felder aus dem Typkatalog stammen — zuerst den Typ wählen, dann passt sich das Formular an: My-Domain-URL plus Consumer Key / Secret für Salesforce, Basis-URL plus Service-Token und Workspace-ID für BuiltAPI, DSN plus Passwort für PostgreSQL.

Dialog Add Connection mit ausgewähltem Typ Salesforce

Zugangsdaten sind write-only

Was Sie als Geheimnis eingeben, wird verschlüsselt gespeichert und von keiner Leseoperation zurückgegeben — die API liefert nur has_credentials: true. Zum Rotieren geben Sie unter Edit ein neues Geheimnis ein; zum Löschen nutzen Sie clear_credentials. Geheimnisse erscheinen nie in Logs, Zustellungsdatensätzen oder Fehlermeldungen.

Test führt den günstigsten authentifizierten Aufruf aus, den die Plattform erlaubt, ohne auf der Gegenseite etwas zu ändern: eine Token-Anfrage bei Salesforce, eine Einzeilen-Listenabfrage bei BuiltAPI, SELECT 1 in einer Read-only-Transaktion bei PostgreSQL. Das Ergebnis ist eines von:

error_kind Bedeutung
(ok) System erreicht und authentifiziert.
connection_error Nicht erreichbar, Timeout oder 5xx-Antwort.
auth_error Die Zugangsdaten wurden abgelehnt.
query_error Die Connection-Konfiguration ist unvollständig (z. B. fehlende BuiltAPI-workspace_id).

Sie können auch eine noch nicht gespeicherte Nutzlast testen — derselbe Button Test connection im Anlage-Dialog oder POST /api/integration-connections/test mit type, base_url, config und credentials.

Netzwerkregeln

HTTP-basierte Connections müssen https:// verwenden und auf einen öffentlichen Host zeigen: Die URL wird beim Speichern aufgelöst und abgelehnt, wenn sie in einen privaten, Loopback- oder Link-local-Bereich fällt oder user:password@ enthält. Ein PostgreSQL-DSN trägt Benutzer, Host, Port, Datenbank und sslmode; das Passwort gehört in das Zugangsdaten-Feld, nie in den DSN.

Deaktivieren und Löschen

  • Inaktive Connections behalten ihre Zugangsdaten, aber jeder Kontext-Fetch und jede Outbound-Zustellung, die auf sie verweist, schlägt sofort fehl (connection_inactive). So pausieren Sie eine Integration, ohne die Konfiguration zu verlieren.
  • Delete wird verweigert, solange Context Sources oder Outbound Bindings eines Projekts die Connection noch referenzieren — entfernen Sie zuerst diese Verweise.

Nicht Teil des Organisations-Exports

Export/Import der Organisation umfasst die Konfigurationsschicht (Entities, Projekte, Contracts, Kataloge, Provider), aber nicht Integration Connections, Context Sources oder Outbound Bindings — Geheimnisse dürfen nie in einem Paket reisen. Legen Sie sie nach einem Import von Hand oder per API neu an.

Wo die Projektseite lebt

Context Sources und Outbound Bindings werden pro Projekt auf dessen Context-Seite konfiguriert. Context Sources sind auf den Plattformseiten beschrieben (BuiltAPI, PostgreSQL), Outbound Bindings auf der Seite Salesforce. Beide nutzen dieselbe {{ … }}-Platzhaltersprache — siehe Platzhalter & Zustellungsreferenz.

API- und MCP-Oberfläche

Zweck REST (/api) MCP-Tool
Typkatalog GET /integration-connections/types list_connection_types
Connections CRUD POST/GET/PATCH/DELETE /integration-connections[/{id}] create_/list_/update_/delete_integration_connection
Connection testen POST /integration-connections/test test_integration_connection
Context Source probelaufen POST /integration-connections/test-source test_context_source
Context Sources eines Projekts GET/PUT /projects/{id}/context-sources get_/set_project_context_sources
Kontext-Fetch erneut ausführen POST /sessions/{id}/context/fetch fetch_session_context
Outbound Bindings eines Projekts GET/PUT /projects/{id}/outbound-bindings get_/set_project_outbound_bindings
Alle Bindings der Organisation (read-only) GET /outbound-bindings —
Zustellungshistorie und Replay GET /webhook-deliveries?connection_id=…, POST /webhook-deliveries/{id}/replay list_webhook_deliveries, replay_webhook_delivery

Die vollständigen Request- und Response-Formen stehen in der OpenAPI-Referenz und im MCP-Tool-Katalog.