System Solutions

A CRM system for B2B, distribution, and project-based sales

A CRM system for B2B, distribution and project-based sales teams in Cambodia, purpose-built for how you sell, in Khmer and English. Leads, contacts, deals, pipeline and a dated activity timeline; KHR and USD on one deal with the NBC rate stored; mobile access for reps in the field; a won deal handed to quote, order and invoice without retyping. Configurable workflows for B2B, distribution and project-based sales.

Do I need a CRM, or are Telegram, a phone and an Excel sheet enough?

You need a CRM when a deal's history lives in one rep's phone and the Excel sheet holds what someone remembered to type.

Telegram and Excel are enough while the owner is in every conversation. The break happens on a Monday: nobody can say which open deals were touched last week, by whom, in which currency, or what was promised, without ringing the reps.

The test is the handover: when a rep leaves, the deals leave in their phone. A CRM has done its job when you change the owner on an account and the timeline stays unbroken.

Do I need a CRM, or are Telegram, a phone and an Excel sheet enough?
Where the deal lives todayWhat it holdsWhat it cannot answer on Monday
Telegram threadthe ask and the haggling, in one rep's phonewhich deals were touched last week
Facebook Page inboxthe first message and the post it came fromwho owns the reply
Phone call loga number and a durationwhat was promised
Excel rowa customer and an amount, typed on the day someone rememberedthe currency it was quoted in
Quote PDF in a Drive folderthe price and the datewhether it was followed up
The rep's memorythe follow-up dateanything, once the rep has left

Two honest exits. Counter sales belong to the till's record; if quotes and invoices already run as one flow and only the half before the quote is missing, that is Sales, quote to invoice; sometimes the answer is no software yet: a business consultation. Excel's six warning signals are on the guide.

Does the pipeline look the same for B2B, distribution and project-based sales?

No: B2B is a line from lead to won or lost, distribution a loop around the reorder, project sales a gated rail of milestones.

One template for every kind of sale is the commonest configuration mistake. B2B is a line: Lead, Qualified, Quote sent, Negotiation, then a fork to Won or Lost (reason kept). Distribution is a loop: Account, Visit, Order draft, Delivered, Reorder due, and back to Visit. Project sales are a gated rail: Bid, Proposal, Award, then each Milestone, invoiced by Accounting, not here.

A stage is a fact a manager can check: quote sent has a quote number, visit made has a device time. Configurable workflows means a beverage distributor that also bids on a hotel contract runs two shapes, neither forced through the other's stages. The quote stage belongs to the Sales module; the loop is on the field sales page, the line on the CRM guide, and a shape no package holds is custom software.

B2BLeadQualifiedQuote sentNegotiationWonLostreason keptDistributionAccountVisitOrder draftDeliveredReorder duethe deal is the accountProjectBidProposalAwardMilestoneMilestoneMilestoneinvoiced by Accounting, not here
B2BLeadQualifiedQuote sentNegotiationWonLostreason keptDistributionAccountVisitOrder draftDeliveredReorder duethe deal is the accountProjectinvoiced by Accounting, not hereBidProposalAwardMilestoneMilestoneMilestone
fig. 01 · B2B a line with a fork, Distribution a loop (the deal is the account), Project a gated rail

What does a CRM actually record that a chat thread cannot?

Every touch on a deal as a dated row (who, when, which channel, what was promised), so a stage is earned rather than typed.

A deal is a record: a customer, a value in the currency it was quoted in, a stage, an owner and a timeline. The timeline is what a chat cannot give you: a call, a visit, a quote sent, each a dated row. Stage is derived from the last dated action, not typed, so a deal with no row in 21 days is stale.

Nothing is edited in place. A lost deal keeps its reason, a changed price is a new row, and an owner change leaves every row before it standing. Pipeline value is the sum of open deals, on one record shared by sales, stock and accounting. Below, one invented deal, USD 4,200; the CRM guide walks it, and the Telegram leads page covers its first row.

What does a CRM actually record that a chat thread cannot?
DateRow writtenByStage earned
3 MarLead from Facebook Page inbox, a Battambang wholesaler (invented)systemLead
4 MarCall, 12 minutesRep AQualified
6 MarSite visit, Battambang, logged on the phoneRep AQualified
7 MarQuote sent, USD 4,200, rate and date storedRep AQuote sent
14 MarFollow-up dueRep AQuote sent
21 MarOwner changed to Rep B; every row above stayssales managerNegotiation
25 MarWon, reason recordedRep BWon
25 MarHanded to sales order SO-0231 in Sales; the CRM writes nothing furthersystemWon

Where do leads from Telegram and Facebook go?

Into one lead record carrying the channel, the handle, the first message and a follow-up date, while the reply still happens in the chat.

The customer stays on Telegram. What changes is that the first message creates a lead record: channel, handle or number, first message, product asked, assigned rep, follow-up due, matched on phone number, because here the phone number is the person. One person writing on Telegram, Facebook Messenger and a phone call is one lead, not three.

A build covers a Telegram bot or a Facebook Page inbox connection that does that capture, scoped per channel as API integration work. No double typing: the row is the by-product of sending the quote or closing the chat, and the reply still goes back down the same channel. Who owns the handle when a rep leaves is the Telegram page. The line with the till: the POS product's Telegram is alerts going out to an owner's phone; this is leads coming in, and the two share nothing.

build scope: bot or inbox integrationTelegramFacebook Messengerwebsite formphone callreferral or walk-intyped in twenty seconds; no botmatched on phone numberlead recordchannelhandle or numberfirst messageproduct askedassigned repfollow-up duethe reply still goes back down the same channel
build scope: bot or inbox integrationTelegramFacebook Messengerwebsite formphone callreferral or walk-intyped in twenty seconds; no botmatched on phone numberlead recordchannelhandle or numberfirst messageproduct askedassigned repfollow-up duethe reply still goes back down the same channel
fig. 02 · five lanes into one lead record; the dashed box is build scope: bot or inbox integration; a phone call, a website form, a referral or walk-in are typed in twenty seconds; no bot

How does a pipeline work when quotes are in dollars and payment arrives in riel?

Each deal stores its amount, currency, NBC rate and rate date; the pipeline converts once at each deal's stored rate, so totals never drift.

A deal is quoted in the currency the customer thinks in. The CRM stores the amount as quoted, the NBC rate of that day and the date; the 2025 average was 4,011 riel per dollar (National Bank of Cambodia, Financial Stability Review 2025). The pipeline total shows both currencies, converted once at each deal's stored rate.

Three invented deals at a stored rate of 4,011: A, 12,000,000 riel, is 2,992 dollars; B, 4,500 dollars, stays 4,500; C, 20,000,000 riel, is 4,986 dollars; the pipeline total is 12,478 dollars.

How does a pipeline work when quotes are in dollars and payment arrives in riel?
DealQuotedRate stored (NBC, quote date)In USD
A12,000,000 KHR4,0112,992
BUSD 4,500none, quoted in USD4,500
C20,000,000 KHR4,0114,986
Pipeline totaltwo currenciesconverted once, at each deal's stored rate12,478

Both columns matter: the riel passed the dollar inside Bakong in 2025, 58.2% of transaction volume against 49.3% in 2024 (the same NBC review), as one till already holds both. Tax conversion happens on the invoice date and belongs to the next section, the handoff spoke and the accounting system.

Can sales reps use it from the road, and what happens when the signal drops?

Yes, from a phone: a visit is written on the device and syncs when the signal returns; the risk is the building, not the grid.

A rep in a wholesaler's back office, Battambang (no signal) logs a visit, a note, a photo, a draft quote on the phone; the row is saved on device at 14:32 and waits in a queue for the office server. The grid is not the risk: the dead spot is a concrete back office, or ten seconds mid-save.

Up when the signal returns: visits, notes, photos, draft quotes. Down: price list, customer list, assignments, stage changes. A price changed in the office at 14:10 waits for an offline phone; a conflict is surfaced to the rep, never resolved silently.

This is the specification the build is held to, delivered as mobile integration into a back office or a field-rep app; there is no app store listing to hand a buyer today. The field sales page has the day in the life; a till that keeps selling offline is a different problem.

a wholesaler's back office, Battambang (no signal)visitnotephotodraft quote14:32saved on devicedevice time, not server timequeueoffice serverone recordthe office reads itthe ledger never waitsupvisits, notes, photos, draft quotesdownprice list, customer list, assignments, stage changesconflictprice changed in the office 14:10draft quote on the phone 14:32both kept, flagged for the repthe risk is the building, not the griddead spot: a concrete back office, two rooms in
a wholesaler's back office, Battambang (no signal)visitnotephotodraft quote14:32saved on devicedevice time, not server timequeueoffice serverone recordthe office reads itthe ledger never waitsupvisits, notes, photos, draft quotesdownprice list, customer list, assignments, stage changesconflictprice changed in the office 14:10draft quote on the phone 14:32both kept, flagged for the repthe risk is the building, not the griddead spot: a concrete back office, two rooms in
fig. 03 · up lane, down lane, and the conflict (price changed in the office 14:10, draft quote on the phone 14:32: both kept, flagged for the rep); specification, not a shipped handheld

When a deal is won, does the CRM raise the invoice and file the VAT?

No: a won deal becomes an order in Sales and an invoice in Accounting; a person files the return, and the CRM files nothing.

No. The won deal carries across once, so nobody retypes: customer, TIN, currency, quoted price, delivery address, rep. Quote and order (Sales) writes the quotation and the sales order; Invoice (Accounting) writes the invoice, with USD converted at the NBC rate on the invoice date and the return reported in riel; the Monthly VAT return is filed by a person, from figures the ERP prepares, and the CRM files nothing.

Deal (CRM) is the first station, and the bold line after it reads the CRM stops here. The monthly return's figures are the accounting system's job, per how GDT e-VAT filing works; a vendor who blurs that is describing an adapter that does not exist.

The boundary holds because the CRM sits on one record shared with stock and accounting: the order in the Sales module checks stock the warehouse can promise, available, not on-hand, and the ERP prepares the return figures from that invoice. From a won deal to the GDT return is the finance lead's page.

DealCRMstagequoted priceQuote and orderSalessales orderstock movementInvoiceAccountingjournal linetax lineMonthly VAT returnfiled by a personVAT returnin rielnever written herejournal linetax linestock movementUSD converted at the NBC rate on the invoice datecarried acrosscustomerTINcurrencyquoted pricerepthe CRM stops here
DealCRMstagequoted pricenever written herejournal linetax linestock movementthe CRM stops hereQuote and orderSalessales orderstock movementInvoiceAccountingjournal linetax lineUSD converted at the NBC rate on the invoice dateMonthly VAT returnfiled by a personVAT returnin rielcarried acrosscustomerTINcurrencyquoted pricerep
fig. 04 · four stations and what each writes (the CRM: stage and quoted price); the carried across rail beneath (customer, TIN, currency, quoted price, rep) is ticked at every one, and the struck-through row under the first reads journal line, tax line, stock movement: never written here

A packaged CRM, or one built for how you sell: which fits?

A packaged CRM where lead, quote and pipeline flows are ordinary; a purpose-built one where the way you sell is the way you compete.

Chosen in discovery, with no referral fee from any vendor in the comparison. A packaged tool wins where the pipeline is standard, the team works online, and English screens are acceptable; if that is you, we will say so and point you at the comparison.

Most packaged tools fall short on the same three Cambodian questions: Khmer is a translation layer rather than the working language, a deal carries one company currency, and Telegram arrives through a marketplace module or not at all. Each is checked per vendor, dated, in the comparison below.

A packaged CRM, or one built for how you sell: which fits?
DecisionTelegram + ExcelPackaged SaaS CRMPurpose-built
Per-user licensingNonePer user per month, typicallyNone
Khmer interfaceWhatever you typeVaries by vendor: checked per tool in the comparisonWritten in Khmer first
KHR and USD on one deal with a stored rateTwo columns, no rateVaries by vendor: checked per tool in the comparisonBuilt in
Telegram and Facebook captureThe rep's phoneVaries by vendor: checked per tool in the comparisonScoped integration
Field use when the signal dropsNoneVaries by vendor: checked per tool in the comparisonScoped per build
Handoff to order, invoice and GDT filingRetype itVia an accounting system; none filesSame record, one ledger; figures ready to file
Who owns the data and the codeYou, the fileData export; no codeData and source yours
Time to stand upTodayDaysScoped in discovery

Purpose-built wins for Telegram-first capture, a quoting rule a package argues with, field use with no signal, and Khmer collation in the contract; source code, schema and data dictionary are yours at go-live. Eight CRM tools compared fills the packaged column, dated; custom software is the build route within System Solutions.

How long does it take, what does it cost, and how do we get off the sheet?

8 to 15 weeks for a single-module scope, fixed price after paid discovery; the sheet is frozen, cleaned and imported as open deals only.

A single-module SMB scope runs 8 to 15 weeks after a paid discovery of 1–2 weeks, and a CRM-alone build is a module scope, quoted after discovery. SMB system implementations (single entity, standard modules: accounting, CRM, inventory, sales) typically run $8,000–$30,000 all-in on a fixed-scope basis, from Scale project data.

The calendar goes to de-duplication (the same customer under a Khmer spelling, a Latin spelling and a nickname) and to connecting channels; the import runs in an afternoon. Several sheets, provinces, and CRM plus Sales in one build lengthen it. The Cambodia ERP cost calculator gives a band first; the ERP implementation timeline covers the longer scopes System Solutions quotes.

The order below is the argument: load the deals before agreeing the stages and every deal lands in a stage called in progress. The hard steps are the phones and the ownership decision; step 8 is the one people skip.

  1. Freeze the sheet on a cut-off date: take a copy and treat it as the only version anything is measured against; deals that move after the date are entered into the new system, never merged back.

  2. Export contacts off every rep's phone: including the ones saved under nicknames, which is a conversation before it is a file.

  3. Deduplicate on phone number, then on TIN: one person on three channels is one contact, and one company under three spellings is one account, the same job an accounting migration does on the customer master.

  4. Name one owner per account: decided by the sales manager, not by whoever ran the import.

  5. Agree five stages before configuring any: written on one page, with the dated action that earns each one.

  6. Import open deals only, with currency and last touch: amount, currency, stored rate and quote date, nothing closed.

  7. Connect the channels one at a time: Telegram first if that is where the leads are, then the Facebook Page inbox, each tested with a real enquiry before the next.

  8. Run both for two weeks, then lock the sheet: read-only on a named date, so the old habit has nowhere to go.

How long does it take, what does it cost, and how do we get off the sheet?
What migratesFrom whereIdentified byWhat stays behind
Contactsreps' phones and Telegramphone numberthe chat history
Accountsinvoices and the accounting customer masterTIN, then nameclosed invoices, which stay in accounting
Open dealsthe sales spreadsheetquote number, or account plus quote datelost deals older than the cut-off
Activitiesnothing, they start on day onedate plus ownerthe old notes, archived read-only

Glossary (English and Khmer)

CRM vocabulary in both languages, starting with the pair vendors merge: a lead is someone who might buy, a customer is someone who has.

A vendor whose demo uses one Khmer word for a lead and a customer has translated a screen, not built for a sales team. Lead, deal and pipeline arrived here through English tools nobody translated, so a pipeline meeting starts by agreeing what a stage means.

Cut a Khmer name at a character count and you break a grapheme cluster, leaving a vowel sign with no consonant; sort by code point and the list comes out in an order no Khmer reader expects. So truncation is cluster-safe and sorting uses Khmer collation, as the inventory page requires of labels; the CRM guide draws the cut.

Pipeline and the initials CRM stay in English: sales teams here say the English word, and the nearest Khmer gloss for pipeline means a network. Every gloss is reviewed by a native speaker before publish; a term the team ignores is worse than a gap. Order, invoice and tax line belong to the ERP page.

  • CRM, customer relationship management (ប្រព័ន្ធគ្រប់គ្រងទំនាក់ទំនងអតិថិជន): the system that holds every customer, every open deal and every dated touch on it in one place; the initials stay in English in conversation, the Khmer is what a screen label reads.
  • Lead (អតិថិជនសក្តានុពល): someone who might buy and has not yet been qualified: a first message on Telegram, a number from a trade fair, a referral. A lead has a channel and a date; it does not yet have a value.
  • Contact (អ្នកទំនាក់ទំនង): the person you talk to, with their Telegram handle and phone number, attached to an account. A distributor's buyer changes jobs; the account stays, the contact moves.
  • Account, customer (អតិថិជន): the company or shop that buys, held once under one name with its TIN, whatever spelling each rep uses in chat. Three spellings of one customer is the commonest reason a pipeline total is wrong.
  • Deal, opportunity (ឱកាសលក់): one potential sale to one account, with a value in the currency it was quoted in, a stage, an owner and a timeline. A customer can have several open at once.
  • Pipeline: every open deal laid out by stage, with a total per stage in USD and KHR converted once at each deal's stored rate. Left in English because Cambodian sales teams say the English word, and the nearest Khmer gloss (a network, a channel) means something else.
  • Stage (ដំណាក់កាល): where a deal sits, earned by a dated action rather than typed: lead (អតិថិជនសក្តានុពល), qualified (បានពិនិត្យ), quote sent (បានផ្ញើសម្រង់តម្លៃ), negotiation (កំពុងចរចា), won or lost (ឈ្នះ ឬ ចាញ់). Five is enough; twelve is a sheet nobody keeps.
  • Activity (សកម្មភាព): one dated touch on a deal: a call, a message, a visit, a quote sent, a sample delivered, carrying who did it and when. The timeline is the sum of these rows.
  • Follow-up (ការតាមដាន): the next dated action a deal is waiting on, with an owner. A deal with no follow-up set is a deal nobody owns.
  • Quotation (សម្រង់តម្លៃ): the price offered, in one currency, on a date, with the NBC rate of that day stored beside it. Sending it is the action that moves a deal to quote sent; the invoice converts again on its own date.
  • Won, lost (ឈ្នះ ឬ ចាញ់): the two ways a deal closes. Lost keeps a reason from a short list (price, timing, competitor, no response) so the reasons can be counted next quarter instead of remembered.
  • Conversion rate (អត្រាបម្លែង): deals won divided by deals opened over a period, by rep, by channel or by stage. It is the number that says whether Telegram leads or referrals deserve more of a rep's week.
  • Territory (តំបន់): the accounts or the area a rep owns, by province, by district or by customer list, which decides who a new lead is assigned to and whose pipeline it counts in.
  • Tax identification number, TIN (លេខអត្តសញ្ញាណកម្មសារពើពន្ធ): the GDT number the invoice will need, captured once on the account so the accounting system never types it twice; the GDT explainer owns what happens to it after that.
first reply loggedLeadអតិថិជនសក្តានុពលbudget and buyer confirmedQualifiedបានពិនិត្យquote sent, rate and date storedQuote sentបានផ្ញើសម្រង់តម្លៃcounter-offer recordedNegotiationកំពុងចរចាorder created, or a lost reason chosenWon or lostឈ្នះ ឬ ចាញ់
first reply loggedLeadអតិថិជនសក្តានុពលbudget and buyer confirmedQualifiedបានពិនិត្យquote sent, rate and date storedQuote sentបានផ្ញើសម្រង់តម្លៃcounter-offer recordedNegotiationកំពុងចរចាorder created, or a lost reason chosenWon or lostឈ្នះ ឬ ចាញ់
fig. 05 · five stages, and the dated action that earns each rung: first reply logged; budget and buyer confirmed; quote sent, rate and date stored; counter-offer recorded; order created, or a lost reason chosen
FAQ

Common questions about CRM systems in Cambodia

Cambodian owners ask whether reps will use it, whether it replaces Telegram, what to have ready, and what happens once a deal is won.

We already have a customer list in our ERP. Do we need a CRM as well?

The ERP's customer master is who has been invoiced. A CRM is who might be, and everything between the first message and the invoice: the calls, the visits, the quote, the reason a deal was lost. Where both exist they share one customer record, so the TIN is typed once and the invoice never asks the rep for it: the one-record standard every build is held to. The test in any demo is to ask where the TIN is typed; 'again, in accounting' means two systems side by side, not one record.

Does it replace Telegram, or work alongside it?

Alongside. The customer stays on Telegram and the rep replies there; what changes is that the first message creates a lead and the quote sent creates a row, so the deal exists somewhere a second person can read it. A build covers the bot or inbox connection that does that capture, scoped per channel, and the reply always goes back down the channel it came in on.

Will my sales team actually use it?

Only if logging costs less than the thing being logged. A rep who has to type a visit into a form after the visit stops within a month, and the sheet comes back. The rule the build is held to is that the row is the by-product of the work: sending the quote writes the row, saving a visit on the phone writes the row. The Monday review then reads rows instead of asking reps to remember.

How is a CRM different from the Sales module?

The CRM is everything before the order: leads, contacts, deals, the timeline, the pipeline. Sales is quote to order to invoice, with pricing rules, discounts and approvals. On one record the won deal becomes the quote without retyping, which is why the two are usually scoped together and can be scoped apart: how quote, order and invoice run as one flow.

What do we need ready before a CRM implementation starts?

Three things. Every rep's contacts exported off their phone, including the ones saved under nicknames. A sales manager willing to name one owner per account. And the stages you actually sell through, written on one page before anyone configures anything. The rest is discovery.

Does the CRM issue the invoice and file the VAT?

No. A won deal becomes an order, the order becomes an invoice in the accounting system, and the monthly VAT return is prepared there for your accountant to file, with dollar amounts converted at the NBC rate on the invoice date. The CRM carries the customer, the TIN, the currency and the quoted price across so nothing is typed twice, and it writes no journal line and no tax line: how GDT e-VAT filing works.