The Scenario
It's 5:40 AM. Your driver is at the warehouse, keys in hand, asking for the route. You've got 18 delivery stops pasted into an Excel workbook from last night's order export — column A, no particular order, no optimization. The previous routing tool your team used required a subscription nobody renewed. There's a GraphHopper account in the company logins doc. You've never used it.
The bad version:
- Open the GraphHopper Route Optimization API docs, figure out the JSON schema for a VRP request, and manually assemble a payload with 18 stop objects.
- Submit the request, get back a solution object with nested route arrays, and manually read off the optimized stop order to write into column B.
- Realize stop 7 in the response refers to a vehicle service point you didn't mean to include and redo the whole thing.
The driver is waiting. This is not the morning for a REST client tutorial.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the address list in column A and through its GraphHopper integration submits the VRP request and writes the optimized stop sequence back into column B — without you touching a single API field.
Take the 18 delivery addresses in column A and use GraphHopper VRP to find the optimal driving order — write the ranked stop list back to column B with stop 1 at the top
What You Get
- Column B fills with the same addresses reordered by optimal driving sequence, stop 1 at the top.
- The original column A is untouched — you have both the input order and the optimized order side by side.
- If GraphHopper returns a partial solution (one stop unreachable), the note appears inline next to that row.
What If the Data Is Not Quite Ready
Some addresses are missing a city or state
Fill in the missing city and state for any incomplete addresses in column A based on the surrounding rows' zip codes, then run GraphHopper VRP on the corrected list and write the optimized sequence to column B
The workbook has stops across two zones and you only want to optimize Zone A today
Filter column A for rows where column B says "Zone A", run GraphHopper VRP on those stops only, and write the optimized driving order into column C for Zone A rows — leave Zone B rows blank
Stop priorities are in column B and high-priority stops must come first
Run GraphHopper VRP on the addresses in column A, treating rows marked "HIGH" in column B as time-window-priority stops, and write the optimized order into column C
Deduplicate, geocode, optimize, and flag late arrivals in one pass
Remove any duplicate addresses in column A, geocode each unique stop using GraphHopper, run VRP to find the optimal driving sequence, write the ordered route into column B, and flag any stop where GraphHopper estimates arrival after 3 PM as "AT RISK" in column C
One prompt handles what would otherwise be a four-step process across two tools and a spreadsheet.
Try It
Get the 7-day free trial of SheetXAI and paste a delivery stop list into an Excel workbook — then ask it to optimize the route before the driver leaves. Related reads: Build a Driving Distance and Time Matrix From an Excel workbook and the GraphHopper overview.
