Integration

Webhooks

Verwandle jedes Fremdsystem — Kontaktformular, CRM, Zapier, n8n — in einen Auslöser, der einen Agenten startet. Zwei Schritte: Trigger anlegen, Webhook feuern.

Die drei Modi

workflow

Beliebiger POST-Request startet den zugewiesenen Agenten-Workflow. Der einfachste Modus — ideal für Formulare, Zapier oder n8n.

decision_review

Dein System postet eine bereits fertige Entscheidung. Yolo zeigt sie in der Inbox zur menschlichen Freigabe an.

tool_call

Dein System schickt Roh-Input. Yolo verarbeitet ihn und antwortet mit einem strukturierten Tool-Call an deine callback_url.

1 · Trigger anlegen

In der App unter Verbindungen → Webhook & API legst du einen Trigger an, verknüpfst ihn mit einem aktiven Agenten und definierst die erwarteten Felder (z. B. subject, message, sender). Du erhältst ein Token — es ist nur einmal sichtbar.

2 · Webhook feuern

POST mit dem Header X-Trigger-Token. Die Antwort ist 202 plus eine task_id. Fehlende Pflichtfelder ergeben 422.

curl

bash
curl -X POST https://api.getyourloop.de/api/v1/webhook/<TRIGGER_ID> \
  -H "X-Trigger-Token: <TRIGGER_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Angebotsanfrage",
    "message": "Bitte um ein Angebot für 10 Stück.",
    "sender": "kunde@example.de"
  }'
# → 202 { "task_id": "…", "status": "accepted" }

Python

python
import requests

TRIGGER_ID = "<TRIGGER_ID>"
TOKEN = "<TRIGGER_TOKEN>"

resp = requests.post(
    f"https://api.getyourloop.de/api/v1/webhook/{TRIGGER_ID}",
    headers={"X-Trigger-Token": TOKEN},
    json={
        "subject": "Angebotsanfrage",
        "message": "Bitte um ein Angebot für 10 Stück.",
        "sender": "kunde@example.de",
    },
    timeout=15,
)
resp.raise_for_status()
task_id = resp.json()["task_id"]      # 202 accepted
print("accepted:", task_id)

JavaScript

javascript
const TRIGGER_ID = "<TRIGGER_ID>";
const TOKEN = "<TRIGGER_TOKEN>";

const res = await fetch(
  `https://api.getyourloop.de/api/v1/webhook/${TRIGGER_ID}`,
  {
    method: "POST",
    headers: {
      "X-Trigger-Token": TOKEN,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      subject: "Angebotsanfrage",
      message: "Bitte um ein Angebot für 10 Stück.",
      sender: "kunde@example.de",
    }),
  },
);
const { task_id } = await res.json(); // 202 accepted
console.log("accepted:", task_id);

3 · Verarbeitung verfolgen

Frag den Task-Status ab. Er wechselt von PENDING zu SUCCESS und liefert die decision_id, die dann in der Inbox erscheint.

bash
curl https://api.getyourloop.de/api/v1/inbound/task/<TASK_ID> \
  -H "Authorization: Bearer <DEIN_JWT>"
# state: PENDING → SUCCESS, dann steht die decision_id bereit → Inbox

Jeder Trigger stellt unter GET /api/v1/triggers/{id}/openapi eine eigene OpenAPI-Spec bereit — praktisch, um No-Code-Tools automatisch zu konfigurieren.