The Rostering page (Operations → Rostering) is the day-of list of who is actually working. Where the schedule is the forward-looking plan for the week, the roster is the sheet your dispatchers work from on the morning itself. It opens on today, and the arrows either side of the date step you a day at a time, up to four weeks ahead.
What the day view shows
The page has two tabs. The Roster tab is a grid, one row per driver working that day. Driver and Vehicle are pinned on the left, then Wave Time, Start Time, any custom columns your company has added (Device, Gas Card, Route, and Staging Area come set up by default), then Status. Actions is pinned on the right. Status reads Online or Offline depending on whether the driver is live in the driver app, and carries icons for anything logged against them today, such as Late, Call Out, or Rescue. Actions is where you text a driver their rostering info, send an inspection reminder, or log an event.
Above that, tiles for Online Drivers and % Rostered Online show how many of today's roster are actually in the app, and when confirmations are running, a count for each status sits beside them. On a day with nothing set up you'll see "We don't have today's roster on file yet," and an Add First Roster Row button.
The second tab, Logs & Notes, holds the day's running record — logs you add and filter by type, plus free-text Daily Notes and Fleet Notes. An amber dot means someone left notes.
Getting the day's roster from the schedule
Publishing a week does not by itself put anyone on a roster; the schedule has to be pushed across. Press Sync from VoiceERP Schedule here, or Send to Roster from a day in the schedule. Both open the same confirmation, previewing driver by driver the wave and start time each row ends up with, and whether that counts as an Add, an Update, or No change. Only published shifts sync. In the schedule, Send to Roster tells you to "Publish this day first" until the day is published; on the roster page, the confirmation reports "No published shifts are eligible to sync for this day, so the roster will not change."
The dialog spells out the guarantee: "Values you entered by hand, uploaded, or synced from Cortex are never overwritten, and no rows are removed." Syncing fills gaps rather than stomping your work, and stays disabled until you save pending edits.
The sync also sets each row's times. Wave Time gets the shift's start time, and Start Time gets the show-up time produced by the Start time adjustment in your scheduling preferences (a fixed number of minutes before the wave, or one start time for everyone), so that adjustment is what lands on the roster. The sync only writes into a cell that is empty or that an earlier sync filled. A Start Time you typed or uploaded stays as it is, which is why two drivers on the same wave can show different start times after a sync; edit the row or re-upload to change a value the sync leaves alone. Companies on the Daily Operation page can switch this off with Fill In Start Times Automatically in that page's settings, after which the sync leaves Start Time untouched. To skip the nightly chore, turn on Auto-sync schedule to roster in the scheduling preferences and pick a time; each day at that hour, tomorrow's published schedule fills in tomorrow's roster.
You can also build the day from a file. Template downloads a CSV, and Upload takes a CSV, your weekly Cortex schedule, or the Cortex DA operations file. If your company uses the Daily Operation page instead of Rostering, its Upload button opens Import roster, which takes a CSV or Excel file or rows pasted from a spreadsheet, matches the columns to roster fields on a Set up step, and shows a Review of every change before it applies.
With Sync Routes with Cortex on, route and vehicle data arrives periodically on its own. The banner at the top of the page still carries an older warning that your wave time, route, and vehicle edits may be overwritten by Cortex. What the sync actually does is narrower: it fills empty cells and refreshes values that Cortex or the schedule sync set earlier, and it leaves anything you typed or uploaded exactly as you entered it.
Roster confirmations
Turn on Automatic AI Shift Confirmations in the page's settings and Viki works through every driver on the roster during your confirmation window, so no-shows surface the night before rather than at the station. Viki calls them, and drivers can also answer by replying to the text or to the same message in their app chat; there is nothing to tap in the app. Timing and call monitoring have their own article.
Each driver lands in one of four statuses: Confirmed, Did Not Confirm, Waiting for Response, or Not Contacted — and anyone still waiting once the window closes shows as No Response. Counts appear in the tiles up top, and per driver in the Shift Confirmation column that pins to the right of the grid once the window opens; hover the icon for the status. When someone tells you directly instead, open that row's more-options menu and pick Change Confirmation Status to set it yourself.
Making day-of changes
Hover any row and a plus and minus appear just left of the grid: plus inserts a row underneath, minus takes that driver off the day. Pick the driver from the dropdown in the Driver column — anyone already rostered is filtered out, so you can't double-book — then fill in vehicle, wave, and start time inline.
Nothing is committed until you save, via Save and Discard or the Auto-save toggle, which writes your edits a few seconds after you stop typing and shows Unsaved, Saving, Saved, or Save failed beside it. Note that saving tells no one — as the Save tooltip puts it, "Drivers will not be notified of these changes." If you've moved someone's wave, follow up with Text rostering info, or Send Announcement to message the whole roster or a single wave.
There's no separate list of people you took off the day, so log the reason on Logs & Notes if you need a record. And once Viki has started confirming a date, uploading a file warns that "Shift confirmations have already started for this roster" — check the Shift Confirmation column afterward rather than assuming a late change carried over.
Clearing a cell with N/A
Typing N/A in a roster cell clears it. The value is treated as blank, so it doesn't appear in driver-facing messages and doesn't get stored as a value. This applies to route code, service type, staging area, wave time, start time, and required position, as well as custom columns.
Route codes on the classic page
If your company is still on the classic rostering page, the same route code can appear on more than one row in a day. The Daily Operation page enforces one code per route row; the classic page does not. If you're not sure which page you're on, ask your VoiceERP contact.
Where the roster goes next
Plenty reads from the roster. Confirmations are created from it, vehicle inspection reminders go to the drivers and vehicles on it, and announcements and roster-based chat channels are built from it and grouped by wave. The end-of-day attendance section, timecard discrepancy checks, and any incentive counting rostered days all reconcile against it. Managers get the same roster and logs on their phone under the mobile app's Operations tab.