Abandoned Order Recovery
Detect WooCommerce orders stuck in pending, on-hold, or failed and trigger a Bouncer follow-up
The Abandoned Orders screen (in the Bouncer WhatsApp sidebar) detects orders stuck in pending, on-hold, or failed past a threshold and sends an order.abandoned.* webhook to Bouncer so a workflow can follow up.
Activity
The Activity tab shows a live pipeline of orders currently in tracked statuses.
Configure detection
Open the Settings sub-tab to configure detection:
- Tick Enable tracking to run checks on a schedule.
- Choose a Check frequency (every 5, 10, or 15 minutes).
- Under Tracked Statuses, enable each status to watch and set its threshold in minutes. Each maps to a Bouncer event:
- Pending payment →
order.abandoned.pending_payment(default5) - On hold →
order.abandoned.on_hold(default1440) - Failed →
order.abandoned.failed(default60) - Set a threshold to
0to disable that status individually.
- Pending payment →
- Leave Skip subscription renewals ticked to ignore renewal orders.
- Click Save settings.
Use Check Now to run a sweep immediately, or Send Test Webhook to verify Bouncer receives the payload.
Follow up with a workflow
Once the webhook reaches Bouncer, build a workflow triggered by the matching order.abandoned.* event to send a recovery message. See the step-by-step Abandoned Order Recovery workflow guide. To start the conversation over Meta Cloud API, you'll need an approved template — see Order Notifications for the template pattern and variable mapping.
For how these events flow into Bouncer workflows, deduplication, and signature
verification, see the engineering reference in the repo at
docs/integrations/woocommerce-abandoned-orders.md.
Troubleshooting
| Symptom | Fix |
|---|---|
| Abandoned webhook not sent | Tracking disabled, threshold not reached, or the status is unchecked in Abandoned Orders → Settings. |
| Webhook sent but no follow-up | No workflow is listening for the order.abandoned.* event in Bouncer. |
| Renewals firing unexpectedly | Keep Skip subscription renewals enabled. |