SpanOPS user manual

SpanOPS is Unified Asset Operations: signed tags on everything you own, scanned on a PC, a phone or a Station, with every move, hand-over, count, repair and disposal recorded in a trail that cannot be rewritten. This manual covers the customer portal at portal.spanops.app, the SpanOPS Station printing app, the field-operations modules (counts, reconciliation, custody, disposals) and the service portal used by SpanOPS staff.

Version: server 1.6 · Station 1.2 · October 2026

1. Getting started

1.1 Create your organisation

  1. Open https://spanops.app and choose Start free trial (or go straight to https://portal.spanops.app/#/signup).
  2. Enter the organisation's name, your name, your work e-mail and a password of at least 10 characters.
  3. Accept the terms and the privacy notice. The date and version of your consent are recorded on your account.
  4. You are signed in as the organisation's Owner. A trial starts at once: no card is needed.

Every organisation starts with an IT department (you are in it) and a General department, a set of category presets, a default label template and the trial allowance (seats and tag capacity, see Billing).

1.2 Sign in, sign out

1.3 Your account

Your account (your name at the top right) holds:

1.4 Light, dark or automatic

The sun / half-moon / moon buttons in the header set the theme for this browser. Automatic follows the device.

1.5 Working with tables

Every list in SpanOPS is the same kind of table:

On a desktop the pages use the whole width of the screen; on a phone the tables scroll sideways and the navigation becomes one scrolling row.


2. Everyday work

The pages you see depend on your role (see Reference). An operator sees Scan, Dashboard, Count, Exceptions, Custody, Disposals, Bulk add, Assets, Batches, Groups, Sites, Reports and Support.

2.1 Scan

Scan is the home page. Point a USB scanner at a sticker's QR, use a phone camera, or type the 12-character quick code printed on the sticker and press Enter. SpanOPS answers one of:

Your last scans are listed under the box so you can go back to them.

2.2 Enrol an asset

Scan a fresh tag, then fill in:

Bulk add enrols many tags at once: choose site and room, then add batches by category with a UPC, a name and the scanned codes (and serial numbers) of each item. The review step reports anything wrong by position before anything is saved.

2.3 Asset card and history

Open any asset from Scan, Assets or a link. The card shows location or holder, group, lifecycle (warranty status, book value, maintenance due), classification and FATS status, identifiers, custodian, and every action you may take. The history lists each event with who, when and from where. Nothing in the history can be edited or deleted.

2.4 Moving things

Action What it means Who
Move The asset is now in this site/room (it stays "at a place") Operators (asset.move)
Take You now hold it; it leaves the place (or the previous holder: that is recorded as a hand-over from them) Operators, edge users
Hand over / Transfer From you to another person, with a note Operators, edge users
Put down / Release From you back to a site and room Operators
Record hand-over For someone without a phone: from a holder or a place to a person or a place Operators (possession.record)

Everything is one event in the trail. A person can only hand over what they hold.

2.5 Groups

A group is a set of assets that move together (a trolley, a kit, a crate). Make a group from assets or from a product batch; then move, take, hand over, release the whole group at once. Dissolving a group leaves the assets where they are.

2.6 Consumables and tools

2.7 Maintenance and inspections

Managers record maintenance, inspection, calibration or repair on an asset with vendor, cost, outcome and a note. The next due date follows the asset's (or category's) interval. Reports → Maintenance lists what is due, overdue and under warranty, with totals per category.

2.8 Reports

Reports are built from the trail, for a site or everywhere, as Excel, PDF or CSV:

Viewers and managers may download reports; operators the daily report; edge users none.

2.9 Notifications

The bell shows notices meant for you: site requests decided, exceptions assigned, hand-overs, tickets answered. If your organisation's IT department has set up e-mail or WhatsApp channels (3.7), the same notices reach you there.


3. Administration

Admin is for Owners and IT managers (and IT staff for people management, managers for their teams). Its tabs: People · Departments & teams · Sites · Site requests · Categories · Print · Audit log · Notifications · Organisation · Billing.

3.1 People and roles

Add a person with name, work e-mail, roles, and optionally department, team, title and phone. Without e-mail delivery, SpanOPS shows a one-time password to hand over in person; the person must change it at first sign-in. With e-mail set up, an invitation link is sent instead.

Roles (a person may hold several):

Role Purpose
Owner Everything, including billing and making other owners
IT manager People, departments and teams, sites, categories, printing, audit log, notification channels
IT staff Create people, reset passwords and 2FA, unlock accounts
Manager Manages the people of the teams they manage (and their permissions); maintenance, discards, stock and usage reports; counts, exceptions, custodians, registers, QA, disposals
Operator Everyday asset work: enrol, move, take, hand over, groups, consumables, tools, counting, custody
Edge user Scan, take, hand over, consume, check tools in: nothing else
Viewer Read-only: dashboard, registers, exports, reports. Does not take a seat
Approver The client's decision maker: approves exceptions and disposals, accepts facilities. Viewer rights included
Station Prints tags on SpanOPS Station; no asset work. Does not take a seat
Station administrator Also sets up printers in Station

Per person, whoever manages them can tick or untick individual permissions (the "can" list) and restrict them to particular sites and categories (scopes). An org-wide manager (toggle on an IT manager's or owner's say-so) may manage other managers too.

Per person actions: Edit (name, e-mail, roles), Reset password (one-time password or link), Reset 2FA (signs them out everywhere), Unlock, Suspend / Restore, Revoke, End sessions, and Anonymise for a suspended or revoked former user (8.3).

3.2 Departments and teams

Every organisation has an IT department (runs user management) and a General department; add your own (Biomedical, Stores, Facilities …) with a short code. Each department has teams; each team has managers (people with the Manager role). People are placed in a department and a team, with a title and phone.

A department also carries its printing defaults (4.3) and, through the IT department, the organisation's settings.

3.3 Sites, rooms and geofences

A site is a facility: name, short code, address, map position. Geofencing (radius 20 m to 20 km) means a change at that site is only accepted from a device located there. Rooms divide a site; each room has a building, floor, zone, a kind (room, zone, bin, staging, quarantine, repair, disposal holding) and a code. Sites also carry a region, a kind (school, warehouse, HQ …), a priority (1 or 2) and the client's own facility reference, which counts and dashboards use.

Operators may request a site; IT managers approve or reject (the requester is told).

Final barcode series (on the Sites tab): a prefix and width, from which assets receive their final numbers (4.1).

3.4 Categories

A category decides how an item is tracked. Start from the presets (movable asset, fixed asset, tool, consumable by count, consumable by quantity, IT asset, document, vehicle, clinical equipment …) or create your own; set the depreciation life, the maintenance interval, a default MoF/accounting class (capital, controlled, inventory, consumable) and, if useful, a department the category belongs to and a parent category (subcategories).

3.5 Print: label templates

See Labels and printing.

3.6 Audit log

Everything administrators and the system did to accounts and settings: who, when, from which address, with the detail. Filter by date and text; export as Excel.

3.7 Notification channels

The IT department can connect the organisation's own SMTP mailbox and WhatsApp Business (Meta Cloud API) number. Secrets are stored sealed and never shown again. Choose which events go out. Custody acknowledgement links are sent through these channels.

3.8 Organisation

Name, GSTIN and address (shown on invoices; stored encrypted), and, for owners, Close the organisation (8.4).


4. Labels and printing

4.1 What a label can carry

A SpanOPS tag is a signed code: a QR (or Data Matrix) that any SpanOPS can verify offline as genuine and yours. A sticker may also carry:

4.2 Templates (Admin → Print)

A label template is the sticker's design: size in millimetres, how many labels sit across the stock, gaps, the printer language, resolution, darkness, logo, and the list of elements with positions. Start from a preset:

Preset For
QR + quick code (50 × 25, two across) The standard SpanOPS sticker
QR only Teams that never type codes
QR + name + quick code Readable labels for equipment
Code 128 only Barcode scanners; checked online
Code 128 of the final number Registers that know only your asset number
QR + Code 128 of the final number (75 × 50) Both scanners and registers on one sticker
Small 38 × 19 Small equipment
Large 100 × 50 Furniture, beds, machines
A4 sheet 3 × 8 (70 × 36) Laser / inkjet printers and self-adhesive sheets

Edit anything: add, move, resize or remove elements, pick fonts, alignment, two-line codes, change the printer language (ZPL for Zebra, TVS, Honeywell and most label printers; TSPL for TSC and Xprinter; EPL for older Zebra/Eltron; PNG through the driver for anything CUPS or Windows can print; PDF sheets for office printers). Refresh preview shows the sticker exactly as the server will render it. Test file downloads a one-row test print. One template is the organisation default; departments may choose another.

2D codes always carry the full signed code; 1D barcodes carry the quick code or the final number and are checked online.

4.3 Printing defaults per department

Under Departments & teams → Printing defaults: the department's template, copies per code (1, 2 or 3), the printer Station should use, and whether each Station may change these for itself. Station follows the department of the person signed in.

4.4 What Station keeps locally

Only fine-tuning for the printer at hand: shift right/down in mm, scale, row gap, darkness. The content of the label always comes from the portal.


5. SpanOPS Station

Station is the printing app for Linux (Ubuntu 22.04+, Debian 12+, Zorin) and Windows. It signs in with your SpanOPS account (role Station; Station administrator to set up printers).

5.1 Install

Download the package from https://spanops.app/downloads; check the SHA-256 shown there; install with sudo apt install ./spanops-station_<version>_all.deb. Station checks for updates and offers them in the app.

5.2 Sign in

Enter your SpanOPS e-mail and password (and the 2FA code if you use one). Station keeps a refresh token in the system keyring; the server's tag-signing keys are pinned on first use so a tampered server is noticed.

5.3 Printers

Station lists the label printers CUPS knows. A Station administrator can add a printer on the network (IP) or USB with the raw label driver; Station checks the printer (status, media) before each job. Save as PDF is always available: the rows are written to a PDF in your home folder instead.

5.4 Print new tags

Choose how many codes (up to 200 per batch), copies per code, the printer, and (if your department allows) the template. The preview shows the template with sample codes. Generate and print: the server issues the codes, renders the stickers and Station sends them to the printer, then watches the printer until the job is through and asks you to confirm every row came out. The batch and its print job are recorded.

5.5 Reprints

From Batches, reprint a whole batch or a range (for a jammed row). Within two hours of the first print the codes are released at once; later, Station asks for your password and 2FA code (a step-up bound to this one job), so a reprint cannot be made quietly.

5.6 Fine-tuning

Fine-tuning for this printer: shift right/down (mm), scale, gap between rows, darkness. Saved on this computer only.


6. Field operations

These modules run large counts and audits: the kind of work a ministry, a hospital network or a multi-site company does when it verifies every asset, replaces legacy barcodes, reconciles against its register and proves the result.

6.1 Locations for counting

Give every site its region, kind, priority and client reference, and every room its building, floor, zone, kind and code (3.3). Dashboards, exports and completion packs use this hierarchy.

6.2 Identifiers and barcode unification

An asset may carry several identifiers besides its SpanOPS tag: a legacy barcode, an ESE tag, a FATS id, a serial, an RFID EPC, and the final barcode of your institution. Add them on the asset card; Assign final barcode takes the next number from a series and marks the legacy identifiers replaced, with the history kept. Scanning any active identifier (in Scan or in a count) finds the asset. The barcode cross-reference export lists every identifier, its status and what replaced it.

6.3 Custodians and custody

Custodians are the people (or accountable units for common-area assets) responsible for assets; they need no SpanOPS account. Record name, employee id, unit, e-mail and phone (stored encrypted). Assign custody from the asset card; the custodian acknowledges:

Returns and transfers are recorded with condition. The Custody page lists custodians, assignments and the custody exception register: controlled items with nobody accountable, assignments unconfirmed for over three days, disputed custody, assets not where their custody says, custodians who left (every asset they held opens an exception).

6.4 Registers to reconcile against

Import your FATS / ERP / legacy register (XLSX or CSV) under Count → Import: name the columns (identifier, description, site reference, serial, cost, …), run a dry run to see what would happen, then import. Rows are matched to assets by final barcode, FATS id, legacy barcode, then unique serial; a register row may also be linked by hand. Attach the register to a campaign.

6.5 Campaigns, sessions and counting

A campaign is a count (full, surprise, custody verification or IT audit) with a scope: the facilities, each with a priority, planned week and planned lines. A facility moves through planned → counting → reconciling → QA → awaiting approval → accepted, or reopened / handed over.

Counting happens in a session (facility, shift, counters, device). The counter scans or types any identifier, chooses the room, condition, method (barcode, RFID, typed), the custodian present and a photo. Each line is matched at once:

Result Meaning
matched The asset is known and where it should be
found not recorded Nothing is known about this identifier: an exception
duplicate Already counted in this campaign: an exception
invalid tag A forged or foreign SpanOPS code: an exception
wrong location On record at another facility or room: an exception
wrong custodian Another custodian than recorded: an exception
condition changed The condition differs from the record
inventory An inventory line (item, batch, expiry, usable / reserved / quarantined / damaged quantities)

Offline: lines recorded without a connection wait in the browser and sync when it returns (each only once). When a facility goes to reconciling, every register row and asset on record there that was not counted becomes a recorded not found exception.

6.6 Exceptions register

Every discrepancy is an exception with a number, type, severity (minor, major, material), facility, asset, evidence, owner, root cause, recommended action, due date (five business days by your calendar), and a trail of notes and status changes: open → under review → awaiting approval → approved / rejected → closed. Material incidents (lost, stolen, damaged, misused) need the client's approval and notify administrators for the 24-hour notice. Only an Approver approves (with a reference); an approval may be marked accepted on alternative evidence, which the reports count separately from physically verified items. Overdue exceptions are escalated nightly. The register exports as Excel for the weekly review.

6.7 QA samples and acceptance

A manager with qa.review draws a QA sample at a facility (random, or risk-based: controlled items and lines with exceptions first), reviews each line and records pass or fail; failed lines become exceptions and the facility goes back to counting. Acceptance (an Approver) is only possible when no major or material exception is open, every controlled item has a custodian and QA passed; it freezes the baseline (totals by class and result), and later changes are shown separately from it. The completion pack (PDF) carries the baseline, sessions, QA, exceptions and a sign-off line.

6.8 Disposals

Recommend a disposal (damaged, surplus, obsolete, expired, non-moving, uneconomical) with a recommendation (redeploy, transfer, repair, reuse, sale, auction, recycle, destroy), valuation, evidence and the room it is segregated to. An open investigation on the asset puts the disposal on hold automatically. Only an Approver approves or rejects; collected and closed follow, and closing retires the asset. Nothing is disposed of on the service provider's authority.

6.9 Dashboard and exports

Dashboard (refreshes every minute): facilities by status, lines counted against the plan by week, regions, results by class, first-pass accuracy, registration accuracy (from QA), barcode accuracy, exception closure on time, exceptions by age, custody and disposal queues, productivity (lines per counter-hour) and a forecast, and the frozen totals of accepted facilities. Exports: FATS registration file, exception register, barcode cross-reference, custody register, disposal register, completion pack. Every figure comes from the same records as the exports.


7. Billing

SpanOPS is priced per seat plus capacity:

Who takes a seat: every active person except read-only Viewers and Station-only accounts. Tag capacity is the number of tags issued. A trial has an allowance of seats and tags; after it, changes are paused until a subscription is active (reading and reports keep working). Owners subscribe under Admin → Billing (Razorpay; we never see card details), change seats or packs at any time (the difference is settled at the next charge), cancel at the end of the paid period, and see invoices there.


8. Security, privacy and your data

8.1 How SpanOPS protects data

8.2 Your rights (DPDP)

Under India's Digital Personal Data Protection Act, 2023: you may see your data (Download my data), correct it (your name yourself; the rest through your IT department), and ask for erasure (your organisation's administrators can anonymise a former user's account; an owner can close the organisation). The grievance officer is named in the privacy notice and on your account page.

8.3 Anonymising a former user

Suspend or revoke the account, then Anonymise: name, e-mail, phone and secrets are replaced for good; what they did stays in the trail as "Former user".

8.4 Closing the organisation

Admin → Organisation → Close the organisation (owner; password and the organisation's name to confirm). Everyone is signed out at once and nobody can sign in. Personal data, assets and events are erased after the retention period (90 days by default); tag codes stay verifiable for life (they carry no personal data) and invoices are kept as tax law requires.


9. Support

Support in the portal opens a ticket (technical, account or billing; priority low to urgent). SpanOPS staff answer there; you get a notification, can reply, and close the ticket (or reopen it by replying). Support can also be reached at the address shown on the sign-in page.


10. Service portal (SpanOPS staff)

Sanrad staff sign in at https://service.spanops.app with Sanrad Identity. Roles:

Role May
Service Engineer Attend the tickets assigned to them; act on a customer organisation only while a ticket (or a time-limited grant) gives access
Service Administrator Receive tickets, assign them, attend them; technical actions on organisations (password and 2FA resets, unlocks, roles)
Relationship Manager Everything financial: trials, complimentary time, plans and prices, organisation status, seats and tag limits (for Enterprise), invoices and billing events
Super Administrator All of the above, staff roles, simple system settings
System Administrator Everything, including advanced settings

Pages: Tickets, Organisations (account, entitlements, people, subscriptions, invoices, activity, tickets, grants), Plans (create at Razorpay, edit, retire), Billing events (webhooks), Staff, Settings (sign-up open, trial length and allowance, support and sales addresses, grievance officer, grace days, retention), Audit.


11. Reference

11.1 Permissions

Permission Meaning
tag.enroll · tag.data Enrol tags; enter and edit asset details
asset.move · possession.take · possession.release · possession.transfer · possession.record Movement and custody of assets
group.manage Groups
material.consume · tool.checkout · tool.checkin · asset.discard Consumables, tools, discards
maintenance.manage Maintenance records
site.request · room.manage Request sites; rooms
report.daily · report.stock · report.usage Reports
count.record · custody.record Count lines; hand assets to custodians
campaign.manage · exception.manage · custody.manage · register.import · qa.review · disposal.recommend Field operations (managers)
exception.approve · facility.accept · disposal.approve Client decisions (Approver)
dashboard.view Dashboard and exports
people.manage · team.manage · admin.users · admin.sites · admin.categories · admin.print · audit.view · settings.notifications · department.manage Administration

11.2 Statuses

11.3 Files SpanOPS produces

Excel (.xlsx), PDF and CSV reports; the FATS registration file; exception, cross-reference, custody and disposal registers; completion packs (PDF); label test files (.zpl, .tspl, .epl, .png, .pdf); your data export (JSON); the audit log (Excel).


12. Troubleshooting

Symptom What to do
"Not on record" for a sticker you printed The tag belongs to another organisation, or the sticker was never issued here. Check the batch under Batches.
"Your organisation's trial has ended, so changes are paused" An owner subscribes under Admin → Billing (reading still works).
"Your organisation has N seats and all are in use" Add seats under Billing, or remove people. Viewers and Station accounts are free.
"Tag capacity is full" when printing Add seats or a capacity pack.
Account locked Wait 15 minutes or ask an administrator to unlock.
Lost your authenticator Use a recovery code; or an administrator resets 2FA (you are signed out everywhere).
Station: printer not found Station setup (Station administrator): add the printer by IP or USB; check the raw driver; check media.
Station: label prints shifted or small Fine-tuning: shift and scale for this printer. The design itself is changed in the portal.
Count line queued offline It syncs when the network returns; Sync queued forces it.
Custodian never acknowledged The Custody page lists unconfirmed assignments; enter the code in person or resend.
A reprint asks for password and 2FA More than two hours passed since the first print; that is the step-up rule.

Support: the Support page in the portal, or the address on the sign-in page.