Clicking through unit dialogs one at a time is not an audit. Wialon Auditor pulls the configuration of every unit in the account into a single Google Sheet, where it can be sorted, filtered, compared, and shared. It is one open-source Apps Script file, MIT-licensed and free to use.
Why the web UI falls short for audits
Wialon’s web interface is built for operating a fleet day to day, not for reviewing its configuration at scale. Unit properties sit behind a modal dialog: open a unit, click through the tabs — general, sensors, custom fields, eco-driving — close it, open the next one. For ten units this is tedious. For five hundred it is a week of clicking, and the result still lives in someone’s head instead of a document.
The questions a real audit asks are comparative by nature. Which units have no IMEI or phone number filled in? Which fuel sensors lack a calibration table? Where do eco-driving penalty weights differ between two vehicles that should be configured identically? The web UI cannot answer these, because it shows one unit at a time and offers no way to line configurations up side by side.
Audits also come around more often than expected: onboarding a new customer account, merging fleets after an acquisition, a hygiene check before the busy season starts. Each one repeats the same manual routine. The fix is not more discipline — it is getting the data out of the UI and into a tool built for comparison.
What ends up in the spreadsheet
Wialon Auditor is a single Google Apps Script file — WialonAuditor.gs, about 1,700 lines with no dependencies — that turns any Google Sheet into an audit console for a Wialon account. After a one-time OAuth login, the Wialon Tools menu fetches account data into seven tabs, each flat enough to sort and filter with standard spreadsheet tools. The tool is free, MIT-licensed, and tested on fleets with more than 10,000 units.
Two extras make the data easier to work with. The QUERYUNIT formula — =QUERYUNIT(“Vehicle name”) or =QUERYUNIT(“Vehicle name”, “sensors”) — pulls one unit’s data into any cell, and an optional Filter sheet shows everything known about a selected unit in a single view, which is handy for support cases. When the audit is done, Export as JSON saves the full dataset to Google Drive for archiving or further processing.
- units — general properties, IMEI, phone number, counters, trip detector, and fuel settings.
- hardware — device type info and every hardware parameter as key-value pairs.
- sensors — names, types, parameters, calibration tables, and validation rules.
- commands — configured commands with link types and parameters.
- profiles — VIN, plate, brand, model, engine, and dimensions.
- custom_fields — user and admin fields, where naming drift usually hides.
- drive_rank — eco-driving criteria: acceleration, braking, turning, speeding, and their weights.
Set up in five minutes
The requirements are a Google account, a Wialon account with API access, and one copy-paste. The script authenticates through Wialon OAuth, and OAuth needs a callback URL, which is why the project is deployed as a web app rather than left as a plain script.
- Create a new spreadsheet, open Extensions, then Apps Script, delete the default Code.gs content, and paste in WialonAuditor.gs. Save the project.
- Choose Deploy, then New deployment, type Web app, with Execute as: Me and Access: Anyone. Deploy, and authorize when prompted.
- Copy the web app URL and paste it into the startOAuthLogin function where the code says PASTE WEB APP URL HERE.
- Redeploy through Manage deployments, as a new version.
- Reload the spreadsheet. A Wialon Tools menu appears next to the standard menus — choose Login and approve access in the Wialon window.
The Access: Anyone setting sounds permissive but is standard for this pattern: the web app only serves the OAuth redirect page, the spreadsheet keeps its normal sharing permissions, and the Wialon token lives in the script’s own properties rather than in the document. Tokens last 30 days — when one expires, simply log in again.
Run the audit
Fetch All pulls all seven categories in one pass with a single authorization and toast progress in the corner of the sheet. On very large fleets, Google Apps Script’s six-minute execution limit can interrupt a full pass — the fix is to fetch categories one by one, which the menu supports. The result is a workbook where every blank IMEI, every sensor without validation, and every unit with a missing phone number is one filter away instead of one dialog away.
A few checks pay off immediately. Filter the units sheet for empty IMEI or phone fields — these break support and billing workflows downstream. Sort sensors by type and look for fuel sensors with no calibration table — their readings are decoration, not data. Compare drive_rank rows across units that should be scored identically — diverging criteria make driver league tables unfair. Scan custom_fields for the same concept spelled three different ways — naming drift is what makes account-wide reporting painful later.
Because everything is a normal spreadsheet, findings are easy to share: filter down to the problematic rows, send the sheet to the account owner, and agree on fixes without screen-sharing the Wialon UI.
Catch configuration drift with snapshots
Configuration is not static. Units get added, sensors get recalibrated, someone tweaks eco-driving weights before a driver safety campaign and forgets to tell anyone. Save Snapshot stores the current dataset as a baseline; days or weeks later, Compare with Snapshot diffs the live configuration against that baseline and color-codes the result: green for added, red for removed, yellow for modified.
This turns the tool from a one-off audit into a lightweight change-detection routine. A monthly fetch-and-compare answers the question every fleet platform owner eventually asks after something breaks — what changed? — in minutes, without digging through logs or relying on memory.
How it works under the hood
The whole tool is one file with no dependencies, written against the Wialon Remote API. Every call it makes is a read — core/search_items, core/batch, core/get_hw_types, unit/get_drive_rank_settings, and unit/update_hw_params with action set to get, which despite its name returns hardware parameters rather than changing them. Authentication goes through the OAuth flow into token/login. Units load via core/search_items in batches of 1,000, with an automatic fallback to 200-item pages when an account’s responses demand it. Unit-specific data — hardware parameters, eco-driving settings — is fetched through core/batch calls fanned out over UrlFetchApp.fetchAll, ten parallel batches of a hundred requests each, which is what keeps a 10,000-unit fleet inside the Apps Script time budget.
Sheet writes go in 500-row chunks with automatic fallback to smaller batches and then to single rows, because one giant setValues call is the other reliable way to hit platform limits. To point the tool at Wialon Local or a different hosting environment, change the WIALON_HOST constant at the top of the file.
Two practical notes from testing on large accounts. First, the six-minute per-execution ceiling is real, so the heaviest fetches are the most parallelized — and above a few thousand units, Fetch All gives way to fetching categories separately. Second, every fetch is idempotent: re-running it overwrites the sheet, so a failed pass costs nothing but a menu click.
When a spreadsheet is enough — and when it is not
Wialon Auditor answers configuration questions: what is set, where, and whether it is consistent. That covers account audits, onboarding reviews, pre-sale inspections of a customer’s account, and change tracking. It deliberately does not touch telemetry — messages, trips, sensor history — because a spreadsheet is the wrong tool for millions of rows of time-series data.
When the questions shift from configuration to history — what the fleet actually did last year, how fuel trends compare across regions, what the data looks like joined against ERP records — the answer is an extraction pipeline into a database. That is the problem our FleetSQL product solves, and the fleetsql.app blog covers the extraction mechanics and Wialon API limits in detail. Start with the spreadsheet to learn what is in the account; graduate to the pipeline when the questions outgrow it.
The tool is on GitHub at theassettrack/wialon-auditor — MIT-licensed, issues and pull requests welcome. If you are building against the Remote API yourself, our Wialon API reference covers the error codes, quotas and token scopes this script works within.


