Genius Router Widget
Route OptimizationVRPTW-powered route optimization with live GPS tracking, check-in logging, and Google Sheets integration. Plan the shortest route across your stops in seconds.
Smart Optimization
VRPTW solver finds the shortest route. Supports multiple concurrent routes per driver or team.
Live Map
Interactive map with road-following polylines. View all stops, checked-in status, and route progress.
GPS Tracking
Real-time position tracking with follow-me mode. Permission-aware with actionable error messages.
Check-In & Delivery
Check in at each stop with GPS logging. Order stops (ORD-) are automatically marked delivered in both sheets and the customer tracker.
Embed Code
<!-- Genius Router Widget -->
<div id="tour-router-widget"
data-widget="tourRouter"
data-tenant="YOUR_TENANT_ID"
data-container="tour-router-widget"
data-display-mode="button">
</div>
<!-- Load widgets (single script for all widgets) -->
<script type="module"
src="https://cdn.widgetfied.com/portal.js">
</script>Replace YOUR_TENANT_ID with your actual tenant ID. The widget appears as a "Plan Route" button by default. Use data-display-mode="inline" for embedded mode.
How It Works
Set Your Starting Location
Enter your departure address. The widget geocodes it to coordinates using Google or OpenStreetMap.
Add Stops
Import stops from your bookings or orders spreadsheet, or enter addresses manually. Order stops include all active statuses (pending through en route).
Optimize Route
The VRPTW solver finds the optimal order, minimizing total driving distance while respecting time windows and buffers. Run multiple routes for different drivers or time slots.
Navigate & Check In
View the route in the Portal, check in at each stop to log GPS + timestamp. For delivery orders (ORD-), check-in automatically marks the order delivered and links the route reference — the customer sees the update in real time.
Plan Limits
Route optimizations are metered by subscription tier:
Free
3 routes/month
Growth
33 routes/month
Scale
99 routes/month
Enterprise
Custom
Configuration
Configure the Genius Router in the dashboard:
Routes Spreadsheet
RequiredDashboard → Settings → SpreadsheetsGoogle Sheets spreadsheet ID where optimized routes are saved
White-Label Branding
Dashboard → White-Label → Genius RouterCustomize colors, logo, fonts, and button styling
Max Stops Per Route
Dashboard → White-Label → Route DefaultsLimit the number of stops per optimization (up to 12)
Return to Start
Dashboard → White-Label → Route DefaultsWhether the solver routes back to the starting location after the last stop
Requirements
- Active Widgetfied subscription (Growth+ for Genius Router)
- Google Sheets integration configured (for route persistence)
- Google Maps API key (for road-following polylines and distance matrix)
- At least 2 stops per route optimization
Best Practices
Use Realistic Time Windows
Set appointment windows that reflect actual availability — the solver respects these constraints
Set Buffer Between Stops
Use 10-15 minute buffers to account for parking, setup, and unexpected delays
Import Orders & Bookings
Import stops from both your orders and bookings sheets. Order stops auto-link back when checked in.
Run Multiple Routes
Create separate routes for different drivers, time slots, or delivery zones. Each route tracks independently in the Portal.
Troubleshooting
Route shows straight lines instead of roads
- • Verify GOOGLE_MAPS_API_KEY is set in your environment
- • Check that the Directions API is enabled in Google Cloud Console
- • Ensure your API key has billing enabled
Stops getting dropped from route
- • Check time windows — overlapping or tight windows cause conflicts
- • Reduce visit duration or widen the time window
- • Try removing the buffer between stops
- • The solver provides suggestions for dropped stops — follow them
Check-in not saving to sheet
- • Verify the Routes Spreadsheet ID is configured in Settings
- • Ensure the service account has write access to the spreadsheet
- • Allow location access in the browser for GPS coordinates
Start address replaced with wrong location
- • The widget now preserves your typed address (not the geocoder formatted name)
- • If coordinates seem wrong, try entering a more specific address with ZIP code