1What the AI can do
There is no chat box. The AI is reached through five buttons, each doing one job.
| Button | Where it appears | What it does |
|---|---|---|
| Summarise | Customer, opportunity and project pages | Writes one short paragraph from the record and its recent timeline |
| Suggest next step | Opportunity page | Proposes one next action. Works only when the deal has had no activity for 7 days |
| Read supplier quote | RFQ page | Reads a pasted quotation or a PDF and fills a supplier-quote form for you to check and save |
| Draft reply | Email and SMS compose window | Turns a one-line instruction into a draft message |
| Translate | Compose window and the "add note" window | Translates the text between Persian and English |
The buttons are marked with ✦ and appear only when AI is on and that feature is enabled.
2Choose how to run it
You pick one of three settings, and you can change it at any time.
| Off | Local model (Ollama) | Cloud API | |
|---|---|---|---|
| Cost | None | None after you have the PC | Paid per use |
| Internet needed | No | Only to download the model once | Yes, for every request |
| Where your data goes | Nowhere | Stays on your own PC | Sent to the provider you choose |
| Quality | — | Depends on the model and the PC | Usually the best |
| Suits | Everyone at first | The offline (Windows) package | The hosting package |
- Hosting package on shared hosting: a local model cannot run there, so the choice is Off or Cloud API.
- Offline package: a local model keeps everything inside the office. Cloud API also works if the PC has internet.
3Open the AI settings
- Sign in as an administrator.
- Open Settings.
- Press ✦ AI settings at the top of the page.
The installer also has an AI section, but leaving it on Off and setting it up later is fine.
4Set up a local model
With the Windows offline installer: during installation, tick the optional AI task and pick a model size. The installer downloads Ollama and the model for you; neither is inside the installer file, so this step needs internet once.
| Size | Model the installer offers |
|---|---|
| Small | qwen2.5:3b |
| Medium | qwen2.5:7b |
| Large | qwen2.5:14b |
Choose by the PC's memory. A larger model writes better but answers more slowly, and on a PC without a graphics card even the small model can take a while.
By hand, on any PC:
- Install Ollama from
ollama.com. - Open a terminal and download a model, for example:
ollama pull qwen2.5:3b - Leave Ollama running.
Then, in AI settings:
- Set Provider to Local model (Ollama).
- Leave Base URL as
http://127.0.0.1:11434/v1. - Press Save.
- Press Find models, then click the model you want. Its name goes into Model name.
- Set Timeout to 120 seconds or more. The default of 30 is often too short for a local model.
- Press Save, then Test connection. You should see "Connection successful".
Save before pressing Find models or Test connection: both use the saved settings, not what is typed on screen.
5Set up a cloud API
A cloud API is a paid service from an AI company. It is separate from chat subscriptions: a ChatGPT, Gemini or Claude subscription does not include API use.
- Create an API account with a provider and add a payment method.
- Create an API key in the provider's console. Treat it like a password.
- In AI settings, set Provider to Cloud API and fill in the Base URL (the provider's OpenAI-compatible address, ending in
/v1), the API key, and the Model name exactly as the provider's documentation gives it. - Press Save, then Test connection.
The CRM talks to any provider that offers the OpenAI-compatible "chat completions" format. Take the base URL from the provider's documentation.
After saving, the key is stored encrypted and is never shown again. To keep the same key, leave the field empty when you save other changes. To replace it, type the new one.
Before sending customer data to a provider, read its terms on two points: whether it serves your country, and whether it uses API data to train its models.
6What a cloud API costs
Providers charge per token. A token is a piece of a word; a page of text is roughly 500 to 700 tokens. You pay one price for what you send (input) and a higher price for what comes back (output).
(input tokens × input price + output tokens × output price) ÷ 1,000,000
A worked example, using a small model priced at $1 per million input tokens and $5 per million output tokens:
| Tokens | Cost | |
|---|---|---|
| A customer summary: record and timeline sent | 4,000 in | $0.0040 |
| The summary that comes back | 500 out | $0.0025 |
| One request | about $0.0065 |
| Team use | Requests per month | Monthly cost |
|---|---|---|
| Light: 10 a working day | about 220 | about $1.50 |
| Normal: 50 a working day | about 1,100 | about $7 |
| Heavy: 200 a working day | about 4,400 | about $29 |
These figures are estimates from that example price. Prices differ by provider and model and change over time, so take the current numbers from your provider's pricing page. Reading a long supplier quotation uses more input tokens than a summary and costs more per request.
There is no monthly fee in this model: with no requests, the cost is zero.
Keep the cost under control
- Daily limits: AI settings has a company limit (default 500 requests a day) and a per-user limit (default 50). When a limit is reached, the buttons report it and nothing else in the CRM is affected.
- Spending cap: set a monthly budget or hard limit in your provider's account as a second safeguard.
- Feature switches: turn off any of the five features you do not need.
- Small model: summaries, drafts and translation do not need a provider's largest model.
See what has been used
- In AI settings, enter your provider's prices in Input cost / million tokens and Output cost / million tokens.
- Press AI usage at the top of the page.
The usage page lists, per day and per user, the number of requests, how many succeeded, the tokens in and out, and the estimated cost. The estimate is a guide; your provider's invoice is the real figure.
7Using each feature
Summarise: open a customer, opportunity or project and press ✦ Summarise. A window shows the draft. Accept draft copies it to the clipboard; Discard closes it. Nothing is written to the record.
Suggest next step: open an opportunity and press its button. If the deal has had activity in the last 7 days, the CRM replies that it is not inactive and does not call the AI.
Read supplier quote:
- Open the RFQ the quotation belongs to and press ✦ Read supplier quote.
- Paste the quotation text, or choose a PDF of up to 10 MB.
- A form opens with the supplier, reference, currency, items, prices, freight and lead time filled in.
- Check every field against the original, choose the supplier from your supplier list, and press Save.
Nothing is stored until you press Save. Text-based PDFs work; a scanned image has no text to read, so paste the text for those.
Draft reply: in the email or SMS compose window, press the draft button, type a one-line instruction such as "thank them and confirm delivery next week", and review the result. Accepting puts the draft into the message body, where you can edit it before sending.
Translate: in the compose window or the "add note" window, type or paste the text and press translate. Accepting replaces the text with the translation.
8Privacy and limits
- What is sent: only the record you have open (its own fields and up to 30 recent timeline entries), plus any text you typed or pasted for that request.
- What is never sent: passwords, API keys, other records, or other users' data.
- Permissions: a user can only use AI on records their role is allowed to read.
- Local model: the data stays on the PC running Ollama.
- Cloud API: the data for that one request goes to the provider you chose. Tell your team this before switching it on.
- Log: every request is recorded with the user, feature, record, model, token counts, duration and whether it succeeded. The text itself is not stored in the log.
- Accuracy: AI output can be wrong, especially numbers in a supplier quotation. Always check before saving or sending.
9When something goes wrong
A failed AI request shows a short message and leaves the page fully usable.
| Message | Cause | What to do |
|---|---|---|
| AI is turned off | Provider is set to Off | Choose Local or Cloud in AI settings |
| ai_not_configured | Base URL or model name is empty | Fill both in and save |
| AI connection failed | The address is wrong, or Ollama is not running | Check the base URL; start Ollama |
| AI provider HTTP 401 | The API key is wrong or revoked | Enter a valid key and save |
| AI provider HTTP 404 | The model name or base URL is wrong | Copy both exactly from the provider's documentation |
| AI provider HTTP 429 | The provider's own rate or spending limit was hit | Wait, or raise the limit with the provider |
| AI provider timed out | The model took longer than the timeout | Raise the timeout; for a local model, try a smaller one |
| Your daily AI limit has been reached | The per-user limit was hit | Raise it in AI settings, or wait until tomorrow |
| Company daily AI limit reached | The company limit was hit | Same as above |
| This AI feature is disabled | The feature's switch is off | Tick it in AI settings |
| The AI result was not valid quotation JSON | The model did not return the quotation in the required form | Try again, use a stronger model, or enter it by hand |
| This deal has activity within the last 7 days | "Suggest next step" is for inactive deals only | No action needed |
If a local model is slow or its Persian is poor, move up one model size, or switch that company to a cloud API.
10Quick checklist
- Decide: Off, Local or Cloud.
- Local: Ollama installed, model downloaded, timeout raised.
- Cloud: API account, key, base URL, model name, spending cap at the provider.
- Test connection shows "Connection successful".
- Daily limits set.
- Prices entered so the usage page can estimate cost.
- Team told that AI output is a draft to be checked.