Skip to content
Firmspace
Back to blog

AI receipt scanning in the CRM: from photo to expense

Every firm knows the drawer: receipts, fuel slips, invoices from suppliers. The money is spent, the paper keeps lying there, and typing it all into the accounting by hand is the task nobody wants. In Firmspace that drawer is replaced by a photo.

Open Finance → Expenses and press the receipt scan button. You pick a photo or a PDF; the AI reads the document and fills the fields of the new expense form for you. You do not retype anything that is already printed on the paper.

The picker accepts JPEG, PNG, WebP and PDF. The size limit is the same as for any file in the CRM: 4 MB per file, because the platform keeps the upload limit low enough for a mobile connection to survive it. A photo taken with a phone almost always fits.

What happens after you choose the file: it is uploaded into the firm's own storage, and then the text is read from it. For a PDF the text layer is extracted; for a photo the image itself is shown to the model. Only then does the AI see the document.

The AI gets a strict instruction: read only what is actually printed on the document and never invent a vendor, an amount, a date or a tax rate. The answer comes back as a fixed set of fields — vendor, amount, tax rate, currency, date, category — and each one is then normalised and range-checked.

The vendor name and the category land in the form as text. The amount is a number, the date is expected as YYYY-MM-DD, the tax rate is squeezed into the range from 0 to 100, and the currency is normalised to a short upper-case code such as EUR.

If both a net and a gross amount are printed on the receipt, the AI takes the net amount and the printed tax rate. That is the version an accountant needs, and the one that survives a later conversation about input tax.

What the AI cannot read, it leaves empty instead of guessing: text fields come back as an empty string and numbers as zero, and the category may stay blank when the document really does not say what it was for. You can complete those fields in the form in a few seconds, or pick the category from the firm's own list of categories and add a new one in one click.

The scanned receipt does not become an expense by itself. The AI only proposes values; the expense is written to the database when a person presses Save. A misread digit is therefore corrected in the form and never slips silently into the books.

The photo stays attached to the expense. The file keeps living in the firm's document storage, and the expense keeps its reference to that file, so when an accountant or a tax auditor asks to see the original, it is one click away and not a search through a mail folder.

The upload counts against the firm's storage quota, but only for files that physically live there. Files that are merely linked from Google Drive and Google Docs do not consume the quota, which is why the limit moves slower than people expect.

A scan is not free of the AI budget: it takes exactly one request from the firm's daily AI limit. That is the same limit the chat assistant, automation steps and other AI features share — receipt scanning is not billed as a separate add-on.

When that limit is used up, the receipt scanner stops with a clear message: the daily AI limit of the plan is used up, it resets tomorrow. Nothing is half-saved and the expense form simply waits for the next day or for a higher plan.

If the AI is not set up on the site at all, the scan button answers honestly that AI is not configured yet, and the expense can still be entered by hand. The accountant's workflow never depends on a model being switched on.

A scanned PDF needs a text layer. If the AI gets a pure scan with no text inside, it says so and suggests photographing the receipt instead of sending a scanned PDF — a small detail that saves a lot of head-scratching.

The same assistant can also answer expense questions in plain language. Ask it for the expenses of last month and it returns them newest first together with the total per currency, and it can filter by part of a vendor name or by category.

Receipts are not the only way an expense appears. The assistant can also record an expense from a chat message, but that path works differently on purpose: there you speak the gross amount you paid, and the assistant shows a confirmation card before anything is saved.

One visible detail in the form: the currency field only appears when the document's currency differs from the firm's default. If your company works in euro, a euro receipt does not ask you a pointless question.

A receipt from a German supplier in German, a Ukrainian check in Ukrainian or an English invoice are read the same way: the AI reads what is printed, not a dictionary. That is what makes the feature usable for firms that buy across borders.

The limits are named honestly, because they matter in daily work: AI is not part of the entry plan, the Company plan carries 100 AI requests per day and the maximum plan 300. Automation, AI and document sections are switched on only from the plan that includes them.

There is also a limit that shows intent rather than technology: the AI is forbidden to invent numbers, and that rule is written into the instruction it works by, not into a marketing page. The person stays responsible for the accounting; the AI removes the typing.

Let us automate your next process together.

Describe a recurring workflow to us. Together we will check whether and how it can be automated sensibly.