uber.onDeliveryEvent takes no filters. It starts for every delivery status change and every change in courier proximity, so one delivery starts it several times.
automations/sync-uber-delivery-status.automation.ts
id, deliveryId, customerId, status, liveMode, created, and the full delivery with its courier, waypoints, ETAs, and fee. Use a milestone trigger such as Delivery delivered when your automation handles one step. The delivery lifecycle maps each status to its milestone.
Check liveMode if one connection’s webhook receives both test and production deliveries. Requires an Uber Direct connection with a webhook signing key and a dashboard webhook that sends event.delivery_status. See Connect Uber Direct.