Spals ran three product lines with no CRM at all — quotes were rebuilt by hand in Word and the estimation system lived in its own world. We built a CRM from scratch and wired it directly into Tāmēšana, their in-house ERP and estimation engine.
Spals had no CRM in place. Sales for three different product lines — Tambour doors, Kitchens, and Scandor — was tracked across spreadsheets, inboxes, and Word documents. Each line had its own pricing logic, branding, and VAT rules, all applied by hand. Their estimation engine, Tāmēšana, held the real cost data but had no connection to whatever the client actually saw on the offer. LinkedIn lead generation lived in yet another spreadsheet nobody trusted. There was no shared pipeline, no version history, and no single number anyone agreed on.
We built the CRM end-to-end and integrated it directly with Tāmēšana — their existing estimation ERP — so the two systems behave as one. Deals know which product line they belong to and render the correct template, badge, and VAT automatically. Offers are versioned and numbered (YYXXXX, then {base}-v2, v3…), and the deal headline value syncs to the newest offer unless overridden. Notes, clients, folder paths, and workflow stages stay in sync across both systems via a dedicated integration layer.
Pipeline, stages, deal types, properties, and dashboards designed around how Spals actually sells — not a generic template bent into shape.
Notes sync both ways between deals.tamesana_notes and tamesana.description. Quick Add performs a dual insert into companies (CRM) and clients (ERP) so records line up automatically.
Both systems write to the same S:\Klienti App tree on the file server, with emoji-stripped paths and double-prefixing prevented.
Estimation stages (Plānots, Procesā, Gatavs, Pabeigts) mirror the production board so sales, estimation, and production see the same status.
Tambour, Kitchen, and Scandor each get a distinct badge, template set, and property logic; Scandor enforces the Tambour doors flag automatically.
parent_offer_id / version / is_latest schema. Edit dialog's 'Save as new version' produces {base}-v{n}, keeping every offer the client ever saw.
Offer language selects VAT automatically — EN = 0%, LV = 21% — rendered on the PDF with correct formatting and explicit VAT lines.
Roboto-rendered templates with per-brand palettes, red discount rows, and YYXXXX numbering — generated in seconds.
Daily cron fills the 'Today' lane, dedupes via normalized LinkedIn URLs, and progresses stale leads with a Fisher–Yates shuffle from the potential pool.
Headline value tracks the newest offer total automatically — sales, estimation, production, and finance always read from one number.
Six trigger conditions with @mention formatting and per-user read state — built directly on the CRM event log.
is_archived and is_deleted = false filters applied across the schema — nothing disappears, everything stays auditable.



Documented every rule difference between Tambour, Kitchen, and Scandor — pricing logic, branding, VAT, properties, flags — before writing a single table.
Pipeline, stage history, deals, offers (with parent_offer_id / version / is_latest), companies, contacts, and outreach leads — all with RLS and soft-delete from day one.
Two-way notes sync, dual client inserts, shared folder path generation, and stage mirroring between CRM deals and Tāmēšana estimations.
Roboto-rendered branded templates with explicit VAT lines, red discount rows, language-driven VAT selection, and YYXXXX → {base}-v{n} numbering.
Outreach stages, dedup edge function on normalized URLs, daily cron filling 'Today' and progressing stale leads.
Six-trigger in-app notification system with @mentions, plus Won and Ražošana analytics fed by deal_stage_history.
Imported existing leads, companies, and historical deals — and switched the team off Word and Excel for quoting.
Quotes that took an hour now render in seconds — with correct VAT every time.
Quote prep alone, on top of the time recovered from chasing LinkedIn leads and reconciling spreadsheets.
Sales, estimation, production, and finance all reading from the same numbers for the first time.
Every offer version a client ever saw, every stage transition, every note — auditable and intact.
LinkedIn pipeline runs itself daily — no more 'who's following up?' meetings.
Tāmēšana and the CRM behave as one system — same clients, same folders, same stages, same numbers.
Tell us about your sales process and the tools you already rely on. We'll build the CRM around them — not the other way around.
Book a Free Consultation