Trigger: Projekt‑Status ändert sich
Dieser Trigger löst aus, wenn sich der Status eines Projekts ändert (z. B. von „offen“ zu „in Bearbeitung“). Er ist produktiv verfügbar und steht in n8n als eigener Trigger‑Knoten zur Verfügung (als auch als reiner HTTP‑Webhook).
Funktionsüberblick
- Reagiert auf Statusänderungen eines Projekts in Boards und Subboards.
- Optional filterbar nach Board, Subboard oder Status‑Spalte.
- Sendet ein Event mit Alt‑/Neu‑Status an Ihre Webhook‑URL.
Konfiguration
- In n8n FlowOffice‑Credentials auswählen (HTTP‑Header Authorization: Bearer<API‑Key>).
- Board und optional Subboard wählen.
- Status‑Spalte wählen (falls mehrere vorhanden sind).
- Optional Filter setzen: Nur von‑ oder zu‑bestimmten Label‑Keys (Mehrfachauswahl) auslösen.

Trigger‑Knoten „Projekt‑Status ändert sich“ – Einstellungen in n8n
Event‑Payload
Typescript
type ProjektStatusChangedEvent = {
type: "project.status.changed"
deliveryId: string
projektId: number
boardId: number
subBoardId: number
status: {
columnKey: string
columnLabel: string
from: { labelKey: string; labelName: string }
to: { labelKey: string; labelName: string }
occurredAt: string // ISO‑Datum
}
cells: Record<string, unknown>
}Webhook‑Aufruf
Wir senden einen HTTP POST an Ihre URL. Der Body enthält das oben gezeigte Event. Zur Signaturprüfung senden wir Header mit.
http
POST /your-webhook
Content-Type: application/json
X-FlowOffice-Event: project.status.changed
X-FlowOffice-Subscription-Id: <subscriptionId>
X-FlowOffice-Signature: sha256=<hex>
Zustellung & Retry‑Verhalten
- Bei fehlgeschlagenen Zustellungen (kein 2xx) werden bis zu 7 Wiederholungen durchgeführt.
- Zwischen den Versuchen verwenden wir Exponential Backoff mit Basis 60 Sekunden (z. B. 1 min, 2 min, 4 min, …).
- Jeder Zustellversuch hat ein Timeout von 10 Sekunden.
- Bei HTTP 404 oder 410 wird nicht erneut versucht (Abonnements gelten als dauerhaft ungültig/entfernt).
- Bei Erfolg (2xx) werden keine weiteren Versuche unternommen.
Backoff‑Zeitplan
Backoff (retryLimit: 7, retryDelay: 60, retryBackoff: true)
Jeder Retry wartet zufällig zwischen [min, max] (gleichverteilte Jitter):
Retry 1: 60–120s (1–2 min)
Retry 2: 120–240s (2–4 min)
Retry 3: 240–480s (4–8 min)
Retry 4: 480–960s (8–16 min)
Retry 5: 960–1920s (16–32 min)
Retry 6: 1920–3840s (32–64 min)
Retry 7: 3840–7680s (64–128 min)
Kumuliert bis zum letzten Versuch:
Min gesamt ≈ 7.620s ≈ 127 min ≈ 2h 7m
Max gesamt ≈ 15.240s ≈ 254 min ≈ 4h 14mSubscription verwalten (API)
Zum Anlegen/Aktualisieren verwenden Sie den folgenden Endpoint. Die Subscription‑ID identifiziert den Eintrag.
http
[PUT|GET|DELETE]
https://app.flow-office.eu/n8n/api/v1/webhooks/subscriptions/projekt-status-changed/{subscriptionId}
Authorization: Bearer <API-Key>
[For PUT Method]
Content-Type: application/json
Body: {
"url": "https://example.com/hooks/flowoffice",
"boardId": 123,
"statusColumnKey": "status",
"subBoardId": null,
"fromStatusLabelKeys": ["todo", "in_progress"],
"toStatusLabelKeys": ["done"],
"name": "Mein Status‑Trigger",
"signingSecret": "<mind. 24 Zeichen>",
"configHash": "<mind. 16 Zeichen>"
}Request‑Body (Typ)
Typescript
type PutSubscriptionInput = {
url: string
boardId: number
statusColumnKey: string
subBoardId?: number | null
fromStatusLabelKeys?: string[]
toStatusLabelKeys?: string[]
name?: string
signingSecret: string
configHash: string
}Antworten (Typen)
Typescript
type PutSubscriptionOutput = {
id: string
active: boolean
configHash: string
createdAt: string // ISO‑Datum
updatedAt: string // ISO‑Datum
}
type GetSubscriptionOutput = {
id: string
active: boolean // a inactive subscription can be renewed with a PUT request
configHash: string
}
type DeleteSubscriptionOutput = null