Zum Hauptinhalt springen
Nutzt du unsere API über ein Dedicated Deployment? Ersetze einfach api.langdock.com mit der Basis-URL deines Deployments: <deployment-url>/api/public
Erstellt eine neue Action für eine Integration. Actions sind Fähigkeiten, die Agenten ausführen können, wie zum Beispiel Nachrichten senden, Daten abrufen oder Datensätze in externen Systemen erstellen.

Erforderliche Scopes

Dieser Endpoint erfordert den INTEGRATION_API Scope.

Pfad-Parameter

ParameterTypErforderlichBeschreibung
integrationIdstringJaUUID der Integration

Request Body

ParameterTypErforderlichBeschreibung
namestringJaAction-Name (max. 100 Zeichen)
descriptionstringNeinAction-Beschreibung (max. 1.000 Zeichen)
codestringNeinAuszuführender JavaScript-Code (max. 40.000 Zeichen)
inputFieldsarrayNeinEingabefelder für die Action

Eingabefeld-Schema

Jedes Eingabefeld hat die folgenden Eigenschaften:
EigenschaftTypErforderlichBeschreibung
labelstringJaFeld-Label (max. 100 Zeichen)
typestringNeinFeldtyp (Standard: “TEXT”)
descriptionstringNeinFeld-Beschreibung (max. 500 Zeichen)
placeholderstringNeinPlatzhaltertext (max. 200 Zeichen)
requiredbooleanNeinOb das Feld erforderlich ist (Standard: false)
optionsarrayNeinOptionen für SELECT-Felder
allowMultiSelectbooleanNeinMehrfachauswahl für SELECT-Felder erlauben
contextActionIdstringNeinUUID der Action für dynamische Optionen

Feldtypen

TypBeschreibung
TEXTEinzeilige Texteingabe
MULTI_LINE_TEXTMehrzeilige Texteingabe
NUMBERNumerische Eingabe
BOOLEANWahr/Falsch-Umschalter
SELECTDropdown-Auswahl
PASSWORDPasswort-Eingabe (maskiert)
VECTORVektor-Eingabe
OBJECTObjekt-Eingabe
FILEDatei-Eingabe
IDBezeichner-Eingabe

Beispiel

const axios = require("axios");

async function createAction(integrationId) {
  const response = await axios.post(
    `https://api.langdock.com/integrations/v1/${integrationId}/actions/create`,
    {
      name: "Get User Data",
      description: "Retrieves user information from the internal API by user ID",
      code: `
        const response = await fetch('https://api.example.com/users/' + inputs.userId, {
          headers: {
            'Authorization': 'Bearer ' + secrets.API_TOKEN
          }
        });

        if (!response.ok) {
          throw new Error('User not found');
        }

        return await response.json();
      `,
      inputFields: [
        {
          label: "User ID",
          type: "TEXT",
          description: "The unique identifier of the user",
          placeholder: "e.g., user_123",
          required: true
        },
        {
          label: "Include Details",
          type: "BOOLEAN",
          description: "Include extended user details",
          required: false
        }
      ]
    },
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      }
    }
  );

  console.log("Created action:", response.data.action);
}

createAction("550e8400-e29b-41d4-a716-446655440000");

Antwortformat

Erfolgreiche Antwort (201 Created)

{
  action: {
    id: string;           // UUID der erstellten Action
    name: string;         // Action-Name
    slug: string;         // URL-freundliche Kennung (automatisch generiert)
    description: string;  // Action-Beschreibung
    code: string | null;  // JavaScript-Code
    order: number;        // Anzeigereihenfolge
    inputFields: Array<{
      slug: string;       // Feld-Kennung
      label: string;      // Anzeige-Label
      type: string;       // Feldtyp
      description: string;
      placeholder: string | null;
      required: boolean;
      order: number;
      options: Array<{label: string, value: string}> | null;
      allowMultiSelect: boolean | null;
      contextActionId: string | null;
    }>;
  };
}

Fehlerbehandlung

Status CodeBeschreibung
400Ungültiger Request Body oder ungültige Integration-ID
401Ungültiger oder fehlender API-Schlüssel
403Kein Zugriff auf diese Integration
404Integration nicht gefunden
409Eine Action mit diesem Namen existiert bereits in der Integration
429Rate Limit überschritten
500Interner Serverfehler

Code-Ausführungsumgebung

Action-Code läuft in einer isolierten JavaScript-Umgebung mit Zugriff auf:
  • inputs - Objekt mit den Werten der Eingabefelder
  • secrets - Objekt mit konfigurierten Secrets für die Integration
  • fetch - Standard fetch API für HTTP-Anfragen
  • Standard JavaScript-Built-ins
Action-Code sollte Fehler sauber behandeln. Unbehandelte Fehler führen dazu, dass die Action fehlschlägt und eine Fehlermeldung an den Agenten zurückgegeben wird.
Langdock blockiert bewusst Browser-basierte Anfragen, um deinen API-Schlüssel zu schützen und die Sicherheit deiner Anwendungen zu gewährleisten. Weitere Informationen findest du in unserem Guide zu Best Practices für API-Schlüssel.