FIRST·4·TECH User Guide
Open app →
No sections match your search.
01

The scan bar: how everything connects

Everyone

The input at the top of the screen is always ready for a scan. Every item in the building has a QR label with an ID like:

  • F4T-00123S (S = Stock): a product we hold in bulk (cables, connectors, sellable boxed units). Counted by quantity per location.
  • F4T-00124A (A = Asset): an individual tracked unit with its own serial number (loaners, tools, test kit). Tracked one by one.

Scan with the Bluetooth scanner (it types the ID and presses Enter for you) or paste/type an ID and press Enter. What happens depends on which tab you're on: on Search it opens the item's details; on the Stock Control tab it feeds whichever mode is active (check-in, check-out, count or print). On touch devices, tap the input and use the Go button.

Supplier barcodes

Products can store the supplier's box barcode (EAN/UPC); add it in the item editor (scan straight into the field). After that, scanning a box at the top bar finds the product instantly: goods-in without typing.

02

Home tab

Everyone

Staff land on Home after signing in. It gathers everything needing attention:

  • Reorder alerts and subscriptions about to renew
  • POs awaiting delivery
  • Expense claims waiting for approval, and your own open claims
  • Warranties running out in the next 60 days
  • Recent audit activity (super admins)

Click a card to jump to the owning tab. You only see the cards your permissions allow.

04

Stock Control tab

Everyone

Purpose: the daily hands-on-stock operations. Pick a mode from the rail on the left, then scan items into it. The scan box routes to whichever mode is active.

Check In

Returns an item to stock. Scan the item; confirm. Assets have their assignee cleared and location reset to the office; stock items have quantity added back at the chosen location. Use it when kit comes back from a job or a loan is returned.

Check Out

Takes an item out. Scan it, choose who/where it's going (engineer, customer, van) and confirm. Assets record the assignee and new location; stock items deduct the quantity you enter. Checking out to a customer records which company holds the unit, and that's what feeds the customer loan portal. Everything you check out is written to the audit log under your name: no paperwork.

Count

Rolling stock-take. Choose a location, then scan (or enter counts for) what's actually on the shelf. The screen shows expected vs counted and lets you correct the system to match reality. Discrepancies are logged with your name and the reason.

Print

Prints QR labels on the Brother label printer.

  1. Pick the media size loaded in the printer: 62 mm (default, large labels) or 29 mm (small).
  2. Either scan/enter a single ID and print, or print a range (ID from → ID to) for freshly created batches.
  3. Labels come out with the QR code, the F4T logo and the ID text.
NoteIf printing is in “dry run” (test) mode, labels generate as image files instead of physically printing; an admin controls this.
05

Quote tab

Everyone

Purpose: build customer quotations, send them for acceptance (with optional e-signature), and follow them through to invoicing.

Creating and building a quote

  1. Click New quote, pick the customer.
  2. Add lines: search the catalogue and add products, set quantities. Prices pre-fill from the product's sell price (or the customer's special price where one is set) and can be overridden per line.
  3. Each line has a supply source: from stock (we ship from the shelf) or online (we'll buy it in specifically for this job). This matters on acceptance, see below.
  4. Pick the purchaser (the contact who'll approve it) and the delivery address. Both are required before sending.
  5. Attach extra PDFs (spec sheets, T&Cs) or apply a template pack if your team has set them up.

Totals and VAT calculate automatically. A quote stays editable while it's a draft.

Sending, with or without eSign

Click Send. Two things to know:

  • Stock-sourced lines are deducted from inventory at send time (you'll be warned if there's a shortage, but it won't block you).
  • If you tick Require e-signature, the customer receives the quote through our e-signing provider and can sign it online. When they sign, the quote moves itself to Accepted automatically. If e-signing isn't set up on the server yet, the tick is a harmless marker and you progress the quote manually.

If the purchaser has an approval limit and the quote exceeds it, you'll get a warning so you can check with the customer; it won't stop the send.

Quote lifecycle

Draft Sent Accepted Shipped Received Invoiced Settled

…or Disputed; a quote can be cancelled from draft/sent/accepted. Move it forward with the transition buttons on the quote; every step is stamped and logged. The PDF regenerates at each stage so the document always matches the current state.

What happens on Accept

When a quote becomes accepted, the system automatically creates draft purchase orders for every online-supply line: one PO per supplier, pre-filled with our buy prices. Lines whose product has no supplier set are flagged so someone can fix the product and regenerate. Stock admins pick these drafts up in the Procurement tab.

Deleting: your own draft/cancelled quotes can be deleted by anyone with quote access; deleting anything else is super-admin only.

Unpaid invoices

The Quote tab rail has Unpaid invoices: everything invoiced but not settled, with the outstanding total and days-out aging (amber past 14 days, red past 30). Mark quotes Settled as payments land; the bank-import reconcile view suggests the matches.

06

Procurement tab

Stock admins+

Purpose: everything we buy (restocking, buy-to-order for quotes, internal kit, and subscriptions), plus getting the paperwork straight.

The five views

ViewWhat it shows
All purchase ordersFull list, searchable and filterable.
Awaiting receiptSent POs where goods haven't all arrived.
ReconcileThe paperwork dashboard; see below.
SubscriptionsRecurring purchases (hosting, SaaS) with renewals due in the next 14 days and a Renew now button that drafts the next period's PO. Auto-renew subscriptions renew themselves overnight.
Reorder alertsStock lines at or below their reorder threshold, with Create PO to draft a restock order in one click.

Creating and sending a PO

Create from scratch, from a reorder alert, or let an accepted quote create resale drafts for you. Set the intent (what kind of purchase this is): stock (restocking, where receipts will add to stock levels), resale (tied to a quote), internal (our own kit), or subscription (recurring; set the period and next renewal date). Add lines, check the totals, then Send it to the supplier; a PO PDF is generated for emailing.

Receiving deliveries

When goods arrive, open the PO → Receive, enter quantities delivered per line (part-deliveries are fine). For stock-intent lines the received quantity is added to stock automatically at the line's delivery location. The PO flips to partial then received on its own as lines complete.

Invoices and payment

When the supplier's invoice arrives: Mark invoice received (records the date, and the payment due date from the supplier's terms). When it's paid: Mark paid, recording how (invoice / card / direct debit) and a payment reference. Paying is always a deliberate button press; nothing marks a PO paid automatically.

Reconcile: keeping the paperwork honest

The Reconcile view has five buckets:

BucketMeaning
Awaiting paymentGoods or invoice in hand, not yet paid.
Paid · no evidencePaid POs with no document attached. Keep this list at zero: drag in the receipt/invoice.
Evidence mismatchAn attached document whose amount, reference or date disagrees with the PO. Open it and fix whichever is wrong.
Overdue paymentInvoice received, due date passed.
Evidence inboxUploaded documents nobody has linked to a PO yet (e.g. an emailed receipt uploaded before the PO existed).

Evidence = a PDF/photo of the invoice, receipt or email. Upload it on the PO (or into the inbox) and enter the total/reference/date shown on the document; the system scores how well it matches the PO and flags discrepancies for you.

  • Sundry purchases: small card purchases for internal use (under £100 by default) don't require evidence to count as settled. There's an override toggle per PO for edge cases.
  • Waiving evidence Super admins: when a document genuinely can't be obtained, a super admin can waive the requirement with a written reason. It's audited.

Supplier invoices & the three-way match

Open any PO and scroll to 06 · Supplier invoices. Record each invoice the supplier sends (their invoice number, the total including VAT, dates); one PO can carry several part-invoices.

The banner above the list shows the three-way match: what we ordered (the PO total) ↔ the received value (what actually arrived, valued at cost) ↔ what we've been invoiced so far. Each invoice shows:

  • Matched: the PO is fully received and the total billed agrees with both other legs (within 0.5%). Nothing to do.
  • Variance: something disagrees; the notes say what (e.g. “Receipt leg open” means goods haven't all arrived yet, which is normal for part-billing; an amount note means we're being billed more or less than we ordered). Chase it, then Re-check.

Recording or deleting an invoice automatically re-checks every other invoice on the same PO.

Bank statement import

In Reconcile → Bank import: click Import statement CSV and pick an export from the bank (most UK bank formats work; it needs a date column and either one amount column or paid-in/paid-out columns). Re-importing an overlapping statement is safe; lines you've already imported are skipped automatically.

For each unmatched payment line:

  • Find match: the system suggests POs whose total is within 2% of the payment, scored higher when the supplier's name appears in the statement description and the date sits near the PO's payment window. Expense payouts are suggested too, tagged Expense payout. Click Link PO-… to confirm.
  • Ignore: for lines that aren't supplier payments (bank fees, transfers). They move to the Ignored filter and can be unmatched back later.
NoteMatching a bank line never changes the PO itself; marking a PO paid stays a deliberate action on the PO screen.

Overnight auto-renew

Overnight, subscription POs flagged auto-renew whose renewal date has arrived are cloned into a fresh draft for the next period, and the old PO stops alerting. You'll find the new drafts in Procurement → All, noted “Auto-renewed from PO-…”. Nothing is sent or paid automatically; drafts still need a human.

07

Expenses tab

Everyone

Purpose: get paid back when you've bought something for the company on your own card or with cash, or driven your own vehicle for work.

Submitting a claim

  1. Click + New claim.
  2. Pick the type:
    • Purchase: enter the amount (including VAT), how you paid (personal card / cash), where you bought it, and attach the receipt (photo or PDF). Claims without receipts are much more likely to be rejected.
    • Mileage: enter the miles driven; the screen shows the calculation (e.g. 48.6 miles × 45p = £21.87) and the amount is worked out automatically at the company rate. The rate in force when you submit is locked to your claim, so later rate changes never affect it.
  3. Say clearly what it was for; the approver reads exactly what you write.
  4. Submit. Your claim gets a reference like EXP-2026-0007.

Tracking and cancelling

StatusMeaning
Awaiting approvalSubmitted, not yet looked at. You can still Cancel it at this stage.
Approved, awaiting payoutAccepted; finance will pay it.
ReimbursedPaid, with the payment reference shown.
RejectedNot accepted; the reason is shown on the claim. Fix the problem (e.g. attach the receipt) and submit a fresh claim.

Approving and paying out Super admins

Approvers see an Approval queue below their own claims, listing everyone's submissions with the receipt a click away:

  • Approve or Reject… (a written reason is required and the claimant sees it). You can never approve your own claim; another approver has to.
  • Once approved, Mark reimbursed… records the actual payout with a payment reference (bank ref or payroll run).

Every step is written to the audit log under the claim's reference.

Where reimbursements meet the bank statement Stock admins+

When the payout appears on the bank statement, the Procurement → Reconcile → Bank import screen will suggest the matching expense claim alongside PO candidates (tagged Expense payout), so the statement line gets tied to the claim with one click.

08

Admin tab

Stock admins+

Everything here is stock-admin level unless marked otherwise, switched by the rail on the left.

Items

The catalogue. Create and edit products (name, SKU, category, supplier, buy/sell prices, whether it appears in the customer catalogue, and how it can be supplied) and asset units (serial number, location, warranty). This is also where you set a product's reorder level and refill quantity per location, which drive the Procurement reorder alerts. + New item opens the creation dialog; new items get the next free F4T ID automatically. Print the label from the Stock Control tab afterwards.

Reference data

Locations (Stock Room, Van 1, …) and product categories. Add here before you need them elsewhere; deleting a location in use is blocked.

Customers

Companies we supply: name, their sites/delivery addresses. Customer sites feed the quote delivery-address picker. Per-customer special pricing for specific products is set from the item/customer screens.

Contacts

People at those companies: phone, email, job title, who they report to, and their approval limit (used to warn on quotes above their authority). This is also where portal sign-in is managed per contact: enable password login, Microsoft sign-in, and/or magic links (one-shot emailed sign-in links you can generate here). A contact with no methods enabled cannot sign in at all.

Suppliers

Who we buy from: contact details, payment terms in days (drives the “payment due” date when you record an invoice), default payment method and currency for new POs.

Stats

Read-only dashboard: stock value, counts by category/location, quote and PO activity.

Audit log

Every change the system has ever recorded: who did what, to which item, when, with free-text search, filters by user/action/date, and CSV export. If a count looks wrong or kit has vanished, this is where you look. Nothing in the audit log can be edited or deleted from the app.

Users Super admins

Staff accounts: create users, set display name, role (user / stock_admin / super_admin), reset passwords, deactivate leavers. Two Microsoft-related settings per user:

  • Microsoft ID: links the account to a specific Microsoft identity (fills itself in on their first Microsoft sign-in).
  • Require Microsoft: turn on to forbid password login for that account entirely (recommended once someone has signed in via Microsoft successfully).

Beyond roles, you can grant or deny individual permissions per user, e.g. give a user the Procurement tab without making them a stock admin.

Templates

Reusable PDF packs (brochures, T&Cs) that can be attached to quotes. Requires the manage templates permission (stock admins have it).

Data I/O

CSV export of any main table (products, assets, stock levels, customers, audit log, …) for spreadsheets or bulk editing. Passwords and security fields are never included in CSV exports; for real backups use the Backups tab.

Cyber Essentials asset register downloads a CSV shaped for a CE assessor: every tracked unit with serial, owner, location, OS name/version, support and warranty dates, plus one fleet row per product/location of bulk stock. Fill OS fields in the item editor as you touch devices; the export is honest about gaps.

Backups Super admins

Admin → Backups produces full application snapshots: one archive with every table (quotes, POs, expenses, users, everything) plus all uploaded documents. Archives are encrypted when the server has a backup key configured, a nightly cron keeps them coming, and configured deployments push a copy off-box to SharePoint/OneDrive. Restore supports a dry run, per-table selection, and a typed confirmation before anything is replaced. Every backup and restore is audited.

Outbound email & the kill-switches Super admins

The system can email: magic sign-in links straight to contacts, quote/invoice PDFs to customers, expense decisions to claimants, a daily needs-attention digest to admins, and portal return requests to staff. All of it is OFF by default. Admin → Settings has two switches (Customer emails and Internal notification emails) and a mail log showing every attempted send (sent / dry-run / suppressed / failed). Nothing emails a customer until you flip the customer switch, and the config's MAIL_DRY_RUN adds a second layer during setup.

SMTP & eSign settings Super admins

Admin → Settings also holds the runtime service configuration:

  • SMTP server: switch the mail transport from Microsoft Graph to a plain SMTP server and set host, port, security (STARTTLS / SSL / none), username, password and from-address. Use the Send test button to prove the connection.
  • eSign (OpenSign): enable e-signing and set the API base URL, API key and webhook secret without touching the server's config file. Values saved here override config.php.

Passwords and API keys are write-only: once saved, the panel only shows whether one is set, never the value. Every settings change lands in the audit log (secrets are logged as “updated”, not their value).

09

Customer loan portal

Admins set up

Contacts with a portal login can visit /portal/ to see the equipment on loan to their company and press Request return; staff get an email (if enabled) and a return_requested entry appears in the audit log.

Check-out records which customer holds a unit (pick the customer as assignee as usual); check-in clears it. Portal sign-in methods are managed per contact under Admin → Contacts.

10

Install it on your phone

Everyone

The app is installable:

  • Android / Chrome: menu → “Add to home screen”.
  • iOS Safari: Share → “Add to Home Screen”.

Live data is never cached; a flaky signal falls back to the last good screen layout, not stale stock numbers.

11

Quick answers

Everyone

“I scanned a label and nothing happened.”

Check which tab you're on; the scan goes to the active tab. On Search it shows details; on the Stock Control tab it feeds the active mode.

“It says insufficient stock.”

The system won't let a stock count go below zero. Check the per-location quantities on the Search tab; the stock may be recorded at a different location.

“Something's wrong with a stock number.”

Don't guess-fix it with check-in/out; use Stock Control → Count for that location so the correction is properly logged, or check the Audit log first to see what happened.

12

Report a bug or request a feature

Everyone

Spotted something broken, missing, or confusing? Submit it here and it goes straight into the system's request list. Pick the type that fits:

  • Bug: something is broken or behaving wrongly.
  • Feature request: something the system should do but doesn't.
  • Query: a question about how something works.

You'll see your own requests below (super admins see everyone's). A request is closed, with or without a note, by a super admin or by whoever submitted it.