RessourcenTurboFlow

TurboFlow

Erstellen, veröffentlichen, auslösen und testen Sie visuelle Workflows über die Talkturo-API — verwalten Sie Flow-Integrationen, Secrets und KI-gestütztes Flow-Building mit Sync- und Async-Ausführungsmodi.

{
  "flows": [
    {
      "id": "flow_72c9f2ab",
      "name": "Inbound booking qualification",
      "status": "draft"
    },
    {
      "id": "flow_a11c38de",
      "name": "Lead routing",
      "status": "published"
    }
  ]
}
{
  "name": "Inbound booking qualification"
}
{
  "id": "flow_72c9f2ab",
  "name": "Inbound booking qualification",
  "status": "draft"
}
BODY='{"params":{"caller_name":"Jane Chen","booking_id":"bk_9d31a8f4","priority":"high"},"context":{"assistant_id":"asst_4f0c8b21"}}'
SECRET='tfsec_example_1k9n3d7s4h2m8q'
SIGNATURE=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$SECRET" -hex | sed 's/^.* //')

curl -i -X POST "https://app.talkturo.com/api/flow/flow_72c9f2ab/trigger" \
  -H "Content-Type: application/json" \
  -H "X-Talkturo-Secret: $SIGNATURE" \
  -d "$BODY"
{
  "ok": true,
  "run_id": "3cc7b81c-4f11-4f20-a7d3-6181a93f4b65"
}
BODY='{"params":{"caller_name":"Jane Chen","booking_id":"bk_9d31a8f4","priority":"high"},"context":{"assistant_id":"asst_4f0c8b21"}}'
SECRET='tfsec_example_1k9n3d7s4h2m8q'
SIGNATURE=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$SECRET" -hex | sed 's/^.* //')

curl -i -X POST "https://app.talkturo.com/api/flow/flow_72c9f2ab/trigger?sync=true" \
  -H "Content-Type: application/json" \
  -H "X-Talkturo-Secret: $SIGNATURE" \
  -d "$BODY"
{
  "ok": true,
  "run_id": "3cc7b81c-4f11-4f20-a7d3-6181a93f4b65",
  "output": {
    "qualification": "accepted",
    "scheduled_callback": true,
    "assigned_queue": "priority-bookings"
  }
}

TurboFlow-Endpunkte

Mit TurboFlow erstellen Sie visuelle Workflows, veröffentlichen unveränderliche Versionen und lösen veröffentlichte Flows aus Ihrer App oder Ihrem Sprachassistenten aus. Die meisten Endpunkte verwenden Sitzungs-Cookie-Authentifizierung aus der Talkturo-App, während der Trigger-Endpunkt HMAC-Authentifizierung nutzt, damit externe Systeme einen veröffentlichten Flow sicher aufrufen können.

POST /api/flow/{flowId}/trigger verwendet keine Sitzungsauthentifizierung. Signieren Sie den rohen Request-Body mit SHA-256-HMAC unter Verwendung des trigger_secret der veröffentlichten Flow-Version und senden Sie den Digest im Header X-Talkturo-Secret.

Verwenden Sie den Async-Modus für Produktions-Workloads, die länger als wenige Sekunden laufen können. Fügen Sie ?sync=true nur hinzu, wenn Sie die finale Ausgabe inline benötigen und der Flow innerhalb von etwa 30 Sekunden abschließen kann.

Endpunktübersicht

MethodePfadAuthZweck
GET/api/flowSitzungs-CookieFlows auflisten
POST/api/flowSitzungs-CookieFlow erstellen
GET/api/flow/manifestSitzungs-CookieConnector-Manifest abrufen
GET/api/flow/{flowId}Sitzungs-CookieFlow abrufen
PATCH/api/flow/{flowId}Sitzungs-CookieFlow aktualisieren
DELETE/api/flow/{flowId}Sitzungs-CookieFlow archivieren
POST/api/flow/{flowId}/publishSitzungs-CookieNeue Flow-Version veröffentlichen
GET/api/flow/{flowId}/runsSitzungs-CookieFlow-Läufe auflisten
POST/api/flow/{flowId}/test-runSitzungs-CookieFlow im Testmodus ausführen
POST/api/flow/{flowId}/test-run/nodeSitzungs-CookieEinzelnen Node im Testmodus ausführen
GET/api/flow/{flowId}/tool-schemaSitzungs-CookieTool-Schema für einen Flow abrufen
POST/api/flow/{flowId}/triggerHMACVeröffentlichten Flow auslösen
GET/api/flow/{flowId}/webhook-testSitzungs-CookieWebhook-Testdetails abrufen
POST/api/flow/{flowId}/webhook-testSitzungs-CookieWebhook-Test senden
GET/api/flow/integrationsSitzungs-CookieIntegrationen auflisten
POST/api/flow/integrationsSitzungs-CookieIntegration verbinden
DELETE/api/flow/integrationsSitzungs-CookieIntegration trennen
GET/api/flow/integrations/{integrationId}Sitzungs-CookieIntegration abrufen
DELETE/api/flow/integrations/{integrationId}Sitzungs-CookieIntegration löschen
GET/api/flow/integrations/{integrationId}/optionsSitzungs-CookieDynamische Integrationsoptionen abrufen
POST/api/flow/integrations/oauth/authorizeSitzungs-CookieOAuth-Autorisierung starten
GET/api/flow/integrations/oauth/callbackOAuth-State-CookieOAuth-Autorisierung abschließen
POST/api/flow/integrations/webhooks/{provider}HMACProvider-Webhooks empfangen
GET/api/flow/integrations/webhooks/metaMeta-VerifizierungMeta-Webhook verifizieren
POST/api/flow/integrations/webhooks/metaHMACMeta-Lead-Events empfangen
GET/api/flow/secretsSitzungs-CookieSecrets auflisten
POST/api/flow/secretsSitzungs-CookieSecret erstellen
DELETE/api/flow/secretsSitzungs-CookieSecret löschen
GET/api/flow/secrets/{secretId}Sitzungs-CookieSecret abrufen
DELETE/api/flow/secrets/{secretId}Sitzungs-CookieSecret per ID löschen
GET/api/flow/secrets/providersSitzungs-CookieSecret-Provider auflisten
GET/api/flow/toolsSitzungs-CookieTools und Connectoren auflisten
GET/api/flow/ai/robertSitzungs-CookieAI-Builder-Stream öffnen
POST/api/flow/ai/robertSitzungs-CookieAI-Builder-Anfrage senden
POST/api/flow/ai/robert-batchSitzungs-CookieBatch-AI-Builder-Anfrage senden
POST/api/flow/ai/describe-parameterSitzungs-CookieParameterbeschreibung erzeugen
POST/api/flow/ai/describe-toolSitzungs-CookieTool-Beschreibung erzeugen

Authentifizierung

Die meisten TurboFlow-Endpunkte sind für die Flow-Verwaltung innerhalb des Produkts ausgelegt. Rufen Sie sie aus einer bei Talkturo authentifizierten Browser-Sitzung auf oder aus einem Backend, das ein gültiges Sitzungs-Cookie weiterleiten kann.

Sitzungsauthentifizierte Endpunkte

Verwenden Sie Sitzungsauth für:

  • Flow-CRUD
  • Veröffentlichen
  • Testläufe
  • Laufhistorie
  • Integrationen
  • Secrets
  • Manifest und Tools
  • AI-Builder-Endpunkte

Wenn Ihre Anfrage keiner gültigen Talkturo-Sitzung zugeordnet ist, scheitern diese Endpunkte, bevor die Geschäftslogik ausgeführt wird.

HMAC-authentifizierter Trigger-Endpunkt

Verwenden Sie HMAC-Auth für POST /api/flow/{flowId}/trigger. Dieser Endpunkt ist für externe Aufrufer und die Ausführung veröffentlichter Runtimes gedacht.

So erstellen Sie die Signatur:

Exakten Request-Body serialisieren

Erstellen Sie den JSON-Request-Body genau so, wie er über das Netzwerk gesendet wird. Die Signatur muss die rohen Body-Bytes verwenden, nicht ein erneut serialisiertes Objekt.

SHA-256-HMAC-Digest berechnen

Verwenden Sie das trigger_secret der veröffentlichten Flow-Version als HMAC-Schlüssel und den rohen Request-Body als Nachricht.

Digest im Header senden

Fügen Sie den berechneten Digest dem Header X-Talkturo-Secret hinzu und senden Sie die Anfrage an /api/flow/{flowId}/trigger.

import crypto from "crypto";

const flowId = "flow_72c9f2ab";
const triggerSecret = "tfsec_example_1k9n3d7s4h2m8q";
const body = JSON.stringify({
  params: {
    caller_name: "Jane Chen",
    booking_id: "bk_9d31a8f4",
    priority: "high"
  },
  context: {
    assistant_id: "asst_4f0c8b21"
  }
});

const signature = crypto
  .createHmac("sha256", triggerSecret)
  .update(body)
  .digest("hex");

const response = await fetch(
  `https://app.talkturo.com/api/flow/${flowId}/trigger?sync=true`,
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-Talkturo-Secret": signature
    },
    body
  }
);

const data = await response.json();
console.log(response.status, data);

Flows erstellen und verwalten

Mit diesen Endpunkten erstellen Sie Entwurfs-Flows, rufen bestehende Definitionen ab, aktualisieren sie und archivieren sie, wenn sie nicht mehr benötigt werden.

Flows auflisten

GET /api/flow

Gibt die Flows zurück, die im Kontext der aktuellen authentifizierten Sitzung verfügbar sind.

Flow erstellen

POST /api/flow

Erstellt einen neuen Entwurfs-Flow.

Flow abrufen, aktualisieren oder archivieren

GET /api/flow/{flowId} ruft die aktuelle Flow-Definition ab. PATCH /api/flow/{flowId} aktualisiert den Entwurf. DELETE /api/flow/{flowId} archiviert den Flow.

Pfadparameter

path
flowIdstring
Required

Eindeutige Kennung des Flows.

Aktualisierungsverhalten

Verwenden Sie PATCH /api/flow/{flowId}, um Metadaten oder Struktur des Entwurfs zu ändern. Das Veröffentlichen erzeugt eine ausführbare Version; das Aktualisieren des Entwurfs wirkt sich nicht auf bereits veröffentlichte Versionen aus, bis Sie erneut veröffentlichen.

Archivierungsverhalten

Verwenden Sie DELETE /api/flow/{flowId}, um einen Flow zu archivieren. Behandeln Sie dies als Verwaltungsoperation, nicht als Runtime-Stoppmechanismus für bereits abgeschlossene Läufe.

Flow veröffentlichen

POST /api/flow/{flowId}/publish

Das Veröffentlichen erzeugt eine neue ausführbare Version des Flows. Trigger-Anfragen werden gegen eine veröffentlichte Version ausgeführt, nicht gegen einen unveröffentlichten Entwurf.

Pfadparameter

path
flowIdstring
Required

Kennung des zu veröffentlichenden Flows.

Was das Veröffentlichen ändert

  • Erzeugt einen versionierten Runtime-Snapshot
  • Macht den Flow über den Trigger-Endpunkt auslösbar
  • Ordnet die Runtime-Ausführung der veröffentlichten Version zu
  • Ermöglicht HMAC-basierte externe Aufrufe über das trigger_secret der Version

Wenn Sie einen Flow nach dem Veröffentlichen aktualisieren, veröffentlichen Sie erneut, bevor Sie erwarten, dass Trigger-Aufrufe die neue Logik verwenden.

Veröffentlichten Flow auslösen

POST /api/flow/{flowId}/trigger

Dies ist der Runtime-Einstiegspunkt für TurboFlow. Er führt einen veröffentlichten Flow mit vom Aufrufer gelieferten Parametern und optionalem Ausführungskontext aus.

Query-Parameter

query
syncboolean

Setzen Sie den Wert auf true, um inline auf das Flow-Ergebnis zu warten. Wenn weggelassen, gibt der Endpunkt sofort eine run_id zurück und verarbeitet den Flow asynchron.

header
X-Talkturo-Secretstring
Required

SHA-256-HMAC-Digest des rohen Request-Bodys unter Verwendung des trigger_secret der veröffentlichten Flow-Version.

header
Content-Typestring
Required

Auf application/json setzen.

Request-Body

body
paramsobject
Required

Key-Value-Eingabe, die zur Laufzeit in den Flow übergeben wird. Die akzeptierten Schlüssel hängen vom Flow-Design und von einem dem Flow zugeordneten Trigger- oder Tool-Schema ab.

body
contextobject

Optionales Runtime-Kontextobjekt.

assistant_idstring

Optionale Assistentenkennung innerhalb von context. Verwenden Sie sie, wenn der Flow-Lauf einem bestimmten Assistentenkontext zugeordnet werden soll.

Async-Trigger-Beispiel

Der Async-Modus gibt sofort eine Laufkennung zurück. Verwenden Sie ihn, wenn der Aufrufer Ergebnisse später abfragen oder beobachten kann.

Async-Antwortfelder

okboolean
Required

Gibt true zurück, wenn die Trigger-Anfrage zur Ausführung angenommen wird.

run_idstring
Required

Eindeutige Kennung für den erstellten Flow-Lauf.

Sync-Trigger-Beispiel

Der Sync-Modus wartet bis zu etwa 30 Sekunden auf den Abschluss des Flows und gibt die finale Ausgabe inline zurück.

Sync-Antwortfelder

okboolean
Required

Gibt an, ob der Flow im Sync-Modus erfolgreich abgeschlossen wurde.

run_idstring
Required

Eindeutige Kennung für den Flow-Lauf.

outputobject

Finale Flow-Ausgabe, wenn der Lauf innerhalb des Sync-Wartefensters erfolgreich abgeschlossen wird.

errorstring

Übergeordneter Ausführungsfehler, wenn die Sync-Ausführung fehlschlägt.

failed_nodestring

Kennung des Nodes, der während der Ausführung fehlgeschlagen ist.

partial_outputobject

Jede Ausgabe, die vor dem Fehler erzeugt wurde.

Sync oder Async wählen

Der Async-Modus ist die sicherere Standardeinstellung für Produktionsaufrufer. Die API gibt 202 mit einer run_id zurück und bindet das Timeout-Budget Ihres Aufrufers nicht an die Flow-Laufzeit.

Verwenden Sie den Async-Modus, wenn:

  • Der Flow externe Systeme aufrufen kann
  • Der Aufrufer ohne das finale Ergebnis fortfahren kann
  • Sie Retries, Batching oder queuebasierte Orchestrierung erwarten

Flow vor dem Veröffentlichen testen

TurboFlow bietet Test-Endpunkte, um Entwurfsverhalten zu validieren, ohne den veröffentlichten Trigger-Pfad zu verwenden.

Gesamten Flow im Testmodus ausführen

POST /api/flow/{flowId}/test-run

Führt den Flow im Testmodus aus. Verwenden Sie dies beim Erstellen eines Entwurfs oder beim Validieren von Änderungen vor dem Veröffentlichen.

Pfadparameter

path
flowIdstring
Required

Kennung des zu testenden Flows.

Einzelnen Node im Testmodus ausführen

POST /api/flow/{flowId}/test-run/node

Führt einen Node isoliert aus. Nutzen Sie ihn, um Tool-Konfiguration, Eingabe-Mapping oder Branch-Logik zu debuggen, ohne den gesamten Graphen auszuführen.

Pfadparameter

path
flowIdstring
Required

Kennung des Flows, der den Node enthält.

Verwenden Sie Test-Run-Endpunkte während der Flow-Entwicklung. Verwenden Sie den Trigger-Endpunkt erst nach dem Veröffentlichen, wenn Sie Runtime-Verhalten wünschen, das externe Produktionsaufrufer widerspiegelt.

Laufhistorie prüfen

GET /api/flow/{flowId}/runs

Gibt historische Ausführungen für einen Flow zurück. Nutzen Sie die Laufhistorie, um Produktionstrigger zu prüfen, Fehler zu untersuchen und externe Ereignisse mit TurboFlow-Ausführungen zu korrelieren.

Pfadparameter

path
flowIdstring
Required

Kennung des Flows, dessen Läufe Sie prüfen möchten.

Wofür die Laufhistorie dient

  • Prüfen, ob Async-Trigger-Anfragen angenommen und ausgeführt wurden
  • Fehlgeschlagene Läufe nach Sync- oder Async-Ausführung untersuchen
  • Runtime-Verhalten einer veröffentlichten Flow-Version prüfen
  • Eine run_id aus der Trigger-Antwort mit gespeicherten Ausführungsdatensätzen korrelieren

Manifest und Tools

Diese Endpunkte helfen Ihnen zu erkennen, womit TurboFlow verbunden werden kann und wie ein bestimmter Flow Tool-Verhalten exponiert.

Connector-Manifest abrufen

GET /api/flow/manifest

Gibt das Connector-Manifest zurück, das der Workflow-Builder verwendet. Nutzen Sie es, um verfügbare Integrationsfähigkeiten und von der Plattform exponierte Tool-Definitionen zu prüfen.

Verfügbare Tools auflisten

GET /api/flow/tools

Gibt die Connectoren und Tools zurück, die dem aktuellen Konto und der Umgebung zur Verfügung stehen.

Flow-Tool-Schema abrufen

GET /api/flow/{flowId}/tool-schema

Gibt Tool-Schema-Informationen für einen bestimmten Flow zurück.

path
flowIdstring
Required

Kennung des Flows, dessen Tool-Schema Sie abrufen möchten.

Integrationen verwalten

TurboFlow-Integrationen ermöglichen Flows die Verbindung zu externen Providern und das Abrufen providerspezifischer Konfigurationsoptionen.

Integrations-Endpunkte

  • GET /api/flow/integrations
  • POST /api/flow/integrations
  • DELETE /api/flow/integrations
  • GET /api/flow/integrations/{integrationId}
  • DELETE /api/flow/integrations/{integrationId}
  • GET /api/flow/integrations/{integrationId}/options

OAuth-Flow

Verwenden Sie die OAuth-Endpunkte, wenn eine Integration delegierten Zugriff erfordert.

Autorisierung starten

Senden Sie POST /api/flow/integrations/oauth/authorize mit dem Provider, einem Label und dem Account-Slug.

body
providerstring
Required

Kennung des Integrationsproviders.

body
labelstring
Required

Menschenlesbares Label für die Verbindung.

body
account_slugstring
Required

Account-Slug, dem die Integration gehört.

Provider-Consent-Flow abschließen

Der Autorisierungsendpunkt erzeugt einen zufälligen OAuth-State, speichert einen SHA-256-Hash dieses States mit dem Anfragekontext in httpOnly-Cookies und leitet zur Consent-Seite des Providers weiter.

Callback verarbeiten

Der Provider kehrt zu GET /api/flow/integrations/oauth/callback zurück, wo Talkturo das State-Cookie validiert und den Autorisierungscode gegen Token eintauscht.

Provider-Webhooks

TurboFlow stellt außerdem eingehende Webhook-Handler für unterstützte Provider bereit.

  • POST /api/flow/integrations/webhooks/{provider} empfängt Provider-Webhook-Zustellungen für unterstützte Integrationen wie Cal.com, Calendly und Slack.
  • GET /api/flow/integrations/webhooks/meta verarbeitet die Verifizierung für die Meta-Webhook-Einrichtung.
  • POST /api/flow/integrations/webhooks/meta empfängt Meta-Lead-Ads-Webhook-Events.

Secrets verwalten

Secrets speichern verschlüsselte Anmeldedaten und Provider-Konfigurationen, die von Flows und Integrationen verwendet werden.

Secret-Endpunkte

  • GET /api/flow/secrets
  • POST /api/flow/secrets
  • DELETE /api/flow/secrets
  • GET /api/flow/secrets/{secretId}
  • DELETE /api/flow/secrets/{secretId}
  • GET /api/flow/secrets/providers

Pfadparameter

path
secretIdstring
Required

Kennung des Secrets für Detail- oder Löschoperationen.

Secret-Provider

GET /api/flow/secrets/providers listet die verfügbaren Secret-Provider auf, die TurboFlow für verschlüsselte Secret-Speicherung und Verbindungsverwaltung nutzen kann.

AI-Builder-Endpunkte verwenden

Die AI-Builder-Endpunkte helfen dabei, Flow-Definitionen aus Anweisungen in natürlicher Sprache zu erzeugen oder zu verfeinern.

Streaming-Builder-Endpunkt

GET /api/flow/ai/robert und POST /api/flow/ai/robert

Verwenden Sie diese Endpunkte für KI-gestütztes Flow-Building mit Streaming-Verhalten. Die Route unterstützt sowohl GET als auch POST.

Verwandte AI-Endpunkte

  • POST /api/flow/ai/robert-batch für Batch-AI-Flow-Building
  • POST /api/flow/ai/describe-parameter zum Erzeugen einer Flow-Parameterbeschreibung
  • POST /api/flow/ai/describe-tool zum Erzeugen einer Tool-Beschreibung

Typischer Workflow

Diese Sequenz zeigt, wie der Hauptlebenszyklus von der Entwurfserstellung bis zur externen Ausführung zusammenhängt.

Verwandte Endpunkte