Reservation Queue Pipeline
Config + monitoring. Execution: OTA email → reservation-agent → queue → staff confirm.
Pipeline Flow (read-only)
OTA emailinbound (Email Routing)
→agentic-inboxsender-allowlist relay
→reservation-agentclassify + parse (+30m sweep)
→queue_itemstype + reservation status
→ERPstaff confirm → booking
Trigger & Schedule
Primary
Email Routing → relay (push)
Gate
OTA sender allowlist
Safety net
*/30 * * * * sweep
Classifier
new / cancel / change / noise
Cancellations are never auto-applied — they flag the queue item and staff confirm the cancel inside the reservation.
Engine List (4 active)
Scrapling (HTTP + StealthyFetcher)
T2 · active
Patchright
T3 · active
BU Cloud stealth-cloud
T4 · active
Browser Harness (agentic)
T5 · active
Camoufox (standalone)
T2 · legacy
Obscura (headless V8)
— · legacy
CF Browser Rendering
— · legacy
Cheerio (HTTP parse)
— · legacy
OTA Agent Registry
Source map for sender badges, accounts, sessions, portal list/detail/classifier capability, and Queue Updates completeness.
10 OTA sources
2/10 accounts active
CSV/path separate from data completeness
| OTA / agent | CSV/path | Data path | Provider/account | Session | Portal rows | Portal capability | Queue completeness | Recipe | Actions |
|---|---|---|---|---|---|---|---|---|---|
EASYRENT Cartrawler Cartrawler (manual) reservationsdept@cartrawler.com noreply@cartrawler.com cartrawlersupport@cartrawler.com | Green | email complete | cartrawler-supplier/easyrent | expired (2232) | 0 | List: blocked Detail: blocked Events: missing No exact-account evidence yet | 1 62/82 2 62/82 3 62/82 4 0/82 5 62/82 6 0/82 7 0/82 8 0/82 9 0/82 10 0/82 11 62/82 12 0/82 | Parse body only; email action links must not be auto-clicked. — | |
EASYRENT Ctrip / Trip.com Ctrip (manual) xczc_tzzy@trip.com car-booking@trip.com en_noreply@trip.com +1 | Green | email + portal | trip-cbooking/easyrent | active | 106 | List: verified Detail: configured_unverified Events: missing 2026-08-01T22:12:22.024Z Live exact-detail canary is required before Ctrip detail capture | 1 78/79 2 55/79 3 55/79 4 39/79 5 39/79 6 31/79 7 31/79 8 11/79 9 39/79 10 32/79 11 39/79 12 39/79 | zuchebao orderList -> cbooking orderDetail https://cbooking.trip.com/calabi-abroad-order/orderDetail?orderId={orderId} | |
EASYRENT ECR EconomyCarRentals (manual) reservations@economycarrentals.com joanna@economycarrentals.com | Green | email + portal | economycarrentals-sup/easyrent | error (5232) | 3 | List: configured_unverified Detail: blocked Events: missing Exact-account session and duplicate capture must be revalidated | 1 3/3 2 3/3 3 3/3 4 3/3 5 3/3 6 3/3 7 3/3 8 1/3 9 3/3 10 0/3 11 3/3 12 3/3 | Thin email; Incapsula supplier portal supplies full booking data. — | |
EASYRENT Bookinggroup Bookinggroup (manual) confirmations@bookinggroup.com | Green primary | email complete | economybookings-mp/easyrent | expired (1532) | 20 | List: configured_unverified Detail: blocked Events: missing Exact-account session and duplicate capture must be revalidated | 1 18/23 2 18/23 3 18/23 4 18/23 5 0/23 6 0/23 7 0/23 8 0/23 9 1/23 10 0/23 11 18/23 12 1/23 | Email parser primary; marketplace rows are reconciliation. — | |
EASYRENT Zuzuche / QEEQ Zuzuche (manual) support@qbookingsolutions.com booking@zuzuche.com | Green path ready | email complete | qbooking-solutions/easyrent | expired (6380) | 50 | List: configured_unverified Detail: blocked Events: missing Exact-account session and duplicate capture must be revalidated | 1 0/4 2 0/4 3 0/4 4 0/4 5 0/4 6 0/4 7 0/4 8 0/4 9 0/4 10 0/4 11 0/4 12 0/4 | reservationNo -> order/index search -> order/update oid https://r.qbookingsolutions.com/backend.php/order/index?form=site&search={reservationNo}&status=all | |
AINNO Yesaway Yesaway (manual) admin@email.yesaway.com | Green path ready | email complete | qbooking-solutions/ainno-yesaway | expired | 100 | List: verified Detail: blocked Events: missing 2026-07-29T09:59:47.634Z Direct read-only QBooking detail evidence and field extraction are required | 1 0/0 2 0/0 3 0/0 4 0/0 5 0/0 6 0/0 7 0/0 8 0/0 9 0/0 10 0/0 11 0/0 12 0/0 no Queue Updates rows | reservationNo -> order/index search -> order/update oid https://r.qbookingsolutions.com/backend.php/order/index?form=site&search={reservationNo}&status=all | |
AINNO Ctrip / Trip.com Ctrip (manual) xczc_tzzy@trip.com car-booking@trip.com en_noreply@trip.com +1 | Green path open | email + portal | trip-cbooking/ainno | active | 111 | List: verified Detail: blocked Events: missing 2026-08-01T22:22:41.692Z Live exact-detail canary is required before Ctrip detail capture | 1 0/0 2 0/0 3 0/0 4 0/0 5 0/0 6 0/0 7 0/0 8 0/0 9 0/0 10 0/0 11 0/0 12 0/0 no Queue Updates rows | zuchebao orderList -> cbooking orderDetail https://cbooking.trip.com/calabi-abroad-order/orderDetail?orderId={orderId} | |
AINNO Bookinggroup Bookinggroup (manual) confirmations@bookinggroup.com | TBA | TBA | economybookings-mp/ainno | expired | 0 | List: blocked Detail: blocked Events: missing Exact account session unavailable; re-authentication required | 1 0/0 2 0/0 3 0/0 4 0/0 5 0/0 6 0/0 7 0/0 8 0/0 9 0/0 10 0/0 11 0/0 12 0/0 no Queue Updates rows | TBA until account/source details are confirmed. — | |
Outside CSV Localrent Localrent (manual) mail@localrent.com | Green app-only | app-only | localrent/easyrent | app-only | 0 | List: not_applicable Detail: not_applicable Events: not_applicable App-only source | app-only | Manual/app-only row; no automatic booking creation expected. — | |
Outside CSV Driveo / WAHDAH Driveo / WAHDAH (manual) support@driveo.asia | Green app-only | app-only | driveo-wahdah/easyrent | app-only | 0 | List: not_applicable Detail: not_applicable Events: not_applicable App-only source | app-only | Manual/app-only row; no automatic booking creation expected. — |
Queue Sidebar Data Completeness Reference
Dense map from the Queue Updates drawer/sidebar data to parser fields, booking fields, and completeness badge numbers.
| # | Sidebar data | Parse fields | Maps to | Complete when | Notes |
|---|---|---|---|---|---|
1 | Ref Agent Ref / Confirmation # | confirmationNumber / agentReferenceCode / agentCode | queue match + booking agent ref | Any OTA reference is present | Used to match/update existing reservations |
2 | Dates Trip IN/OUT dates | checkIn + checkOut | reservation start/end dates | Both dates are present | Times use pickupTime/dropoffTime when exposed |
3 | Vehicle Room/Vehicle | vehicleModel / vehicleType / roomType | vehicle/product line | Any product/vehicle label is present | Vehicle model wins when available |
4 | Total + currency Total | totalAmount + currency | booking total + line currency | Amount and currency are present | Portal often supplies this for thin emails |
5 | PP/POA Payment | paymentTerms / paymentModel | bookings.payment_terms | PP or POA signal is present | PP = prepaid/upfront; POA = pay on arrival/cash |
6 | Deposit Deposit | isDepositFree / depositStatus | bookings.is_deposit_free | Deposit status or free flag is present | Free when no-deposit/deposit-free/Zhima/Sesame or insurance/protection exists |
7 | Insurance Insurance | insurance / lineItems[type=insurance] | insurance/addon line | Insurance name or insurance line exists | Also makes deposit-free true when protection substitutes deposit |
8 | Extras/addons Extras / addons | extras / addons | addon names | Extras/addons array exists | Baby chair, booster, additional insurance, delivery extras, etc. |
9 | Line items Line items | lineItems[] | booking_line_items | Typed lineItems has at least one row | Rental/addon/insurance/fee/shop rows; delivery/pickup use fee |
10 | Plate Plate | licensePlate | assigned vehicle plate evidence | Plate is present | Usually portal/detail evidence |
11 | Customer contact Phone / Email | guestEmail / guestPhone | customer contact fields | Email or phone is present | Email parser may omit phone depending on OTA |
12 | Portal evidence All Parsed Fields | portalEvidence | read-only enrichment proof | Portal evidence object is present | Evidence for exact queue row; not generic portal browsing |
Parser & Portal Config
| Parser / source | Expected completeness | Sender rules | Order hosts | URL recipe | Notes | Actions |
|---|---|---|---|---|---|---|
cartrawler EASYRENT · Cartrawler · email complete | 1 2 3 4 5 6 7 8 9 10 11 12 | reservationsdept@cartrawler.com, noreply@cartrawler.com, cartrawlersupport@cartrawler.com | supplierportal.cartrawler.com, cartrawler.com | Parse body only; email action links must not be auto-clicked. — | Parse body only; email action links must not be auto-clicked. | |
ctrip EASYRENT · Ctrip / Trip.com · email + portal | 1 2 3 4 5 6 7 8 9 10 11 12 | xczc_tzzy@trip.com, car-booking@trip.com, en_noreply@trip.com, noreply@trip.com | zuchebao.ctrip.com, cbooking.trip.com, trip.com | zuchebao orderList -> cbooking orderDetail https://cbooking.trip.com/calabi-abroad-order/orderDetail?orderId={orderId} https://zuchebao.ctrip.com/calabi-abroad-order/orderList?orderId=1653715016041245 | Normalize zuchebao orderList links to cbooking orderDetail by orderId. | |
direct EASYRENT · ECR · email + portal | 1 2 3 4 5 6 7 8 9 10 11 12 | reservations@economycarrentals.com, joanna@economycarrentals.com | economycarrentals.com, carflexi.com | Thin email; Incapsula supplier portal supplies full booking data. — | Thin email; Incapsula supplier portal supplies full booking data. | |
bookinggroup EASYRENT · Bookinggroup · email complete | 1 2 3 4 5 6 7 8 9 10 11 12 | confirmations@bookinggroup.com | marketplace.economybookings.com, bookinggroup.com, economybookings.com | Email parser primary; marketplace rows are reconciliation. — | Email parser primary; marketplace rows are reconciliation. | |
qbooking EASYRENT · Zuzuche / QEEQ · email complete | 1 2 3 4 5 6 7 8 9 10 11 12 | support@qbookingsolutions.com, booking@zuzuche.com | r.qbookingsolutions.com, qbookingsolutions.com, zuzuche.com | reservationNo -> order/index search -> order/update oid https://r.qbookingsolutions.com/backend.php/order/index?form=site&search={reservationNo}&status=all http://r.qbookingsolutions.com/backend.php/site/index | Search QBooking Solutions Reservation Number, then capture update oid page. | |
qbooking AINNO · Yesaway · email complete | 1 2 3 4 5 6 7 8 9 10 11 12 | admin@email.yesaway.com | r.qbookingsolutions.com, qbookingsolutions.com, yesaway.com | reservationNo -> order/index search -> order/update oid https://r.qbookingsolutions.com/backend.php/order/index?form=site&search={reservationNo}&status=all http://r.qbookingsolutions.com/backend.php/site/index | Same QBooking backend path as QEEQ, keyed by reservation number. | |
ctrip AINNO · Ctrip / Trip.com · email + portal | 1 2 3 4 5 6 7 8 9 10 11 12 | xczc_tzzy@trip.com, car-booking@trip.com, en_noreply@trip.com, noreply@trip.com | zuchebao.ctrip.com, cbooking.trip.com, trip.com | zuchebao orderList -> cbooking orderDetail https://cbooking.trip.com/calabi-abroad-order/orderDetail?orderId={orderId} https://zuchebao.ctrip.com/calabi-abroad-order/orderList?orderId=1653715016041245 | Ainno cBooking account uses the same URL transform. | |
bookinggroup AINNO · Bookinggroup · TBA | 1 2 3 4 5 6 7 8 9 10 11 12 | confirmations@bookinggroup.com | marketplace.economybookings.com, bookinggroup.com, economybookings.com | TBA until account/source details are confirmed. — | TBA until account/source details are confirmed. | |
localrent Outside CSV · Localrent · app-only | app-only | mail@localrent.com | localrent.com, admin.localrent.com | Manual/app-only row; no automatic booking creation expected. — | Manual/app-only row; no automatic booking creation expected. | |
direct Outside CSV · Driveo / WAHDAH · app-only | app-only | support@driveo.asia | wahdah.id, driveo.asia | Manual/app-only row; no automatic booking creation expected. — | Manual/app-only row; no automatic booking creation expected. |
Sessions & Logs
| Provider | Label | Username | Session | Status | Last login | Expires |
|---|---|---|---|---|---|---|
| cartrawler-supplier | easyrent | AdminEazyID | yes | expired | 6/25/2026, 2:01:31 AM | long-lived |
| driveo-wahdah | easyrent | — | — | no_credentials | — | long-lived |
| economybookings-mp | ainno | — | — | expired | — | long-lived |
| economybookings-mp | easyrent | support@easyrentbali.com | yes | expired | 6/30/2026, 3:55:41 AM | long-lived |
| economycarrentals-sup | easyrent | EasyRent | yes | error | 7/6/2026, 5:56:54 AM | long-lived |
| localrent | easyrent | — | — | no_credentials | — | long-lived |
| qbooking-solutions | ainno-yesaway | easyrentadmin | — | expired | — | long-lived |
| qbooking-solutions | easyrent | reservation@easyrentbali.com | yes | expired | 7/6/2026, 8:52:33 AM | long-lived |
| trip-cbooking | ainno | ainnojayaabadi@gmail.com | — | active | 7/29/2026, 5:01:48 AM | long-lived |
| trip-cbooking | easyrent | reservation@easyrentbali.com | — | active | 7/30/2026, 7:54:52 AM | long-lived |