Outbox dispatcher (background thread, FOR UPDATE SKIP LOCKED claim, exponential backoff, no transaction held during HTTP I/O). n8n callback endpoint with shared-secret auth and idempotency by event ID. Automation nav + UI with manual retry. 49 backend tests passing, ruff clean. Fixed a crash-on-redelivery bug in seeded outbox payloads and made the dispatcher defensive against malformed payloads. Verified the full live round trip against a real n8n instance: return -> outbox -> dispatcher -> n8n workflow -> callback -> succeeded, including the S5 failed-retry demo scenario.
n8n workflows
mobilityops-return-processing.json is a starter import for the required live workflow.
Before final validation Claude must:
- import or provision the workflow;
- configure a service credential for the MobilityOps callback;
- activate the webhook;
- ensure event ID is used as the idempotency key;
- validate online success and offline retry behaviour.
The callback URL in the starter file is intentionally environment-driven and may require an n8n expression or credential adjustment.