Create, edit, deactivate and assign roles. Customer role = customer-portal login: choose role Customer and link the user to a Customers record (billing identity).
Name
Email
Role
Portal customer
Timezone
Unit
Status
Last Login
Created
Roles & Permissions
Read-only - role structure is defined in the database
Company Information
Billing clients and frequent shippers
Notification emails
Extra addresses for dispatcher alerts (e.g. driver rejected assignment), in addition to active admin, dispatcher, and order-taker user accounts. Sent via server SMTP.
Email
Label
Status
Company
Account #
Contact
Email
City
Credit Limit
Terms
Status
Expiry
Days left
Customer Directory
Individuals and businesses who ship or receive deliveries
Delivered orders awaiting invoicing. Group by customer and generate invoices.
0 orders selectedTotal: $0.00
Order #
Pickup Contact
Delivery Contact
Route
Date
Date P/Up
Date Del
Amount
Service
Invoices
Create, send and track customer invoices
Invoice #
Customer
Status
Total
Due
Due Date
Created
Item Types
Manage package and item types available on orders
Label
Key
Status
Tax Types
Define tax rates; assign them on each customer. On orders, each assigned tax is calculated as that percentage of the pre-tax subtotal, then summed into the order total.
Name
Rate %
Description
Status
Vehicle pricing
Base rates by vehicle type and service level (columns follow Service Levels). All prices in CAD.
Vehicle Type
Each cell shows base price + per-zone-crossing rate. Click Edit to modify rates, fuel surcharge, tax, and minimum charge.
If columns such as Nonstop or Next day show --, use Repair matrix once to create missing rule rows.
Service Levels
Rush, Standard, Economy -- each with an SLA time limit
Name
Description
SLA (Hours)
% charge when selected
Flat additional
Sort
Status
Hybrid Pricing
Company defaults: flat allowances and excess charges (distance, skids, weight, optional wait minutes) combine with standard pricing. Insurance % applies to the order total when Insurance is selected. Per-customer overrides: Customers → Customer pricing. Run migration-052-hybrid-wait-minutes.sql if wait columns are missing.
Hybrid pricing tables are not installed. Run api/scripts/migration-051-hybrid-pricing-customer-service-levels.sql on the database, then migration-052-hybrid-wait-minutes.sql for wait allowances, then reload this page.
Value
Value
Invoice Administration
All invoices across all companies
Total Invoiced
-
Outstanding
-
Overdue
-
Paid This Month
-
Invoice #
Company
Date
Due
Total
Paid
Balance
Status
By
General Accounting
Accounts receivable, banking, fleet assets, and driver payout totals from delivered orders (separate from order Vehicle pricing).
Collections info
—
Payment due
—
Last payment
—
1–30 days
—
31–60 days
—
61–90 days
—
90+ days
—
Total paid
—
Net · collections info
—
Net · payment due
—
Net · last payment
—
Net · 1–30 days
—
Net · 31–60 days
—
Net · 61–90 days
—
Net · 90+ days
—
Net · total paid
—
Open invoices
Invoice #
Customer
Due
Due amount
Days past due
Collection notes & follow-ups
Open follow-ups across invoices. Mark cleared when resolved.
Invoice
Follow-up
Note
Created
Bank accounts
Register
Running balance: -
Date
Type
Memo
Amount
Unit
Plate
VIN
Make / model
Year
Purchase
Cost
Depr %
Current value
Status
Assigned driver
Totals use delivered orders in the date range and each driver’s pay fields in Driver Management (per-trip % / flat, per-distance $ / %, or legacy payout type).
Add lines with a barcode (GS1, QR payload as text, or internal code) and optional order link. While the manifest is DRAFT, staff pick and pack in Orders → Warehousing. Move to PENDING_DISPATCH when that route is staged for the dock; then drivers load and deplete.
Manifest
Status
Lines
Linked orders
WMS ref
Created
Inventory reconciliation (simple)
Compares warehouse scan activity to delivered orders in a date range. Investigate large gaps (e.g. many scans vs few deliveries).
—
Split inbound load → outbound routes
When one inbound load feeds several outbound vans, open Split… on that manifest in the table above, select the lines for the first route, and confirm. The selected lines move to a new manifest; repeat for each van. Works while the manifest is DRAFT or Pending dispatch.
Receiving & inventory
Inbound receipts, scan-to-staging, put-away to bins, and on-hand by location. Floor staff normally use Operations → Receiving; Admin is for setup and oversight.
Locations (bins / aisles)
Each row is a bin the floor can put stock into. Seeded: STAGING (receive dock), BULK-01, PICK, DOCK. Use New location for every real rack slot (type STORAGE); the code is what operators select or scan in Operations → Receiving.
Code
Label
Type
Default recv
Default pick
Receipts
#
Status
Ref
Lines
Recv/exp
On-hand inventory
Location
Type
Barcode
Qty
Updated
Reports & Export
Full-access reporting with CSV export
Reports by screen
Jump to any Admin page and open Report (desktop, bottom-right) to choose columns and dates. Use the buttons below to go straight there with summary (KPIs) or detail (table) mode.
Top Zone Pairs by Revenue
Region
Pickup Zone
Delivery Zone
Orders
Crossings
Avg Distance
Revenue
Driver Performance
Driver
Deliveries
Revenue
Avg Distance
Avg Crossings
Failures
Rate
Application Settings
Global configuration - changes take effect immediately
General
Dispatch & GPS
Billing & Invoicing
Audit Log
Online log lists users with recent activity (tracked per login session). The grid below reads from audit_log: timestamp, action (INSERT/UPDATE/DELETE), table name, record id, user, and short before/after snapshots.
Online logUsername, name, company (portal customers), login time, and session length. One row per active session; idle cutoff is configured on the API (ONLINE_SESSION_IDLE_MINUTES, default 15). Users must sign in again after the session table is added.
Username
Full name
Company
Login time
Total online time
When
Action
Table
Record ID
Changed By
What changed
Notification Log
SMS, email and push notification history
When
Channel
Order
Recipient
Subject / Preview
Status
Ext ID
System Health
API server, database, WebSocket, and integration status
GPS Location History (Last 50 Pings)
Driver
Latitude
Longitude
Accuracy
When
Migrate Company
Bulk import customers, users, catalog, pricing, drivers, and historical orders from another delivery system (JSON package).
How it works
In SBSDispatch, every customer record is the billing identity; users sit one level below and link to a customer when the role is Customer (portal).
Map your legacy IDs with string external_key fields, then reference them from other rows (for example customer_external_key on users and orders).
Use Preview first (dry run). Checkboxes let you skip datasets you are not ready to import or relax validation when the source system omitted fields.
Skip or relax validation
Migration package (JSON)
Load a file or paste JSON. Keys: meta, companies, tax_types, service_levels, vehicle_types, item_types, pricing_rules, customers, users, drivers, orders.
Result
Run Preview to see validation output.
Split manifest to new route
Choose lines for one outbound vehicle. They move to a new manifest; unselected lines stay here. Pick/pack can happen before or after split.
✓
Line
Barcode
Order
Status
Warehouse Lite & Receiving
Use Receiving in the sidebar for truck-in: receipts, scan-to-staging, and put-away to bins (real on-hand inventory). Then use manifests here for outbound. Small warehouse mode: pick → pack → dock → driver load/deplete; Split… for multi-route; Enterprise: external WMS can push pre-packed lines.
New User
This user is already linked to a customer record. The link cannot be changed here — create a new user if you need a different customer.
Customer role users must be linked to a customer account. Create customer first if needed.
New Company
Address
Company Logo
This is the logo currently shown across dispatcher, customer portal, and tracking.
Current
Recommended: square image, min 200×200px. Choose a file below to replace the logo everywhere.
Billing
Rates
Validity
Add Driver
SMS Dispatch
Account
Driver Details
Vehicle
Payout Settings
Driver pay (per delivered order)
New Region
Bounding Box
Zone crossing
Match either zone names from the dispatcher map (after geocode) or both city match fields to the typed pickup/delivery cities. Tiered amounts apply when item type is Skid.
Tiered skid pricing
Try quantity (not saved)
Same math as SCPpricing.xlsx columns K–N: 1 skid = 1st; 2 = 1st+2nd; 3–12 = 1st+2nd + quantity×(3–12 rate); 13–15 adds twelve at the 3–12 rate then each extra at the 13–15 rate; at “full load at qty” the total caps at full load price.
Legacy C–F (if 1st skid is empty)
New Customer
Portal login (for this customer to sign in at the customer portal): go to Users → All Users, New User, role Customer, then choose this customer under Link to Customer. Edit the same user there to change email, password, or which customer they’re linked to.
Address
The company this customer rolls up under for invoicing, portal access, and default surcharge or billing terms. Leave empty for a standalone customer.
Customer values here override the linked company’s defaults. Edits to pricing or surcharges made only during order entry apply to that order only and are not saved to this profile.
Surcharge Profile
Hybrid — insurance & appointment
Effective defaults for new orders (inherits company hybrid until you save here). Use % or flat $ per side. Uncheck Auto-apply so the fee is not pre-selected when placing an order.
Insurance
Appointment
Tax types
Check each tax that applies to this customer. Rates are defined under Tax Types; each is applied as a percentage of the order pre-tax subtotal.
SMS notifications
When checked, messages go to this customer’s phone (Twilio must be configured on the server).
Override company hybrid allowances and service-level surcharges for this customer only. Empty hybrid fields on save are omitted; use Clear hybrid overrides in that dialog to fully revert hybrid to company defaults.
Customer Pricing
Run migrations migration-051-hybrid-pricing-customer-service-levels.sql and migration-052-hybrid-wait-minutes.sql to enable this dialog.
Hybrid overrides (effective values shown — save to store customer-specific numbers)
Insurance
Appointment
Service levels (company row until you edit — then this customer uses the saved copy)
Name
Key
% when selected
Flat add
Edit service level for customer
Customer Orders
Order #
Status
Route
Service
Total
Date
New Service Level
User Permissions
Edit Vehicle type
Leave blank for the default (e.g. max 500kg). Use {kg} where the numeric limit should appear.
Shown on each active order for drivers. Leave blank for Weight (kg).
Edit Pricing Rule
New Invoice
Line Items
Subtotal: $0.00
Tax: $0.00
Total: $0.00
Invoice
Record payment
Optional: creates a matching deposit line in General Accounting → Banking.
Invoice Preview
Billed To
Invoice Details
Invoice DateDue DateReferenceNotes
Line Items
Description
Order #
Price
Disc%
Tax%
Total
Invoice-Level Discount
%$ fixed
Subtotal$0.00
Discount-$0.00
Tax$0.00
Total$0.00
New Tax Type
Taxes:
Select which taxes apply to this customer. Multiple taxes are applied independently and never on top of each other.
New Item Type
Bank account
Fleet vehicle
Collection note
Report
Detail mode uses the main table on this page—toggle columns below. PDF uses your browser print dialog (save as PDF). Dates and notes appear in the report header.