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
workflowBeliebiger POST-Request startet den zugewiesenen Agenten-Workflow. Der einfachste Modus — ideal für Formulare, Zapier oder n8n.
decision_reviewDein System postet eine bereits fertige Entscheidung. Yolo zeigt sie in der Inbox zur menschlichen Freigabe an.
tool_callDein 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
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
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
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.
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 → InboxJeder Trigger stellt unter GET /api/v1/triggers/{id}/openapi eine eigene OpenAPI-Spec bereit — praktisch, um No-Code-Tools automatisch zu konfigurieren.