ThreadWare User Guide

Administration

Users, companies, sites, roles, configuration and audit logs. Most people never see this menu. If you do, this page is a map - the deep detail is in the Administrator Manual.

You only see what you have been given access to

ThreadWare is built from modules - Sales, Production, Quality and so on. An administrator gives you a role in each module, for each company you work in. The menu is built from those roles. So if something in this guide is not in your menu, it has not been given to you yet. Ask your administrator, or log a support ticket.

Can I use it?

You need the platform Administrator role, and a few pages need SuperAdmin. Three pages under Configuration - Tag Management, Data Quality and Machines & Work Centres - are also open to an Instrument Admin, who sees those three and nothing else here.

Administrators bypass most permission checks

An Administrator can reach almost every page in every module, in every company of their organisation. That has one important consequence when you are helping somebody: testing "can everyone see this?" while signed in as an administrator proves nothing. Sign in as an ordinary user, or check the Access Matrix instead.

The one thing an Administrator cannot reach is Recruitment.

Where to find it

Menu ▸ Administration

Users and Organisation

PageWhat it is for
Product Licence What your ThreadWare licence includes - modules, add-ons, how many companies and users, and until when - and where a new licence code is entered. See Product licence.
User Admin Create and edit people. Employee number, direct manager, contact details, and approving a new registration. Also where the employee spreadsheet is uploaded - see Upload or update employees.

The SuperAdmin role belongs to ThreadWare support. An administrator is not offered it in the role list, and cannot save or delete an account that holds it - the buttons are greyed out and a note says why.
User Access (Companies × Modules) The main one. Grants somebody a role in a module, in a company. This is the answer to almost every "I cannot see X" question.
Companies & Modules Which modules each company is switched on for, and per-company options. This is what decides which companies appear under a menu. A company that is not ticked for Production does not show up under Production for anybody - an administrator included - so the way to shorten a long list of companies under a menu is to untick the module for the companies that do not use it. Nobody's roles are lost by doing so; ticking it back restores them.

The Grid view is companies down the side and modules across the top, and the row of boxes under the module names ticks or clears that whole column for every company currently shown - so "nobody uses Stock yet" is one click, not thirteen. Nothing is written until you press Save changes. The By company view is where the per-company options and data sources live, which are too wide for a grid.

A module added to ThreadWare in a later release arrives switched off for companies that already exist, so a new module never quietly appears under every company. It is waiting here as an unticked box.

A greyed-out box is a module or an option that is not in your licence. It cannot be ticked here; see Product licence.

The Data sources tab says which system feeds a company's Sales, Production and Stock (a Stock row left on ThreadWare (native) follows the Production one), maps the ERP's order series and warehouses to your sites, and lists the last ERP syncs. Acumatica, JD Edwards and SAP are listed but load nothing yet - their adapters are not built.

An ERP enterprise unit row in the site mapping tells the Item Costing page which site (factory) a cost price belongs to: choose Kind ERP enterprise unit, type the unit's code exactly as the ERP holds it in Pattern, and pick the factory in Site - one row per unit. It only affects which cost price the costing page selects first; every unit's price is still listed, and nothing else in ThreadWare reads these rows.

One option on the Stock module is marked with a warning: Allow deleting a customer-stock account or store. Everything else in ThreadWare can be undone or closed; that one cannot. Switch it on when you need to tidy something up, do it, and switch it off again. Even with it on, only a Stock Admin sees the delete buttons and the account's name has to be typed back before anything happens.

Customer stock is a per-company option on the Stock module here. Tick it for a company that keeps stock in a customer's store, and the Stock → Customer stock pages appear for it; leave it clear and nobody in that company sees any of it. Then grant somebody Customer Stock Planner under User Access - that is the role that approves replenishment, accepts stock counts and issues the requests the ERP clerk works from. See the Stock guide.

Cost Accountant is a Production role granted under User Access. It opens Production → Item Costing - cost prices, raw materials, gross profit - for companies whose production comes from the ERP, and nothing else. Only it and Production Admin are shown cost prices. Grant Production Viewer as well if the person should also open production orders. See the Production guide.
Job Titles Job titles, the AI access level each one carries, and the job function that decides which KPI categories its holders are offered. (This page used to be called Job Definitions.) See Job titles.
Job Functions The kinds of work a job title can belong to. A KPI category or measure can be offered to some functions and not others.
Occupational Levels How senior a job is. Sets the AI access level, and is the level used for employment-equity reporting.
Platform RolesThe four system-wide roles.
Enrolled DevicesDevices registered against your system.
Access Matrix Who holds what, on one grid: people down the side, module roles across the top, grouped by module. Grants are per company, so pick the company at the top left - or leave it on Every company and hover a tick to see which companies it is in. A greyed column is a module that company does not use (see Companies & Modules); a tick there does nothing until it is switched on. Administrators and SuperAdmins reach everything whatever the grid shows, so their platform role is listed beside their name. Exports to Excel.
New Registrations Who has signed up recently. Marking one "reviewed" is not approval - approval means granting roles in User Access. The Employee record column shows the uploaded employee record that fits each person, with a Link button - see Linking a user to an employee record.
Account Deletion Requests People who have asked for their account to be removed.
Companies, Sites The organisation itself. Sites matter a lot - most data is filtered by them.
Industry (SIC) CodesIndustry classification codes.
KPI GroupsGroupings for the KPI module.
Tenant Management The organisation as a whole, including the logo shown in the menu drawer. SuperAdmin only.

Approving a new person - the short version

  1. New Registrations - see who signed up. If the Employee record column offers the person's employee record, check it is the right person and click Link.
  2. User Admin - check and correct their details, especially the employee number (leading zeros matter) and their direct manager.
  3. User Access - give them roles in the modules and companies they need.
  4. Assign them to at least one site. Without one, the AI Assistant returns nothing for data questions and several reports stay empty.
  5. Tell them to sign out and back in. Permissions are read at sign-in.

Until you grant roles, the person can sign in but sees only Home, their account pages and Server Status. That is the system working, not a fault.

Job titles

Menu ▸ Administration ▸ Job Titles

A job title ties together four things:

FieldWhat it does
Occupational Level How senior the job is. Sets what the AI assistant will show everyone holding the title, and is the level used for employment-equity reporting.
Job Function The kind of work. Decides which KPI categories a manager is offered for someone with the title.
Paterson GradeThe letter grade of the title, A to F.
Company Grade The grade of the position on your own scale, as written in the employee spreadsheet. It can suggest the occupational level - see below.

Titles that arrive from an employee upload need a person to look at them. Switch on Needs confirming to list them, and click Confirm on each one.

A grade suggests the occupational level

Where a title has a company grade and no occupational level, the list shows "Suggested: ..." under Not set, taken from the first letter(s) of the grade - the band. "D3" is band D.

Which band suggests which level is a short table at the bottom of Administration ▸ Occupational Levels, under Grade bands. It starts with A unskilled, B semi-skilled, C skilled or junior management, D middle management, E senior management and F top management. Change a row, add a band of your own, and click Save grade bands. Changing the table changes nobody's access by itself - it only changes what is suggested.

Job functions and KPI categories

Menu ▸ Administration ▸ Job Functions

A job function decides which KPI categories a manager is offered for someone whose job title holds it. The KPI categories column lists the categories limited to each function; a category that is open to everyone is offered to every function.

Open a job function with Edit to tick or untick its categories. Two ticks are greyed out, because changing them would change who else sees the category:

Do those on Performance Reference Data ▸ KPI Categories, where the whole list is in view. Ticking needs the Master Data Editor, HR Executive or HR Admin role in Performance Management; without it you see the column but cannot change it.

Upload or update employees

Menu ▸ Administration ▸ User Admin ▸ Upload / update employees

Who can do this. You must be an administrator and hold the HR Executive role. The spreadsheet holds race and identity numbers, so being an administrator alone is not enough. If you do not see the button, that is why.

Use this to bring in the employee spreadsheet: one row per employee, with the column headings in the first row. It works in three steps and nothing is saved until you press Confirm. It is meant to be used again and again, with the same export from the HR system.

Columns are found by their heading, so their order does not matter. A column that is not in the file changes nothing: what is already stored for it is left as it is, and the review step lists the columns the file does not have. A column that is there with an empty cell does clear the value. The one exception is Payroll Company: once employees are stored with a payroll company, a file without that column is refused, because no row could find its own record.

  1. Choose the spreadsheet. Upload the Excel workbook itself (.xlsx), not a CSV or text copy. Saving as text destroys identity numbers and the zeros in front of employee numbers.
  2. Review. ThreadWare shows what it found and what it would do. Reading a large file takes a minute or two: a Working... notice with a moving bar is shown until it is done, and again while Confirm is saving.
  3. Confirm. Only now is anything saved. The file itself is not kept.

On the review step:

What an upload changes on a matched user is small: the employee number, the clocking number, the job title, and the direct manager (below). It never changes a name, an email address, companies, sites or roles.

The direct manager in the upload

When the file has a Direct Manager Full Name column, ThreadWare looks for that manager's user: the employee of that name who is linked to a user, or else the one user with that name. Then, for each employee who has a user:

What ThreadWare holdsWhat happens
No direct managerThe manager from the file is set.
The same managerNothing.
A different manager The row is flagged: it shows both names and a box, Change to ..., that is not ticked. Tick it to change the manager. Tick all manager changes ticks every flagged row.
The name fits nobody, several people, or somebody with no login Nothing changes, and the row says why.

Identity numbers in the upload

The identity number is what tells ThreadWare who a row is, and it is the first thing checked. It is stored encrypted and is never shown on the review step - a row only says whether the file held one. Where a row has no identity number, or none is stored for that person yet, the payroll company and employee number are used instead. A name is never used to find an employee record.

Linking a user to an employee record

Most people are uploaded as an employee record with no login. When one of them registers later, their new account and their employee record are two separate things until an administrator links them. Registering never links anybody by itself: anyone can fill in the registration form, so an employee number typed there is only a claim. ThreadWare suggests the record; you decide.

You can link in two places. Both need an administrator.

Things to know:

If the person was given an account by the upload ("Create a new user"), there is nothing to link. They register with the same email address, choose a password, and click the link in the confirmation email. On New Registrations that line reads Created by the employee upload, then registered.

Employee numbers and leading zeros

Excel drops the zeros in front of a number unless the column is formatted as text, so 0001234 arrives as 1234. ThreadWare puts the zeros back by finding the number on the payroll list - but only when exactly one payroll number fits.

An identity number that Excel has turned into something like 1.23457E+13 can still be read from a real Excel workbook. If the file was ever saved as text while showing that shorthand, the digits are gone: the employee is still loaded, but the identity number is left out and the row is listed so that it can be captured by hand.

Product licence

Menu ▸ Administration ▸ Product Licence

ThreadWare is licensed by a licence code that ThreadWare issues. The code says which modules and add-ons this install includes, how many companies and users it may have, and the date it runs to. The page shows all of that, and how much of it is in use. Only an administrator sees the page.

You want toDo this
Enter a new code Paste the whole code into Licence code and press Apply licence code. It takes effect straight away. People see their menus change the next time they sign in.
See what is included The Modules and Add-ons lists show a green tick for what the licence includes. Anything else is not offered to anybody - an administrator included - and its box on Companies & Modules is greyed out.
Add a module, a company or more users Ask ThreadWare for a new code. Nothing has to be reinstalled.

When the licence runs out

Nothing switches off on the expiry date. Administrators see a notice from 30 days before it. After the date everything keeps working for a further 60 days, with a notice that says when that ends. Only then do the paid modules switch off, and they come back the moment a new code is entered. ThreadWare and your administrators are e-mailed along the way.

Three things are never switched off: Administration (so that a code can always be entered), Log a Support Ticket, and everything the instruments and machines send - readings, alarms and output control carry on, so there is no gap in the data.

The company and user limits

Users. A user counts when they can sign in: approved, with a password. Nobody is ever locked out by the limit. Once the limit is reached, approving one more person is refused with a message that says so - remove or restrict somebody who has left, or ask ThreadWare to extend the licence.

Companies. At the limit, adding another company is refused. If the install already has more companies than the licence allows, the page names the ones that are over; their paid modules are off until the licence is extended.

Supporting programs

Three programs run beside ThreadWare and feed it: the OPC client and the Modbus reader bring readings in from machines and meters, and the Alarm worker sends the instrument alarms. The Supporting programs list shows, for each one, whether your licence includes it (a green tick) and when ThreadWare last heard from it. "Not heard from in the last 24 hours" simply means that program is not running on your system.

If one of them is running but is not in your licence, the page shows a warning that names it. Nothing is switched off - its readings and alarms are accepted exactly as before - and ThreadWare is told. Ask ThreadWare for a licence code that includes it; the warning goes when the new code is entered.

Emergency unlock

The Emergency unlock box is only for a code that ThreadWare support gives you when a licence problem has to be bypassed quickly. It opens every module for a short, fixed time, and ThreadWare is told when one is used. Leave the box alone otherwise.

Configuration

PageWhat it is for
General SettingsSystem-wide settings.
Breakdown Reasons The reason list used when recording production downtime.
Shift TemplatesStandard shift patterns.
Tag Management Instrument tags - see the Instrument Tag setup guide.
Data Quality Instrument readings that were impossible: what was discarded, the believable range of each tag, and how each company wants it handled. See Data Quality below.
Machines & Work Centres The machines production orders are issued to, grouped under work centres, with the parts (sections) of each machine and the tags under them. A machine's output tag is the one instrument that counts as its production; a machine without one cannot take an order. Retire a machine or work centre rather than deleting it once it has history.
Device Control Management Outputs that can be switched from ThreadWare.
Minidashboard Tags Which tags appear as live tiles for a company.
Tag Editor (Legacy) Obsolete and removed from the menu (September 2026). Tag Management is the editor; the old page only shows a notice pointing there.

Data Quality

Menu ▸ Administration ▸ Configuration ▸ Data Quality

ThreadWare checks each instrument reading against its tag's believable range before saving it. A reading that is impossible - 5000 degrees, a negative pressure - is not saved. It goes on a separate list, the graph, the tiles and the bell say so, and the tag keeps showing its last believable value. This page is where that is set up and looked after. It has three tabs.

Nothing changes until you switch it on. A company with no setting has the check off, and a tag with no range is never checked. Devices notice nothing either way: they get the same answer whether a reading was saved or discarded.

Getting started - the trial week

  1. On the Limits tab click Suggest from history. ThreadWare proposes a range for every tag from that tag's own readings over the last 12 months, and says how many stored readings the range would have discarded.
  2. Look at the proposals. A highlighted row would discard more than 0.5 % of the tag's history; that usually means the tag changes mode (a counter, for example) rather than misbehaves, so correct the figures by hand. Tick the ones you agree with and click Accept the ticked proposals.
  3. On the Settings tab choose the company and set the mode to Watch only. For the next 7 days nothing is discarded, but every reading that would have been is listed as "Kept and listed".
  4. During the week look at the Discarded readings tab. Where good readings are being listed, widen that tag's range.
  5. When the list holds only readings you agree are impossible, set the mode to Discard. ThreadWare never does this by itself, not even when the 7 days are over.

Tab: Discarded readings

Every listed reading: the time, the tag, the value, why it was listed, the range it was compared with, and what happened to it. Filter by tag number, reason, what happened, decision and date.

ButtonWhat it does
Keep it Puts a discarded reading back into the measurements, with its original time. Use it when a range was too tight. Widen the range as well, or the next such reading is discarded again.
Dismiss "Seen, nothing to do." The reading stays discarded and the row is marked.

When a broken sensor floods the system, the list keeps at most 60 rows per tag per hour. The count is always exact, whatever the list shows.

Tab: Limits

One row per tag, with its minimum, maximum, jump limit and mode, all editable in the grid. Save changes saves every row you touched. Only tags with no limits yet shows the tags that are not checked, with a count, so a new tag is not forgotten. A new tag has no history, so it gets no proposal; run Suggest from history again when it has a few weeks of data.

Tab: Settings

SettingWhat it is
Mode Off, Watch only or Discard, per company. In Watch only the page shows "day 3 of 7".
Discards in a row and Lasting at least (minutes) When a sensor sends only impossible values this many times in a row, for at least this long, ThreadWare raises Sensor fault suspected. 5 readings and 10 minutes to begin with.
Detail rows per tag per hour How many rows of a flood are listed. 60 to begin with.
Keep the detail for (days) After this the list rows are removed. The hourly counts are kept for ever. 365 days to begin with.
Telegram Whether a suspected sensor fault, and its end, also go to the Telegram group.

Who is told

The bell tells the Instrument Admins and the Electricians (a Risk role) of the tag's company, and the tag's owner and administrator. Each person gets one notice, even when they qualify twice.

If nobody holds either role in a company and the tag has no owner, there is nobody to tell; the API log says so. Grant the role under User Access.

Logs and diagnostics

PageWhat it is for
Device ActivityWhat the field devices have been doing.
Audit LogWho did what, and when.
Latest Per UserThe most recent action per person - quick way to see who is active.
API Log ViewerTechnical logs for diagnosing a fault.
Administrator Manual The full setup manual. Opens in a new tab.
Never share a raw log file

API logs can contain personal information. If support asks for a log, send the specific lines that matter, not the whole file.

AI administration

These sit under the AI Assistant menu rather than Administration:

PageWhat it is for
Document Management The document library - see its own guide.
AI Embeddings The state of the search index, and re-indexing tools. One row per kind of record - risks, governance, KPIs, performance reviews, support tickets, knowledge-base articles, user guides, shift handover notes and CVs - each with its own Re-index button. The Other model column counts records indexed by a different AI model; they are left out of search until re-indexed, and a warning appears above the table when any exist. The page also holds the search-quality check described below.
AI Agent Profile Which AI model is in use, and the background context it is given about your business. Changes take effect immediately for everyone.
AI Access Matrix The diagnostic page for "why can this person not get an AI answer?" Per person: their access level, whether they consented, how many sites they have, and a tick or cross per subject area. Hover a cross to see the reason.

Checking search quality

At the bottom of AI Embeddings, Search Quality lets you test the chatbot's search with questions of your own. For each question you list what it should find (a document by part of its file name, a risk or KPI by its number, a user guide page, a production record by a word in it) and anything that must never appear.

  1. Type or paste the questions into the box (Insert an example shows the layout) and press Save questions. They are kept on the server for next time.
  2. Choose Search only (costs next to nothing) or Search and judge (adds the AI relevance check - a few US cents for about 50 questions), then press Run. You can cancel part-way.
  3. Open a question to see every result the search considered, how similar each was, whether it would have been shown, and a table of what each similarity setting from 0.30 to 0.55 would have kept.
  4. Use Download results to keep a copy - results are not stored.

The run uses your access, the same as if you asked the chatbot yourself. It changes no setting and no data. Results are marked "not on the expected list" rather than "wrong": a result can be useful and simply not on your list.

Web search and pictures - a server setting, not an app one

The chatbot can also look things up on the public internet, including finding pictures of something a user describes, or finding things that look like a picture they supply. There is no switch for this in Administration: it needs keys that IT sets on the server, because each search is bought from an outside supplier.

If those keys are not set, the abilities are simply absent - and the chatbot says so in its answer while still telling the user everything else it can. So "it says picture search is not switched on" is the system being honest, not a fault. Signed in as an Admin, the message also names the exact setting IT needs to add.

Web searches send the question outside the company, so the user confirms the confidentiality declaration every time and each send is recorded in the AI audit log.

The five questions you will be asked most

QuestionWhere to look
"I cannot see module X" User Access. Grant a role in that module for that company. Then tell them to sign out and back in.
"The AI gives me nothing" AI Access Matrix, By User tab. Usually consent, or zero sites.
"My clocking records are empty" User Admin. Employee number missing or wrong, or the account is not approved yet.
"My manager cannot see my review" User Admin. The Direct Manager field is not set.
"There are far too many companies under this menu" Companies & Modules. Untick the module for every company that does not use it - that list is exactly what the menu groups by. Sign out and back in to see it.
"A whole module has disappeared from the menu" Companies & Modules. No company has it ticked, so there is nothing to show. Tick it for the company that uses it.
"This company has no order book" That company has no data source configured. Set it under Companies & Modules → Data sources; the replica tables behind it are a server-side setup step.