Skip to main content

Uploading Reports and Files

Every file the manager app accepts — weekly scorecard and payroll files, roster files, driver CSVs — where each one goes and what to do when an upload is rejected.

Most of what VoiceERP knows about your station comes from files you hand it — the weekly scorecard, timecards, the roster, your driver list. This article is the map: where each upload lives, what format it expects, and what to do when one gets rejected.

The weekly files row

Performance → Scorecards is where the week-by-week files go. Every week is a card, and the right side of that card is a row of upload buttons — press the upload icon, or drag the file straight onto it.

Scorecard PDF takes a PDF only, and it's the file everything else waits on. The Scorecards article covers that upload in detail. Once the week's scorecard shows a green check, the rest of the row unlocks; until then those buttons are disabled and their tooltips say so ("Scorecard Required for CDF DPMO upload," and the equivalent for the others).

CDF DPMO CSV takes a CSV. DVIC Report takes an XLSX — the spreadsheet, not a CSV. If your payroll provider is ADP or Paycom you'll also see an ADP Timecard or Paycom Timecard slot, both CSV; companies on Uzio or another provider have no timecard slot here. Each of these opens a confirmation first, warning you to be sure it's the file for that specific week and year, with a button reading "I'll be careful, continue to upload."

You can replace any of these later: click the green check on a finished file and confirm. VoiceERP warns you first, because replacing a CDF DPMO or DVIC file may change payouts on your incentives, and replacing a timecard reprocesses them outright.

Roster files

Which roster importer you have depends on which rostering page your company uses. Every new company starts on the Daily Operation page; companies that began on the classic Rostering page can move over when they choose.

Daily Operation page. Operations → Daily Operation has an Upload button on the grid toolbar that opens the Import roster dialog for the day you're viewing. Drop or pick a file on the Upload File tile ("CSV or Excel — drop it here"), or paste cells you copied out of a spreadsheet straight into the dialog. It reads your Cortex weekly schedule workbook, the Cortex driver itinerary workbook, the page's own CSV download, the classic template, and any templates you have saved. The Set up screen lists every column in the file next to the roster field it maps to, each marked Matched or Ignored, and you can change any of them. The same screen holds Find people by (Transporter ID, Driver full name, or Route code), a choice between Fill empty cells and Overwrite differing values, Add rows the roster doesn't have, and, when the file brings wave times without start times, the start-time rule: One time for everyone, Minutes before each wave, or A time per wave. A file the dialog already recognizes skips straight to Review, which shows the file as a sheet with every change it will make. Drivers the file names who aren't in VoiceERP yet get a Register button right in their row, and a name it can't place gets a driver picker there too. Apply writes the rows and tells you how many, for example "36 rows written to Thursday."

Classic Rostering page. Operations → Rostering has an Upload button next to a Template download. It accepts three different things: a CSV matching that template, your weekly Cortex schedule, or the Cortex DA operations file (both Excel files). Anything else gets "Unsupported file format. Please upload a CSV or XLSX file."

A CSV must have a driver column; without it you'll see "The CSV file is missing the driver column". Columns VoiceERP doesn't recognize are ignored, and it tells you which ones. If you're on an older template you'll get a nudge to download the current one.

The weekly Cortex schedule is checked against the day you're rostering, so a schedule with no column for that date is rejected with a message naming the date it wanted. When it imports cleanly, a Wave Time Adjustment dialog asks how to set start times relative to wave times: one fixed time for everyone, a set number of minutes before each wave, or a different time per wave. The DA operations file skips both the date check and that dialog and imports directly. Drivers in either file who aren't in VoiceERP yet are created for you, and you're told how many.

Driver list uploads

Settings → Drivers has Upload Drivers from CSV File. It asks which kind of CSV you're handing it:

  • VoiceERP CSV Template — the driver list itself: first and last name, transporter ID, phone number, status, language, and hourly rate and payroll ID if payroll is switched on. Download all drivers on the same page gives you exactly this shape, so exporting, editing, and re-uploading is the easiest way to bulk-edit your roster. One catch: when payroll is switched on, the upload requires the hourly rate and payroll ID columns, and the export only includes them for users with Payroll access, so have someone with that access do the export.

  • Payroll — pairs payroll IDs, hourly rates, and personal phone numbers to drivers you already have.

  • Netradyne — a list of Netradyne driver names, so safety events land on the right person.

All three are CSV.

Negative feedback reports

The Quality page (and the AI Actions page) has Upload Negative Feedback Report, a CSV of customer complaints keyed by tracking ID. After upload you get a review screen listing each complaint and the driver it belongs to, where you choose who gets a coaching message.

Attachments and documents

Uploads attached to a record — incident documents, driver HR documents, vehicle reminder paperwork — are far less fussy. They accept everyday documents (PDF, Word, Excel, PowerPoint, text, CSV), images (JPG, PNG, GIF, WEBP, HEIC, SVG), audio and video, and archives such as ZIP.

When an upload is rejected

Almost every rejection is one of three things. Wrong week: the file is for a different week than the row you dropped it on, or its dates fall outside that week entirely ("At least one shift must be between the week bounds"). Missing columns: the file names the columns it expected, so compare it against the template or re-export from the source. Bad rows: a message like "One or more rows is missing a value for column X," or a note about an invalid date, hours, duration, phone number, or hourly rate. In every case the fix is in the file, not in VoiceERP — correct it and upload again.

Files that name drivers by something VoiceERP doesn't recognize send you to a matching screen first; the companion article on driver matching covers that step.

After the upload

You'll always get a confirmation message. Scorecards process in the background — the icon spins, then turns into a green check, and you're free to leave the page; a red error icon means processing failed and the file needs uploading again. The other weekly files are read in the browser and saved as soon as you've confirmed any driver matches, with a message naming the week that succeeded.

From there the data flows on its own: scorecard numbers into driver performance and incentives, CDF DPMO and DVIC into incentive scoring, timecards into incentives and payroll file preparation on Payouts, roster entries into the day's roster grid.

Did this answer your question?