The AI assistant
What the assistant can do, connecting a model, and what it can see.
What the assistant can and cannot do
The assistant answers questions and prepares forms for you to check. It never creates, changes or deletes anything by itself.
It is the chat button in the top bar, available on the Pro and Farm plans once a provider is connected. It explains how FoxTrack works (any screen, field, setting or limit, read from the app's own help library, never from memory), tells you what needs attention today, answers questions about this workspace's records (orders, quotes, invoices, customers, products, expenses, inventory and filament, printers and maintenance, within the permissions switched on), and reads images you attach.
The most it does is open a form filled in for you to check and save, or offer a button for one change (move an order to another column, mark an invoice paid, set a quote's status) that happens only when you press it. It cannot delete anything at all; ask it and it tells you where to do it yourself. If it cannot see something, it says which permission is off. Links in its replies show as plain text and cannot be clicked. An order, quote, invoice or customer number in a reply (ORD-0042, for example) opens that record.
Asking how FoxTrack works
Ask in plain words: "how do variant axes work", "why didn't my order move to Printing", "where do I change the invoice logo". The assistant searches the built-in help library and answers from what it finds, naming the exact tab or button. The + Context button in the message box has a How FoxTrack works entry that tells it to prefer the help library for that message; it is never switched off, so it works even in a workspace with every data permission off. If the help library does not cover something, the assistant says so and points you to the Support button.
Connecting a provider
An owner or admin connects a provider under Settings → AI: pick a preset (OpenAI, Google Gemini, Anthropic, a custom OpenAI-compatible server, or a local model), paste an API key created in that provider's dashboard, and choose a model from the list or type its name. Chat needs a model with tool calling; scanning images also needs one that accepts images. Requests to a hosted provider go through the FoxTrack server, which checks your plan and the permission toggles first; the key is stored on the server and never sent to the browser, and Settings shows only its last four characters. Every request counts against your own provider account; FoxTrack adds no charge. Free provider tiers have low rate limits, and one chat message can use several requests while the assistant looks things up.
Checking the connection
Save changes under Settings → AI runs a quick check with your provider and says the result under the model: Connected. This model can look things up, or what went wrong in plain words: the provider refused the API key, it could not find the model (or, for a custom or local server, the base URL), or the model has no tool calling, which chat needs. Test connection runs the same check again at any time. If chat answers that the model did not look anything up, run the check: a model without tool calling cannot answer from your data, so pick another one.
Request limits
FoxTrack caps requests to a hosted provider at 60 a minute and 1,500 a day per person, and 6,000 a day per workspace, to protect your provider bill. Every call to the provider counts: a receipt scan or an image question is one, a chat message usually two or three while the assistant looks things up, and loading the model list or checking the connection is one too. A reply that keeps looking things up stops after a set amount and says it ran out of steps; ask again, one thing at a time. A local model has no FoxTrack limit.
Using a local model
The Local preset runs the assistant on a model server on your own machine, such as LM Studio or Ollama, instead of a hosted provider.
Choose the Local preset and enter the base URL of the model server, usually http://localhost:1234/v1 for LM Studio or http://localhost:11434/v1 for Ollama, then pick a model from the list it reports. Your browser calls the model server directly, so your question and your data are never sent to an AI provider, no key is stored and there is no usage cost. Your chat history and the records the assistant looks up still go through FoxTrack as normal. The server must allow browser access (CORS): LM Studio's server settings, or OLLAMA_ORIGINS for Ollama. The model must support tool calling for chat, and accept images if you want scanning. The base URL is shared by the workspace, so a localhost address only works for people running the model on their own machine; another machine needs an https address. Small models struggle with tool calls: if replies ignore your data or describe records you do not recognize, use a larger model. As a rough guide, prefer a vision-capable model of 20B parameters or more, the largest your hardware runs comfortably. LM Studio may serve whichever model is loaded if the name does not match; check its server log if replies look wrong.
Permissions
Five switches decide what the assistant may do and what it may read in your workspace. They are all off to begin with.
The switches are under Settings → AI → Permissions (owners and admins):
- Use chat: members can open the panel and ask questions.
- Analyze images: attached images are sent to the provider to be read; receipts come back as expense drafts.
- Offer drafts: the assistant may put a prefilled order or expense form, a list of filament spools, or a one-click change (move an order, mark an invoice paid, set a quote's status) in front of you to check and save or press.
- Share business data: chat may read orders, quotes and invoices, products and prices, expense totals, inventory and filament stock, printers and maintenance, and the alerts under the bell.
- Share customer data: customer names and contact details may be read and sent. It has its own switch because it is personal data. With it off, the assistant still sees which orders and invoices are late, but not who they are for.
With a switch off the assistant is told the permission is off and says so. If the line under a switch lists only some of what it covers, turn the switch on to include the rest, such as anything added in a later update. Help about how FoxTrack works needs no switch beyond Use chat. Saving a provider for the first time opens this card with a reminder to switch on Use chat. A member sees no assistant button until an AI provider is saved; after that, a member who opens the assistant while Use chat is off is told to ask a workspace owner or admin.
Workspace context
The Workspace context box under Settings → AI holds notes an owner or admin writes once, up to 2000 characters, sent with every request: what you print, your currency, how you name products, how you like answers phrased. It shapes how the assistant writes. Permissions decide what it may read.
Asking about workspace data
Ask about orders, quotes, invoices, customers, products, expenses, inventory, filament, printers or maintenance and the assistant looks the answer up before replying; it reads as you, so it can only see what you could open yourself. Ask what needs your attention today and it reads the same alerts as the bell (low stock, orders due soon, overdue invoices, maintenance due) and puts the most urgent first. Owners and admins can also ask how the business did over a period (revenue, expenses, best products, biggest customers); it uses the Reports page's own numbers, so members get the same no as on that page. Each lookup returns at most twenty rows, so it summarizes a long list. Ask a narrower question for detail. The + Context button lets you name the area a question is about (Orders, Quotes, Invoices, Customers, Products, Expenses, Inventory and filaments, Printers and maintenance, or How FoxTrack works) so it reaches for the right lookup first; areas whose permission is off are shown grayed out.
One-click changes: move an order, mark an invoice paid, set a quote's status
With Offer drafts on, ask the assistant to make one of three changes and it offers a button under its reply instead of making it: move an order to another board column, mark an Outstanding invoice as paid, or set a quote to Draft, Pending, Accepted or Rejected. Each button names the record and the change, and nothing happens until you press Confirm. A button is offered only for a record whose full number you typed in the chat yourself (ORD-0042, ord-0042 or 0042; a bare 42 is not enough): text inside a record can never make one appear. If you said yes to a change without the number, the assistant asks you to type it. The press does exactly what the app's own control does, as you: a moved order runs that column's rules as if you had dragged it, and a paid invoice is marked paid in full. It offers at most five buttons in one reply, and a button turns into Done once pressed. There is no button that deletes, archives or removes anything.
Draft orders and draft expenses
The assistant can draft an order or an expense. Both need the Offer drafts permission, and both are only a filled-in form until you save it.
Describe an order in chat (customer, lines, quantities, prices, due date) and the assistant offers a Review draft order button under its reply; it opens the normal order form prefilled, matching customer and product names against your own records where it can, for you to check and save. Describe an expense (what and how much) and it offers Open as expense draft, choosing the category itself. Nothing reaches your data until you save the form, and the button turns into a plain note once you have. A draft from a messy message keeps its doubts in Notes (for example a count the customer gave as 3 or 4), so read them before you save. The button lasts until you send another message or reload the page; after that the reply says the draft is no longer available, and asking again rebuilds it.
Adding filament spools from a list
With Offer drafts on, paste a stock list into chat and ask the assistant to add it, for example a brand and material on one line followed by lines such as 2x Black and 3x White, or one spool type per line. The assistant reads the list into rows (brand, material, color, how many) and shows them under its reply with a swatch, the spool weight and price copied from a matching spool or catalog entry where you already have that type, and how many of it are in stock. Change or remove any row, then press Add to create the spools through the normal filament form rules; the spool limit of your plan still applies. If the assistant cannot tell which lines belong together, it asks you to send the list again with one filament per line as Brand, Material, Color, Count.
Attaching images and scanning receipts
With Analyze images on, the paperclip button attaches a PNG, JPEG or WebP up to 5 MB. Attaching does not send: the image waits as a chip above the box so you can type a question and send both together; send with no question and it describes what it sees. A slicer screenshot, a photo of a print, a spreadsheet or a label all work. A receipt or invoice also comes back with its expense fields and an Open as expense draft button, with the photo already attached to the draft and any tax on the receipt written in Notes. If an expense with the same date, amount and vendor is already logged, Add expense asks before adding it again. A screenshot of a customer's order, with Offer drafts on, comes back with a Review draft order button, and a photo of a spool label or its box comes back as the same spool list as a pasted one, with its Add button. A GIF cannot be read. Images are never stored in chat history, only the file name and the answer.
Chat history and who can see it
Chats are stored per member so you can come back to them. The Chat history button (the clock at the top of the panel) lists them, newest first, with a search box once there are several. New chat (the pencil) starts another with a few starter questions picked for the page you are on. Pressing one asks it, except the spool list, which goes into the message box for you to edit. You can delete your own chats: the trash icon asks Delete this chat for good? first. Removing the AI setup keeps every chat; they show again once a provider is connected. Workspace owners and admins can switch the list to All chats and read every chat in the workspace, including yours, but cannot continue or edit one; the line under the message box says so. Switching workspace starts the panel afresh.
Under each reply, Copy reply copies its text. Under the newest one, Ask again sends your last question again as a new message, for when an answer missed; the first answer stays in the chat. Enter sends and Shift+Enter starts a new line. Stop cancels a reply that is taking too long; the question is kept, the answer is missing, and Ask again sends it once more. If the provider itself does not answer in time, the panel says so and nothing is saved, so Retry sends the question again. On a wide screen, Wide panel (the arrows at the top) widens the panel, and this browser remembers it. A message can be up to 20,000 characters (2,000 with an image attached); a counter appears near the limit.
Privacy
With a cloud provider, whatever the permissions allow (your question, the rows looked up, an attached image) is sent to that provider and their data terms apply; check how they handle retention and training before connecting a key, especially on free tiers. Running a model locally is the most private option: your question, the rows looked up and any attached image are never sent to an AI provider. Your chat history and the records the assistant looks up still go through FoxTrack as normal. The assistant is marked experimental: replies can be wrong, so review everything before you save it.
Still stuck?
Email info@foxtrack.studio or ask on the FoxTrack Discord. Inside the app, the question mark in the top bar sends a bug report or feedback.

