Logging In
First-Time Login (Phone-Only Invitations)
DailyDSP invitations arrive by SMS — no email is required. When your owner or ops manager invites you, you'll receive a text on the phone number they registered:
- Tap the registration link in the SMS you received from DailyDSP
- The link opens your DailyDSP registration page in any mobile or desktop browser
- Enter your name, choose a username, and create a password following these requirements:
- Minimum 8 characters
- At least one uppercase letter
- At least one number
- Click Register to complete your account setup
- You'll be redirected to the login page
Tip: Registration links are valid for 7 days (30 days for an owner's first invite). If yours expires, ask your admin to resend it — they can re-issue with one click from the Users page.
Drivers: When a driver is added to your roster, they receive their own SMS link to the Driver Portal — no app to install. Same secure 48-character token, same one-tap onboarding.
Regular Login
- Navigate to your DailyDSP URL (e.g.,
https://plad.dailydsp.com)
- Enter your username or email
- Enter your password
- Click Sign In
Tip: Bookmark your login page for quick access
Understanding the Navigation
After logging in, the main navigation is across the top of the page:
| Icon |
Menu Item |
Description |
| Dashboard | Your daily operations hub — routes, vehicles, messaging, check-ins |
| Drivers | Driver roster, certifications, and status management |
| Vehicles | Fleet management, service types, affinity / maintenance / vendor shortcuts |
| Schedule | Weekly schedule builder, generate, copy previous week, templates, presets, and Amazon variance |
| Performance | Upload Amazon DSP scorecard PDFs — sectional ovals, standings, BoC/CAS |
| Messaging | SMS conversations, templates, and message history |
| What's New | After an update: View (full history), Snooze (icon stays), or Skip (gone until the next deploy) |
| Help | Opens this Support page to the section for whatever screen you are on (Dashboard, Drivers, Vehicles, Schedule, Performance, Messaging, Settings, …) |
| Settings | Your profile, tenant configuration, users, and billing |
Affinity, Maint. Board, and Vendors are reached from the Vehicles page (buttons in the header). The first time you open Dashboard, Drivers, Vehicles, Schedule, or Performance, a short guided tour highlights the main controls. Turn tours on or off in Settings → General → Page tutorials.
After DailyDSP is deployed, a What's New prompt lists what changed. View opens a newest-first history. Snooze keeps a star icon in the header. Skip hides it until the next update.
Setting Up Your Profile
Proper profile setup ensures you receive notifications and the app displays times correctly.
Accessing Your Profile
- Click your name in the top-right header
- Or open Settings → General for timezone, time format, and page tutorials
Profile Settings
| Setting |
Description |
Recommendation |
| First Name | Your first name | Required |
| Last Name | Your last name | Required |
| Email | Your email address | Use a monitored email |
| Phone | Your mobile number | Include country code (+1) |
| Timezone | Your local timezone | Set to America/New_York for EST |
| Time Format | 12-hour or 24-hour clocks | Set in Settings → General |
| Page tutorials | First-visit guided tours on Dashboard, Drivers, Vehicles, Schedule, and Performance | On by default; turning on again resets seen tours |
Changing Your Password
For security, change your password periodically:
- Click your name in the top-right header
- Scroll to the Change Password section
- Enter your Current Password
- Enter your New Password (must meet requirements)
- Confirm your New Password
- Click Change Password
Security Tip: Use a unique password and don't share it with others
Workflow Overview
1
Upload Routes
Cortex or Daily Dispatch
2
Upload Staging
Location data
3
Assign Vehicles
Auto or manual
4
Send Messages
SMS to drivers
5
Monitor Check-Ins
Track arrivals
Step 1: Upload Routes
The Routes stepper accepts Amazon Cortex files and Amazon Daily Dispatch workbooks. DailyDSP detects which one you dropped — there is no format picker.
Getting the Routes File from Cortex
- Log into Amazon Logistics (logistics.amazon.com)
- Navigate to Operations → Delivery
- Select your station (e.g., DDC4 - Sterling)
- Ensure the correct date is selected
- Click the Download button (⬇️ icon)
- Save the
.xlsx file
Amazon Daily Dispatch
Daily Dispatch workbooks have a Summary sheet plus a station sheet (for example DDC4) with Cycle, Start time, Route, Service Type, DA, DA ID, Staging, Vehicle, Stops, and Packages.
- Station and date come from the workbook, not the filename. Upload routes shows that DailyDSP detected Amazon Daily Dispatch — verify or edit below the banner
- Vehicle matches your fleet by Amazon Fleet ID. If that van is not in Vehicles, the route stays unassigned and the import lists a warning. DailyDSP does not create vans from this file
- Rows with a blank Route are skipped so they do not create empty routes. Re-upload the same file later in the morning when Amazon fills Route, Staging, and Vehicle
- Drivers match on DA ID (transporter ID) first, then DA name
Uploading to DailyDSP
- Go to the Dashboard
- Select the correct date using the date picker (Daily Dispatch can overwrite this from the workbook)
- Click the Routes stepper (upload icon) and choose your Cortex or Daily Dispatch file
- Cortex and Day-of-Ops still use the filename. If that name cannot be parsed, enter station and date yourself
- Click Upload
Import Complete says whether station and date came from the filename, the Daily Dispatch workbook, or what you typed. Drivers match by Transporter ID (TID) first — names are only a fallback.
Step 2: Upload Staging Information
Staging data tells drivers where their packages are located in the warehouse. Staging is already in Daily Dispatch — after a successful Daily Dispatch import, the guided workflow skips this step. You can still upload a separate Day-of-Ops staging file if you used Cortex instead.
What Gets Updated
| Field | Description |
| Wave | Scheduled departure time |
| Staging Location | Where packages are staged (e.g., A1, B3) |
Important: A separate Day-of-Ops staging upload only updates wave and staging location on routes that already exist. Stop counts stay with the routes file — upload routes first. After Daily Dispatch, skip this step.
Step 3: Assign Vehicles
Vehicles can be assigned automatically (based on affinity) or manually.
Auto-Assign Vehicles
- Click the In-Service Vans stepper (auto-assign)
- The system assigns vehicles in this order:
- Primary / secondary / tertiary affinity
- Prior-day van (if that affinity option is on)
- Matching service type, then any remaining in-service van
- Certification class (CDV / DOT / Electric) must match the driver. If Strict Service Type Match is on (Affinity page), a van is never auto-assigned unless its Amazon service type equals the route’s.
Manual Vehicle Assignment
- Find the route in the table
- Click the Vehicle cell
- Select a vehicle from the dropdown
- The assignment saves automatically
Step 4: Send Driver Messages
Notify drivers of their assignments via SMS.
Message Content
The default message includes:
- Driver's name
- Route number
- Vehicle assignment
- Wave time
- Staging location
Message Status
| Status | Meaning |
| ✅ Green checkmark | Message delivered |
| 🟡 Yellow | Message pending/sent |
| ❌ Red pill | Failed or undelivered — short reason (for example Opted out) instead of a generic Failed. Hover or tap for what to do next and the Twilio code |
| ⚪ Gray | No phone number |
Step 5: Monitor Check-Ins
Check-In Status Indicators
| Color | Status | Meaning |
| 🟢 Green | On Time | Checked in early enough per Settings → Check-in Thresholds |
| 🟡 Yellow | Warning | Checked in close to wave (warning window) |
| 🔴 Red | Late / Call Out / NCNS | Checked in at or after the late threshold, called out, or no-call-no-show |
Dashboard Overview
The Dashboard is your central hub for daily operations. It displays:
- Routes for the selected date
- Driver and vehicle assignments
- Check-in status
- Message delivery status
- Quick action buttons
Quick Statistics
| Indicator | Description |
| Routes | Routes for the selected date. Orange triangle = duplicate route numbers (same station). Red unassigned = Cortex-planned numbers not currently on any row |
| Staging | Routes that have a staging location. Orange triangle = the same slot used on more than one route |
| In-Service Vans | Click to auto-assign vans. Count is in-service vehicles available for dispatch |
Tip: The Routes / Staging / In-Service Vans pills at the top are the morning workflow: upload Cortex or Daily Dispatch, upload staging (skipped after Daily Dispatch), then auto-assign vans.
A red unassigned badge on the Routes header means Cortex-planned route numbers for this date are not currently on any row (for example after a rename or deleting a row). Put those numbers back on a row, or re-import Cortex. Deleting every row for the day still leaves that reminder until the planned numbers are assigned again.
Orange mismatch warnings on a Type cell mean the route’s service type does not match the assigned van. Suppress those (and duplicate route/staging warnings) in Settings → Routes ignore lists. Custom service types are added to the ignore list automatically. Ignored types also skip the Strict Service Type Match gate during auto-assign.
Routes Table Columns
| Column | Description | Editable |
| Route | Amazon route code (dropdown includes Cortex-planned numbers) | ✅ |
| Station | Delivery station | ✅ |
| Type | Service type — Amazon-imported names plus any custom types for your location | ✅ |
| Wave | Scheduled departure time | ✅ |
| Driver | Assigned driver | ✅ |
| Vehicle | Assigned vehicle (in-service vans only) | ✅ |
| Stops | Stop / zone count from the Cortex or Daily Dispatch routes file | ❌ (import) |
| Staging | Staging location | ✅ |
| Status | Pending, Assigned, Ready, Message Sent, Checked In, Called Out, or NCNS | ❌ (computed) |
| Actions | Include/exclude from auto-assign, copy row, Check In / Call Out / NCNS | — |
Keyboard Shortcuts
| Shortcut | Action |
Enter | Save current edit |
Escape | Cancel current edit |
Tab | Move to next cell |
Shift+Tab | Move to previous cell |
Overview
DailyDSP's Schedule module gives you complete control over weekly planning:
- Visual weekly grid — click a cell to add a shift, or drag templates and presets
- Generate Schedule — always available; fills empty days from repeating work shifts after a preview. Empty repeating days show a faint calendar-plus (not a sync icon)
- Copy previous week — toolbar, or right-click a day, a driver, or the Driver heading
- Recurring — a modifier: sync on a shift, heart, or ban to repeat weekly. Preferred and unavailable already show on future weeks without Generate
- Templates — a full week of shifts (multiple days). Drag onto a driver's name to apply the whole week. Each enabled day can have its own Label
- Presets — a single shift (start, end, service type). Drag onto a specific day for a driver; the preset name becomes the shift label
- Drag to move — drag an existing shift onto another empty cell in the same week
- Mass-clear — right-click a day, a driver, or the Driver header to clear many shifts at once (after a warning)
- Driver heading — left-click sends the portal link to every driver on the grid
- Publish Week — drafts stay private until you publish; drivers then see shifts in their portal
- Amazon variance — compare your schedule to Amazon’s rostered work blocks
Templates vs Presets
Both live in the bars just under the Schedule title.
| Template | Preset |
| What it is | Several shifts across the week | One shift (start–end, optional service type) |
| Create | New Template — pick which days are on, the times, and an optional Label per day (max 36 characters). The template name is not copied onto shifts | New Preset — name, start, end, service type |
| Apply | Drag onto the driver’s name (left column). Each day’s label is copied onto that day’s shift | Drag onto a day cell for that driver. The preset name becomes the shift label |
| Edit | Click the template chip | Click the preset chip |
Building a Weekly Schedule
- Select the week using the arrows or week picker
- Click Generate Schedule any time to fill empty days from repeating work shifts (it asks first with a count; already-filled days stay). After you mass-clear a week, Generate still works
- Or click Copy previous week to copy last week’s assigned shifts onto this week as drafts
- Your active drivers appear as rows
- Click an empty cell to add a shift, drag a preset onto a day, or drag a template onto a driver name
- Optionally add a short label (up to 36 characters) when creating or editing a shift — occupied cells show it as a pill next to the time
- Click an existing shift to edit or remove it, or drag it onto another empty cell in this week to move it
- When drafts look right, click Publish Week so drivers can confirm in the portal
Generate Schedule
Generate Schedule is always available. It fills empty days from repeating work shifts (the sync icon on a scheduled shift). It asks first with a count, never replaces a day that already has a shift, and can be clicked again — including after you mass-clear a week.
- Empty days that will fill show a faint calendar-plus icon, not a sync icon
- Preferred (heart) and unavailable (ban) already show on future weeks without Generate — Generate does not create those
- Generate and Copy previous week will not assign a shift onto a day the driver is unavailable (set by the driver or a scheduler). If any were skipped, DailyDSP asks: create those as open shifts (no driver) or drop them
Copy Previous Week
The toolbar Copy previous week copies last week’s assigned shifts onto the week you are viewing as drafts. Days that already have a shift are skipped. Open and unassigned marketplace posts are not copied. You still Publish Week so drivers can see the drafts.
- Toolbar or right-click the Driver heading — whole week, all drivers (same action)
- Right-click a day header — Copy previous [day] (that weekday from last week, all drivers)
- Right-click a driver name — only that driver’s assigned shifts from last week
Recurring, Preferred, and Unavailable
Recurring is a modifier on whatever the cell already is — not a separate shift type.
- Heart + sync — preferred every week on that weekday
- Ban + sync — unavailable every week on that weekday
- Sync on a shift — that work shift repeats weekly
- Preferred and unavailable paint forward without Generate. Generate only fills work shifts. A generated shift on a preferred day still shows the heart
- On an empty day, the ban icon marks one-time unavailable (PTO) and the heart marks preferred
- The empty-cell top-right sync is gone. Sync is only on a preferred, unavailable, or scheduled cell — never a one-click “create unavailable” from a blank day. To repeat weekly, hover that cell and click its top-right sync icon
Drag a Shift to Another Driver or Day
On the weekly grid, drag an existing shift onto another empty cell in the same week to move it.
- Past days cannot be dragged from or dropped onto. Today is allowed both ways
- Dropping on a day that already has a shift does nothing — DailyDSP does not swap two shifts
- A moved shift goes back to draft, so publish again if drivers should see it
- Recurring: only that day’s instance moves. The weekly pattern stays on the original driver and day for future weeks
- Same-cell drop is a no-op. Clicking a shift (without dragging) still opens the editor
- Preset drag onto a cell and template drag onto a driver name still work as before
Shift Labels
Each shift can have an optional short label (up to 36 characters). Occupied cells show it as a compact pill next to the time; hover to see the full name if it is cut off. Leave it blank and no pill appears.
- Set or clear the label in the Create/Edit Shift modal
- Applying a preset (click or drag) uses the preset name as the shift label
- Weekly templates can set a different Label on each enabled day (New/Edit Template). Applying the template puts that day’s label on the shift. The template name is not used as the shift label
- When you Generate a week from repeating shifts, each new day keeps the same label. A blank label stays blank
- Moving or editing a shift without changing the label leaves the label in place. Editing the label on a still-recurring instance updates later generated weeks
Click, Right-Click, and Mass-Clear
Clear many shifts at once after a warning confirmation that names the scope. Cancel leaves the schedule unchanged. Weekly templates, presets, and repeating-shift blueprints (the sync icon on a scheduled shift) are not removed — Clear only deletes this week’s shifts.
| Where | Left-click | Right-click |
| Day column header | Quick actions (Apply Template, Create Routes, Send Reminders) | Copy previous [day] or Clear day (every shift that day, all drivers) |
| Driver name | Reliability cards | Copy previous week (that driver) or Clear driver week |
| Driver header (top-left of the grid) | Send portal link to every driver on the grid (asks first with a count) | Copy previous week, Send portal link, or Clear all shifts (week) |
Note: Mass-clear permanently deletes this week’s shifts. Repeating-shift blueprints, weekly templates, and presets stay. Confirm the warning before you proceed.
Reliability Cues on Driver Names
Each driver name in the left column is pastel-shaded from that driver’s last 90 days of attendance: late arrival warnings, late load-outs, call-outs, and NCNS combined. A note under the name shows N events · 90d.
- 0 events — green; 1–2 — yellow; 3–4 — orange; 5+ — stronger red
- Left-click the name to open the same four reliability cards the driver sees in the portal (14 / 30 / 90-day chips)
- Right-click the driver name to Copy previous week (that driver only) or Clear driver week
Schedule Column Actions (Per-Day Quick Actions)
Click any day's column header in the weekly grid to open a quick-action menu. The menu adapts to the day's state (template available, routes already created, etc.):
| Action | What it does |
| Apply Template | Drop a saved weekly template into the current week — preserves any manual edits already made |
| Create Routes from Schedule | Generates placeholder Route rows for every driver scheduled that day. The morning Cortex import then merges those placeholders into real routes by (date, driver) instead of duplicating — saving you a re-assignment pass. |
| Send Shift Reminders | SMS every driver scheduled for that day. Uses your active "Shift Reminder" message template if you've defined one; otherwise sends a default reminder with shift times. |
| Copy previous [day] (right-click) | Copies that weekday’s assigned shifts from last week onto this week, all drivers. Days that already have a shift are skipped. |
| Clear day (right-click) | Deletes every shift on that day after a confirmation warning. See Mass-Clear Shifts above. |
Tip: "Create Routes from Schedule" is safe to run the night before — placeholders get upgraded automatically when you import routes in the morning.
Reusing Templates
Keep named templates (for example “Full Time AM”) and drop them onto drivers whenever you build a new week. You can also use the column-header Apply Template action for a single day.
Best Practice: Create templates for your common weekly patterns — standard weeks, holiday weeks, reduced operations — and apply them with one drag
Amazon Variance Tracking
Compare your DailyDSP schedule against Amazon's expected roster to catch mismatches before they become problems.
Uploading Amazon's Expected Schedule
- Download the expected schedule from Amazon Logistics
- On the Schedule page, click Upload Amazon Schedule
- Select the downloaded file
- DailyDSP automatically compares it against your schedule
Understanding Variance Cards
DailyDSP shows five variance cards at the top of the report. Each is clickable and filters the table to that category:
| Card | Color | Meaning |
| In Sync with Amazon | 🟢 Green | Driver and shift times match exactly across your schedule and Amazon's roster — no action needed |
| Time Mismatch | 🟠 Amber | Driver is on both schedules, but the shift start or end times don't match — adjust before dispatch to avoid late or short routes |
| Amazon Rostered Not Scheduled | 🔴 Red (CRITICAL) | Driver is on Amazon's roster but NOT in your schedule — Amazon expects them on a route but you haven't planned for them |
| DailyDSP Sched Only | 🟠 Orange | Driver is in your schedule but NOT on Amazon's roster — expected if you over-schedule for coverage, otherwise investigate |
| Amazon Sched Only | 🟡 Yellow | Driver is on Amazon's schedule but not on Amazon's roster and not in your DailyDSP plan — usually means a new addition mid-week |
Fuzzy Name Matching
If a driver's Transporter ID differs between Amazon's file and your roster (common after a re-onboarding), DailyDSP falls back to fuzzy name matching (≥0.8 similarity) so typos and capitalization don't show up as false variances. The match is logged so you can audit it later.
Critical: "Amazon Rostered Not Scheduled" drivers need immediate attention — Amazon expects them on a route but they're not in your plan. Fix by 7 PM the day before or route generation may fail.
Tip: Re-upload Amazon's file anytime as plans change — variance recomputes instantly without losing your edits.
Upload Baseline
The fastest way to load a roster is Amazon’s driver baseline file. On the Drivers page, click Upload Baseline, then use Preserve Local Values so curated phones and fuel PINs survive a re-import. See Smart Imports.
Adding a New Driver
- Navigate to Drivers
- Click Add Driver
- Fill in the required fields:
- First Name and Last Name
- Phone Number (with country code)
- Email (optional)
- Transporter ID — Amazon’s TID (unique per location)
- SMS Language — English, Español, or Français
- Certifications — CDV, DOT, Electric (used when auto-assigning vans)
- Set the driver's Status (Active / Inactive / Terminated)
- Click Add Driver
Transporter ID (TID)
Amazon assigns each driver a Transporter ID. DailyDSP matches Cortex routes, Amazon schedule files, baseline imports, and Performance scorecard rows on TID first; names are only a fallback (Scorecard never matches by name).
- Keep the ID exactly as Amazon has it. A mismatch is the usual reason a Cortex row shows as unmatched
- Amazon sometimes re-issues a TID (account reset, rehire). You can update it on the driver so the unique ID stays in sync
- TIDs must be unique within your location
SMS Language
On each driver’s profile, set SMS Language to English, Español, or Français. Dispatch, reminders, scheduled messages, and AI replies go out in that language. Dispatchers still see the original plus an English translation in Messaging. See Multi-Language.
Tip: The SMS Language dropdown includes Français so you can edit a French-speaking driver without silently switching them to English or Spanish.
Driver Status
| Status | Description | Can Receive Routes |
| Active | Available for dispatch | ✅ |
| Inactive | Temporarily unavailable | ❌ |
| Terminated | No longer employed — hidden unless you check Show Terminated | ❌ |
Phone Number Format
For SMS to work correctly, phone numbers must:
- Include country code (e.g.,
+1 for US)
- Contain only digits after the country code
- Be a mobile number capable of receiving SMS
Example: +14155551234
Upload Baseline
Click Upload Baseline on the Vehicles page to import Amazon’s vehicle file (fleet IDs, VINs, service types). Re-imports can preserve local edits. See Smart Imports.
Adding a Vehicle
- Navigate to Vehicles
- Click Add Vehicle
- Enter the VIN — DailyDSP auto-fills Year, Make, and Model via NHTSA VIN decoding
- Fill in remaining details:
- Vehicle ID — your internal identifier (e.g., VAN-001)
- Service Type — Amazon or custom type (must match the route for auto-assign)
- License Plate
- Certification Class — optional CDV / DOT / Electric restriction
- Service Status — In Service, Out of Service, or Maintenance
- Click Save
VIN Decoding: Just paste the 17-character VIN and DailyDSP automatically looks up Year, Make, and Model from the NHTSA database — no manual entry needed
Service Types
Amazon service types (for example “Standard Parcel - Large Van”) are discovered from Cortex and vehicle baseline imports. Every location on DailyDSP shares that Amazon list so a new DSP is not staring at an empty dropdown. You cannot invent Amazon types — they only appear when an import sees them.
Custom types are extra names for your location only (training, charter, nursery, and so on). They never show up in another DSP’s dropdown.
- Create one from a Type dropdown (Add custom type…) on Dashboard, Vehicles, or Schedule, or from Settings → Routes → Custom service types
- Remove a custom type from that Settings list (×). Historical routes keep the old name; it just leaves the dropdown
- Amazon types cannot be deleted
Custom types are added to the Ignored Service Types list by default so they do not fire the dashboard route/vehicle mismatch warning. Remove a name from that ignore list if you want the warning. Assign the same custom type on both the route and the van if you want auto-assign to match them.
Vehicle Status vs Service Status
Each van has two independent flags:
| Column | Values | Meaning |
| Vehicle Status | Active / Inactive | Whether the van is on the roster (operational) |
| Service Status — In Service | In Service | Ready for daily dispatch and eligible for auto-assign |
| Service Status — Maintenance | Maintenance | Being serviced — track via Maint. Board |
| Service Status — Out of Service | Out of Service | Not available for dispatch |
Auto-assign only considers vans that are Active and In Service.
Overview
The Maintenance Kanban board gives your team a visual way to track vehicle maintenance tasks through their lifecycle. Each task is a card that moves through columns as work progresses.
Kanban Columns
Cards flow from left to right as maintenance tasks progress:
| Column | Purpose |
| Soon | Upcoming maintenance — scheduled but not yet urgent |
| This Week | Needs to be completed this week |
| Today | Scheduled for today |
| Doing | Currently in progress |
| Delayed | Blocked or postponed — needs attention |
| Verifying | Work complete, awaiting verification |
| Done | Completed and verified |
Creating a Maintenance Card
- Click Add Card in any column
- Fill in the card details:
- Title — e.g., "Oil Change - VAN-012"
- Vehicle — select from your fleet
- Type — Oil Change, Tire Rotation, Inspection, Repair, etc.
- Description — additional details or notes
- Due Date — when it needs to be completed
- Click Create
Moving Cards
As maintenance progresses, drag cards between columns:
- Drag and drop a card from one column to another
- Cards maintain their position within columns
- All team members see card movements in real time
Card Comments
Add comments to cards for team collaboration:
- Click on a card to open its detail view
- Type your comment in the comment box
- Click Add Comment
- Comments show the author name and timestamp
Best Practice: Use comments to log parts ordered, vendor appointments, or any status updates so the whole team stays informed
What is Affinity?
Driver-Vehicle Affinity allows you to set preferred vehicle assignments for each driver. When you use Auto-Assign Vehicles, the system uses these preferences to make intelligent assignments.
Affinity Levels
| Level | Priority | Description |
| Primary | 1st Choice | Driver's preferred vehicle |
| Secondary | 2nd Choice | Backup if primary unavailable |
| Tertiary | 3rd Choice | Last resort option |
Setting Up Affinity
- From Vehicles, click Affinity
- Each van has primary, secondary, and tertiary driver dropdowns — save as you go
- Optional toggles at the top:
- Prior Day Affinity — prefer yesterday’s van when affinity is empty
- Prior Day Precedence — try yesterday’s van before affinity
- Strict Service Type Match — auto-assign refuses any van whose Amazon service type does not match the route (manual assignment is unaffected). Types on Ignored Service Types skip this gate so affinity or any available van can still be assigned
Auto-Assignment Logic
When you click In-Service Vans (auto-assign) on the Dashboard:
- Only vans that are operational and In Service are eligible
- Driver certification must match the van’s class (CDV / DOT / Electric) when a class is set
- Affinity (and optional prior-day van) is tried first, then a service-type match, then any remaining eligible van
- With Strict Service Type Match on, every pick must match the route’s service type or the route is skipped — except routes whose type is on Ignored Service Types (Settings → Routes), which get any available van
- Routes with no service type (backup rows) are not auto-assigned a van
Tip: After auto-assign, DailyDSP reports ignored service types separately (for example “2 service type(s) ignored: Nursery Route Level 3”) instead of counting them as mismatches.
Best Practice: Set up affinity for all active drivers to maximize auto-assignment efficiency
Overview
The Driver Portal is a mobile-friendly web app that drivers open from a unique link (SMS or dispatcher send). No App Store, no Google Play, no DailyDSP login, and no Help Chat. Drivers bookmark the link and they're ready to go.
- No app required — works in Safari, Chrome, or any mobile browser
- Three pills at the top: Schedule, Reliability, and Scorecard (the Scorecard pill always says Scorecard)
- Schedule — live week, confirm shifts, availability, marketplace, today’s route
- Reliability — 14 / 30 / 90-day attendance counts
- Scorecard — that driver’s Current Week Performance from uploaded Amazon PDFs, matched by transporter ID only
- Works on any device — iPhones, Android phones, even older models
Driver Access
Each driver gets a unique portal link for your location (for example a /my-schedule/… token in an SMS). They tap it, bookmark the page, and return with one tap. On Schedule, left-click the Driver heading to send the portal link to every driver on the grid (it asks first with a count). Right-click that heading for copy / clear / send portal.
Tip: Send the portal link via SMS — they just tap and bookmark. No “download our app” friction.
Three-Pill Carousel
A three-pill control sits under the greeting. The center pill is the current view; tap the left or right pill to rotate to that neighbor. The cycle wraps: Schedule ↔ Reliability ↔ Scorecard.
- The top pills always read Schedule, Reliability, and Scorecard — the Scorecard label never becomes “Scorecard Performance”
- Prev / next / Today on Schedule or Scorecard change the week only and stay on the same view. Only the pills switch between Schedule, Reliability, and Scorecard
- Reliability has no week controls — it always uses rolling 14 / 30 / 90-day windows
Schedule
Drivers see their upcoming shifts in a clean, mobile-optimized view:
- Current week displayed with shift times and types
- Color-coded by shift preset (Morning, Mid, Evening)
- Prev / next / Today to view other weeks
- Off days shown clearly so drivers know their full schedule
- Confirm shifts, set availability, and use the marketplace (give up / pick up)
Reliability
Four cards, each with 14-day, 30-day, and 90-day counts from the driver’s real route attendance (tenant timezone, rolling calendar days):
| Card | What it counts |
| Late Arrival Warning | Checked in inside the warning window (Dashboard yellow) |
| Late Load Out | Checked in at or after the late threshold (Dashboard red tardy) |
| Call Outs | Call-out attendance |
| No Call No Shows | NCNS attendance |
Call-out and NCNS days are not also counted as tardy. Count chips share one heat scale on every card: 0 green, 1–2 amber, 3–4 orange, 5+ red.
Scorecard
The Scorecard pill shows that driver’s Current Week Performance numbers from the Amazon DSP scorecard PDFs you uploaded on Performance.
- Matched only by Amazon transporter ID — never by name. If the driver has no TID, Scorecard stays TBD rather than guessing another DA
- If that TID is not on any station’s table for the week, DailyDSP uses the first station alphabetically
- Safety and Delivery Quality ovals only — already expanded. Breach of Contract, Comprehensive Audit (CAS), Safe Driving, Team, and Pickup stay on the dispatcher Performance page
- Oval headings use Amazon’s printed standing when the PDF has it. Coaching colors follow that driver’s rates, not station totals
- Weeks with no upload, or a week where that TID is not in the table, show TBD / empty
Tip: Keep each driver’s Transporter ID in sync with Amazon so Scorecard can find their row. See Driver Management.
Shift Marketplace
The marketplace lets drivers manage their availability from the Schedule view:
Giving Up a Shift
- Tap on a scheduled shift
- Tap Give Up Shift
- Add a reason (optional)
- The shift moves to the marketplace for other drivers to pick up
Picking Up a Shift
- Tap Available Shifts
- Browse open shifts and shifts given up by other drivers
- Tap Pick Up on the shift you want
- The shift appears on your schedule (may require manager approval depending on settings)
Note: Shift pickups may require manager approval depending on your DSP's configuration. Check with your ops team.
Today's Route Info
On dispatch day, drivers can see their assignment details on Schedule:
- Route number — Amazon route code
- Vehicle — assigned vehicle ID
- Wave time — scheduled departure
- Staging location — where packages are staged
What Is the AI SMS Agent?
The AI SMS Agent is an intelligent assistant (powered by Google Gemini via LiteLLM) that responds to inbound driver text messages. Instead of rigid keyword-based check-ins, drivers can text naturally and get accurate, conversational responses — in their own language.
- No app required — drivers use their normal SMS
- Multi-language — auto-detects the driver's language and replies in kind (English, Spanish, and more via Google Cloud Translation)
- Context-aware — knows the driver's schedule, route, vehicle assignment, availability, and shift marketplace state
- Multi-turn memory — remembers the last 4 exchanges with each driver for 30 minutes, so follow-up texts make sense
- Check-in automation — recognizes arrival confirmations ("here", "arrived", "aquí") and logs them automatically
- Rate-limited — 20 messages/hour per driver to prevent abuse or runaway loops
What the Agent Can Do
The AI Agent uses a structured tool-calling pattern. Each tool is a specific capability backed by live DailyDSP data:
| Tool | When the agent calls it |
| get_todays_route | Driver asks about today's route, vehicle, wave time, or staging |
| get_weekly_schedule | Driver asks "when do I work this week" or about future shifts |
| check_in | Driver signals arrival ("I'm here", "on station", "aquí") |
| confirm_shift | Driver says they'll be at an upcoming shift |
| request_giveup | Driver wants to give up a scheduled shift |
| set_availability | Driver marks days they want extra shifts or can't work |
| request_pickup | Driver wants to claim an open marketplace shift |
| get_portal_link | Driver asks for their schedule link or needs a fresh one |
Tip: If a driver's question is outside the agent's tools (e.g., "my van won't start"), the message is flagged in the Messaging view so a dispatcher can step in.
Example Conversations
| Driver Texts | AI Responds With |
| "What's my route today?" | Route number, vehicle, wave time, and staging location |
| "When do I work this week?" | Their scheduled shifts for the current week |
| "I'm here" / "On my way" | Confirms check-in and logs arrival time |
| "What van do I have?" | Their assigned vehicle for today |
| "Can I get extra shifts Friday?" | Marks driver available + lists open Friday shifts in marketplace |
| "I can't make Wednesday" | Initiates a giveup request and confirms the shift was released |
| "¿Cuál es mi ruta?" | Route info in Spanish — auto-detected and replied in the same language |
Viewing Conversations
All AI conversations are logged and visible to dispatchers:
- Navigate to Messaging and turn Log Mode off for Conversations
- Each driver who has SMS appears once — click them to see the full thread, oldest to newest
- Inbound messages (from driver) and outbound messages (from AI or dispatcher) are shown in a chat view, with the original-language transcript and an English translation side-by-side
- Compose in the box under the thread and click Send to take over from the AI — the agent automatically steps back for the rest of the thread
How It Works
- When a driver texts your DailyDSP number, the inbound webhook routes to the AI agent
- The agent looks up the driver's identity, language preference, and live data (schedule, route, vehicle)
- It selects the appropriate tool (or chain of tools, up to 5 turns) and generates a natural reply
- The reply is translated into the driver's language if needed, then sent via SMS
- If the AI can't answer or detects an out-of-scope request, the message is flagged for dispatcher review
- The agent respects tenant messaging_mode — test-mode tenants don't engage real drivers
Tip: The AI agent handles routine questions (90%+ of inbound texts), freeing your ops team to focus on exceptions and problems.
SMS Configuration
DailyDSP uses Twilio for SMS messaging. Your administrator will configure:
- Twilio Account SID
- Twilio Auth Token
- Sending phone number
Log Mode vs Conversations
Messaging has a Log Mode toggle.
| Mode | What you see |
| Log Mode on | Paginated message history with filters. Expand a row for detail. Delivery status pills (including failure reasons) stay here |
| Log Mode off (Conversations) | One row per driver who has SMS — no duplicate phones. Click a driver for the full thread, oldest to newest |
In Conversations:
- Type in the box under the thread. Enter starts a new line. Click Send (or Ctrl/⌘+Enter) to text that driver
- Replies show up in the same thread without leaving the page (the list and thread refresh about every 5 seconds)
- The compose box stays on screen while a conversation is open. Send is disabled with a reason if the number is not linked to a driver, or if they opted out of SMS
- Threads still show the original-language text plus an English translation, same as Log Mode
Tip: Unknown numbers that are not linked to a driver are grouped by normalized phone so you still see one conversation, but Send stays disabled until the number is linked.
Message Templates
Customize the messages sent to drivers. Variables use single curly braces and are substituted at send time with the driver's live data. The Send Message dialog also includes a clickable pill list so you can insert any variable without remembering its exact name.
| Category | Variable | Description |
| Driver | {driver_name} | Driver's first name (e.g., "Carl") |
{driver_full_name} | First + last name (e.g., "Carl Whatever") |
{reliability_rating} | Driver's reliability rating |
| Route | {route_number} | Amazon route code |
{wave_time} | Scheduled departure time (driver's local TZ) |
{station} | Delivery station (e.g., DDC4) |
{date} | Route date |
{vehicle} | Assigned vehicle fleet ID (e.g., "V-001") |
{staging_location} | Staging slot in the warehouse |
| Schedule | {todays_shift} | Today's shift start/end |
{next_shift} | Driver's next scheduled shift |
{weekly_schedule} | Driver's full week summary |
{availability} | Driver's marked availability |
| Maintenance | {timing} | Maintenance card timing label ("Load Out", "Return To Station", "Anytime") |
{portal_link} | Personalized driver portal link |
Tip: Use the live preview button before sending — DailyDSP renders your template with sample values so you can confirm the message looks right.
Example Template
Hi {driver_name}, your assignment for today:
Route: {route_number}
Vehicle: {vehicle}
Wave: {wave_time}
Staging: {staging_location}
Your portal: {portal_link}
Multi-Language Auto-Translation
DailyDSP can automatically translate outbound SMS into a driver's preferred language. The translator protects template variables — so {driver_name} and other placeholders survive translation untouched and still resolve to live data at send time.
- Compose once in English — DailyDSP translates per-driver based on their language preference (Spanish is the most common; other languages supported via Google Cloud Translation)
- Variable-safe — placeholders are wrapped in notranslate markers, so they're never mangled
- Auto-detect inbound — when a driver texts in Spanish, the AI SMS Agent replies in Spanish automatically; the dispatcher always sees an English transcript alongside
- Fail-open — if the translation service is unavailable, the original English message is delivered (drivers never get a blank text)
Best practice: Set a driver's preferred language once on their profile and every future message — dispatch, reminder, AI reply — goes out localized.
Quiet Hours
Configure quiet hours on a per-tenant basis to suppress non-urgent SMS during specific windows. Scheduled messages and reminder workers respect these hours; any message due during quiet hours is deferred until the window closes.
- Go to Settings → Messaging
- Set Quiet Hours Start and Quiet Hours End (24-hour HH:MM, tenant timezone)
- Leave blank to disable quiet hours entirely
Note: Invite SMS and cross-tenant transfer confirmations always send regardless of quiet hours — they're considered transactional, not promotional.
Test vs. Production Messaging Mode
Every tenant has a messaging_mode setting that controls where outbound SMS actually goes:
| Mode | Behavior | When to use |
| test (default) | All outbound SMS routes to a configured test_phone_number, not the actual driver. Inbound SMS from drivers is forwarded to fallback handlers. | Onboarding, dry-runs, training your team without spamming drivers |
| production | SMS goes to real drivers; inbound is handled by the AI agent | Daily operations, after your data is loaded |
Tip: Switch tenants from test to production via Settings → Messaging. You can flip back to test mode at any time.
Sending Messages
- From the Dashboard, select routes (or select all)
- Click Send Messages
- Review the message preview
- Click Send
- Monitor delivery status in the Status column
Troubleshooting Messages
| Issue | Solution |
| No phone number | Add phone to driver's profile |
| Invalid phone | Ensure phone format includes country code |
| Red pill (for example Opted out) | Hover or tap the status for the reason and what to do next (ask them to text START). The detail includes the Twilio code for support and does not slide the list sideways |
| Message failed (generic) | Check Twilio configuration in Settings |
| Message not received | Verify driver's phone can receive SMS |
You’ll see the same red failure labels on Messaging, Message Log, Dashboard route SMS status, and send results.
Creating a Scheduled Message
- Go to Messaging → Scheduled
- Click New Scheduled Message
- Pick a recipient:
- Driver — single driver lookup
- User — internal ops user (e.g., yourself)
- Day-of-Driver — whoever is assigned the route on the send date (great for "see you tomorrow!" templates)
- Pick a template (or compose ad-hoc text). Variables substitute live at send time, not at create time, so
{driver_name} always resolves to whoever the recipient turns out to be.
- Set Send At (date + time, in tenant timezone)
- Click Schedule
Tip: If you set the send time in the past, DailyDSP dispatches the message immediately — useful for "send now to a whole group" workflows.
Maintenance Card Notifications
When you create or edit a maintenance Kanban card, you can attach a scheduled SMS to it. The card becomes the "source of truth" for the message — moving the card's due date or canceling the card updates the linked scheduled message automatically.
- Open a Kanban card
- Click Notify Driver/Vendor
- Pick recipient type, write the message (with optional
{timing}, {vehicle}, {driver_name} variables), set the send time
- Save the card — the linked scheduled message is created
Monitoring Scheduled Messages
The Scheduled Messages page lists every pending and recently-sent message with status (pending, sent, failed, cancelled). Edit any pending message before it goes out, or cancel one outright.
Note: Scheduled messages respect quiet hours and messaging mode just like reminders. If the send time falls inside quiet hours, the message defers until quiet hours end.
Supported File Types
| File | What it loads | Where in DailyDSP |
Cortex Routes (.csv / .xlsx) | Routes for the day — route number, wave, driver TID, vehicle, service type. Station/date from the filename (manual if the name cannot be parsed) | Dashboard → Routes stepper |
Amazon Daily Dispatch (.xlsx) | Same Routes stepper — auto-detected (no format picker). Station/date from the workbook. Vehicle = Amazon Fleet ID; blank Route rows skipped; staging already in the file | Dashboard → Routes stepper |
| Day-of-Ops / Staging | Wave time and staging location — merged into routes that already exist | Dashboard → Staging stepper |
| Driver Baseline | Driver roster, names, phones, certifications, TIDs | Drivers → Upload Baseline |
| Vehicle Baseline | Fleet roster, VINs, plates, service types | Vehicles → Upload Baseline |
| Amazon Schedule | Amazon's expected weekly roster (for variance) | Schedule → Upload Amazon Schedule |
Amazon DSP Scorecard (.pdf) | Weekly scorecard metrics, standings, and per-DA Current Week Performance | Performance → upload PDFs |
Amazon Daily Dispatch
On Dashboard → Routes, DailyDSP auto-detects Daily Dispatch vs Cortex. There is no format picker.
- Station and date come from the workbook (Summary + station sheet). Upload routes shows a Daily Dispatch banner. Cortex still uses the filename; if that name cannot be parsed you enter them yourself
- Import Complete labels whether station/date came from the filename, the workbook, or what you typed
- Vehicle matches Amazon Fleet ID. Blank Route rows are skipped. Staging is already in the file — guided workflow skips Staging after a successful Daily Dispatch import
Preserve Local Values
Re-imports never silently overwrite your edits. DailyDSP shows a "Preserve Local Values" picker before committing — you choose, field by field, whether to keep the local version or accept the incoming version.
- Most common use: keep your hand-curated phone numbers and fuel PINs across re-imports
- You can also choose "preserve all" or "overwrite all" with one click
- Notices in the import results call out exactly which fields were preserved per row
Per-Row Error Reporting
Bad rows are reported individually — they don't nuke the whole batch. Common issues DailyDSP handles gracefully:
- Blank Route rows on Daily Dispatch — skipped so they do not create empty routes
- Blank cells in required columns
- Empty trailing rows in spreadsheets
- Numeric phone numbers parsed as floats (Excel's favorite trick)
- Missing driver matches — shown as "unmatched" with a one-click resolution
- Driver Transporter ID re-issues — DailyDSP matches by name fallback so the same driver gets re-linked even with a new TID
Service Types on Import
Amazon service-type names discovered from Cortex and vehicle baselines are shared across every location, so a new DSP is not staring at an empty Type dropdown. Custom types you add in Settings or from a dropdown stay on your location only and never leak to another DSP. See Vehicle Management.
NHTSA VIN Decoding
When importing or adding vehicles, paste the 17-character VIN and DailyDSP auto-fills Year, Make, and Model from the NHTSA database. No manual entry needed.
General (per user)
| Setting | What it does |
| Timezone | How dates and wave times display for you |
| Time Format | 12-hour (2:30 PM) or 24-hour (14:30) |
| Page tutorials | When on, Dashboard, Drivers, Vehicles, Schedule, and Performance each show a short guided tour the first time you open them. Off suppresses all tours. Turning the toggle back on clears your “already seen” list so tours run again on the next visit |
Messaging Settings
| Setting | What it does | Default |
messaging_mode | Test (route SMS to test phone) vs. Production (route to real drivers) | test |
test_phone_number | Phone that receives all outbound SMS in test mode | — |
messaging_quiet_hours_start | Start of quiet window (HH:MM, tenant TZ) | blank (off) |
messaging_quiet_hours_end | End of quiet window (HH:MM, tenant TZ) | blank (off) |
Check-In Thresholds
| Setting | What it does | Default |
checkin_ontime_minutes | How early before wave is considered "on time" (green) | 10 min |
checkin_warning_minutes | Minutes before wave that triggers late-check-in alert | 10 min |
checkin_late_minutes | Minutes after wave time that flips status to late (red) | 0 min |
Reminder Workers
Each worker has an enabled flag and an interval setting. See the Automatic Reminders section for details.
schedule_confirm_reminder_enabled / _hours
late_checkin_alert_enabled
giveup_commit_reminder_enabled / _hours
pickup_reminder_enabled / _hours
Amazon Reconciliation
| Setting | What it does |
match_amazon_roster | When true, the driver portal shows a disclaimer that Amazon A to Z is the official source of truth |
Routes — Custom Types & Ignore Lists
In Settings → Routes you manage names that only exist at your location, and which dashboard warnings to skip.
| Control | What it does |
| Custom service types | Add or remove extra Type names for this location only (training, charter, nursery). They appear in Dashboard, Vehicles, and Schedule dropdowns. Amazon types from Cortex/vehicle imports cannot be removed |
| Ignored Route Numbers | Route codes that should not trigger the duplicate-route warning (e.g. BACKUP) |
| Ignored Staging Locations | Staging slots that should not trigger the duplicate-staging warning |
| Ignored Service Types | Types that should not trigger the route/van mismatch warning, and that skip the Strict Service Type Match gate during auto-assign. Custom types are added here automatically; remove one if you want the warning and a strict van match |
Click Save Changes after editing an ignore list. Removing a custom type only drops it from dropdowns — existing routes, vans, and shifts keep the old name.
Portal URL
If your tenant has a custom subdomain (e.g., plad.dailydsp.com), set portal_base_url to the full URL — DailyDSP uses it to generate invite links and SMS portal links for that tenant. Without it, links fall back to the platform default.
Where it is
In the header, next to the question-mark Help icon, click the comments button (Ask DailyDSP). The question-mark still opens this Support page for the current screen. Help Chat does not replace it.
Owners, ops managers, dispatchers, and viewers all get the same chat, including feature requests and Contact support. Drivers use SMS and the driver portal instead.
What it answers
- How-to questions grounded in these Support docs and What’s New
- It knows which screen you are on (Dashboard, Schedule, Performance, Vehicles, …)
- Links back to the matching section on this page
It cannot see your routes, drivers, vehicles, or live board. Questions like “why is this route red?” belong on the Dashboard, not in chat.
Contact support
For something that is broken or needs a human, use Contact support (header button or chip in Ask DailyDSP). This is separate from how-to answers and from feature requests.
- DailyDSP creates a numbered ticket (
YYYYMMDD-NN on the America/New_York calendar day — for example 20260915-01 is the first request that ET day)
- It posts one parent message in Slack
#support and shows you the Support ID plus a clickable permalink to that thread so you can add updates there
- If your account has an email, DailyDSP also emails you the same ID and link
- Attach 1–3 screenshots (PNG, JPEG, WebP, GIF) or a short recording (MP4, WebM, MOV), 20 MB each. Preview and remove files before Send. Those files appear as links on the Slack thread
How-to stays in chat. Contact support is the human path. About 5 support requests per calendar day, per person.
Feature requests
Ask for something DailyDSP does not do today, or tap the “Send a feature request” chip. We review every request. There is no ship date — sending a request is not a promise it will be built.
About 20 chat messages per hour and 5 feature requests per calendar day, per person. English only.