๐Ÿ“š All guides โ† Back to app

๐Ÿ“ฆ Dispatcher playbook

Your daily operating manual. Read once, bookmark, use every morning.

Contents

  1. Your first morning
  2. Adding one order
  3. Bulk import from CSV/Excel
  4. Generating optimized routes
  5. Notifying customers on WhatsApp
  6. Bulk reassigning orders
  7. End of day โ€” cash reconciliation
  8. The daily report
  9. Drag-and-drop route reordering
  10. Barcode management
  11. Predictive analytics
  12. Customer self-service portal
  13. Troubleshooting

1Your first morning

Open tariq.codeator.ai on your desktop. Sign in with your dispatcher email and password. The Orders page is your home base.

#CustomerAreaCODStatus
142Ahmed Ali SLAKarrada75,000pending
143Sara HassanMansour120,000pending
141Omar JasimZayouna50,000delivered
Orders table. The red SLA chip next to a name means that order has been pending too long โ€” deal with it first.
๐Ÿ’ก Morning routine: filter by status=pending, scan for red SLA badges, decide if any need to be reassigned or escalated before you generate today's routes.

2Adding one order

The fast path for a single phone call. Most fields you'll fill once and move on.

Add New Order

07701234567 โœ“
Ahmed Ali
Karrada, Baghdad
75000
Paste Google Maps link or GPS...
33.3152, 44.3912
+ Add Order
The add-order form. Phone is autocompleted from past customers.
  1. Phone number โ€” start typing; if the customer has ordered before, suggestions appear below the input. Tap one to auto-fill name, area, and last-known coordinates.
  2. Customer name โ€” Arabic or English, both work.
  3. Area โ€” the district name (e.g. Karrada, Mansour, Zayouna).
  4. COD (IQD) โ€” amount in Iraqi dinars, numbers only.
  5. GPS โ€” paste the customer's shared location from WhatsApp, Google Maps, or apple maps. The form extracts the coordinates automatically. Alternatively, click on the map to pick a spot.
๐Ÿ’ก GPS shortcut: when a customer sends you a Google Maps link on WhatsApp (https://maps.google.com/...), paste the whole thing into the GPS field. The form detects the coordinates and the border turns green.

3Bulk import from CSV/Excel

When you have 50 orders this morning, you don't type them in one at a time. Export them from Excel as CSV, drop them on Tariq.

Import orders (CSV)

๐Ÿ“„ Drag & drop your CSV here, or click to browse
phonecustomerareacodlatlng
07701234567Ahmed AliKarrada7500033.3144.39
07719876543Sara H.Mansour12000033.3244.36
abcOmarZayouna50000
Preview โ€” 2 valid rows, 1 error (invalid phone). Fix and re-drop, or skip and import only valid rows.
CSV preview. Red rows are invalid and won't be imported.

Required columns: phone, customer, area, cod.

Optional columns: lat, lng, notes. Without lat/lng, the order lands without coordinates and needs GPS added later before it can be routed.

โš  Encoding: if your CSV has Arabic characters, save it as UTF-8. Excel on Windows defaults to ANSI, which breaks names. Use "Save As โ†’ CSV UTF-8" in Excel.

4Generating optimized routes

Once your orders are in with coordinates, the Routes page assigns them to drivers in the smartest order.

Depart hour:
08:00 (rush)
โšก Optimize Routes
๐Ÿ“ฒ Notify customers
Driver: Ali ยท 5 stops
1Ahmed (Karrada)
2Sara (Karrada)
3Omar (Zayouna)
4Fatima (Mansour)
5Yusuf (Adhamiyah)
Driver: Hassan ยท 4 stops
1Layla (Jadriya)
2Ziad (Palestine St.)
3Rania (Saydiya)
4Noor (Dora)
Routes split across drivers. Each card is the driver's stop list for the day, in optimized order.
  1. Pick the depart hour. 08:00 runs traffic-aware routing as if drivers leave at 8am. 14:00 does the same for mid-day. Stop orders will differ โ€” Karrada at 8am has different traffic than Karrada at 2pm.
  2. Hit Optimize. The server calls OSRM for drive times, applies Baghdad rush-hour multipliers, and OR-Tools solves the vehicle routing problem.
  3. Review the cards. Each driver gets a card with stops numbered. Look for obviously weird sequences โ€” they're rare, but the optimizer isn't omniscient.
  4. Send to drivers. Each driver's stops are already assigned. They see them the moment they open their PWA link.
๐Ÿ’ก Rush-hour preview: generate once at 08:00 and once at 14:00. Compare the two. This shows you which routes are genuinely traffic-sensitive vs. which are identical regardless of time.

5Notifying customers on WhatsApp

After routes are generated, one button tells every customer their order is out for delivery, with a tracking link.

Routes ready โ€” 9 stops across 2 drivers

๐Ÿ“ฒ Notify customers
โœ“ Queued WhatsApp messages to 9 customers
One click, nine customers notified. Each gets a tracking link unique to their order.

The customer receives a WhatsApp message like:

Hello Ahmed ๐Ÿ‘‹
Your Tariq order #142 is out for delivery with Ali (vehicle: white Kia).
Track live: tariq.codeator.ai/track/142?t=...
โš  If the notify button doesn't send anything: notifications are owner-only to turn on. Ask your owner to visit Settings and flip the toggle. Without that, the button queues a no-op (safe, but no messages actually go out).

6Bulk reassigning orders

When a driver calls in sick, you don't re-assign 20 orders one by one.

5 selected Assign to:
Hassan โ–พ
Reassign
โ˜‘142Ahmedpending
โ˜‘143Sarapending
โ˜‘144Omarpending
โ˜145Layladelivered
Checkbox column on the left. Selecting rows reveals the bulk action bar at top.
  1. Check the boxes next to orders you want to move.
  2. The orange bulk bar appears at the top with a count.
  3. Pick a target driver from the dropdown, hit Reassign.
  4. Generate routes again โ€” the sick driver's queue is redistributed.

7End of day โ€” cash reconciliation

Every driver carried a pocketful of cash today. You need to zero it out before tomorrow.

Drivers โ€” Outstanding cash

DriverDelivered todayOutstanding IQDAction
Ali5325,000
Reconcile
Hassan40โœ“ cleared
One row per driver. Amber balance = cash they still owe the company.
  1. Driver hands you the physical cash. Count it.
  2. Click Reconcile on their row. Confirm the total matches.
  3. Their outstanding balance drops to 0. The audit log now records who reconciled each order and when.
๐Ÿ’ก The driver can see the same number from their end โ€” on their PWA they have a "Handed in to dispatcher" button. When both sides click, the record has two independent timestamps for accountability.

8The daily report

One page tells you what happened today: how many delivered, what went wrong, how much cash came in.

87
Delivered
13
Failed
Delivery success rate
87%
Failure reasons
6ร— Wrong address
4ร— Customer not home
3ร— Refused delivery
Summary cards + success bar + failure reasons. Press ๐Ÿ–จ Print for a clean paper copy.

Use the From / To date pickers to look at any time range, not just today. Switch stores with the store dropdown if you run multiple.

9Drag-and-drop route reordering

After the optimizer generates routes, you can manually reorder stops by dragging them โ€” useful when you know something the algorithm doesn't.

Driver: Ali ยท 5 stops
1Ahmed (Karrada) โ† drag to reorder
2Sara (Karrada)
3Omar (Zayouna)
4Fatima (Mansour)
5Yusuf (Adhamiyah)
๐Ÿ’พ Save Order
Drag any stop up or down, then click "Save Order" to lock in the new sequence.
  1. Generate routes as normal on the Routes page.
  2. Grab any stop and drag it up or down within a driver's card.
  3. Click Save Order on that driver's card to persist the change.
  4. The driver sees the new stop order immediately on their phone.
๐Ÿ’ก Use this when a VIP customer needs to be visited first, or when you know a road is blocked that the optimizer can't know about.

10Barcode management

Assign barcodes to orders for fast identification. Drivers can scan them with their phone camera.

#CustomerBarcodeAction
142Ahmed AliPKG-2026-0142โœ“ set
143Sara Hassanโ€”
Set barcode
Orders table with barcode column. Click "Set barcode" to assign one.

How barcodes work:

๐Ÿ’ก If your orders already have printed barcodes from your e-commerce system, just assign those same codes in Tariq โ€” no need to reprint.

11Predictive analytics

The Predictions tab on the Report page shows patterns that help you plan ahead โ€” failure hotspots, demand days, and peak hours.

Drivers Trends Predictions
42
avg orders/day
Karrada
top failure area
DEMAND BY DAY
SunMonTueWedThuFriSat
Predictions tab โ€” average daily orders, failure hotspots, and demand by weekday.

What each section tells you:

12Customer self-service portal

Customers can check their order status without calling you โ€” via order number or barcode.

Customer Portal

Order # or barcode...
Search
Order #142 โ€” Delivered โœ“
Ahmed Ali ยท Karrada ยท 75,000 IQD
Delivered at 14:32
Customer portal at /customer-portal โ€” no login needed for quick lookup.

Two ways customers can track:

๐Ÿ’ก Share the customer portal link /customer-portal on your company's social media โ€” reduces "where's my order?" calls by letting customers check themselves.

13Troubleshooting

The five problems that come up most often, and their fix.

"Optimize Routes" button does nothing

You have no pending orders with GPS coordinates. Check the orders table: if the ๐Ÿ“ pin icon is missing from the map column, add coordinates via the GPS field.

Driver says their link is broken

Their token may have been rotated by the owner. Ask the owner to open Drivers page โ†’ rotate token โ†’ share the new link on WhatsApp.

Customer says they never got the WhatsApp

Two possibilities: (1) notifications are disabled in Settings, or (2) Twilio sandbox mode requires the customer to "join" the sandbox number first. Ask the owner to check both.

CSV import shows every row as an error

Column headers don't match. Required names are phone, customer, area, cod โ€” all lowercase, no spaces. If Arabic names look broken in preview, re-export the CSV as UTF-8.

Outstanding cash doesn't match driver's count

Check the Audit page for that driver: every delivered order is timestamped with its COD. If a driver marked something "Delivered" that wasn't, the number will be off โ€” find the order, status=failed with a note, reconcile.

โ†‘