perfectdesign.

Search visibility · Guide hub

Business software and connected systems explained

A business system is rarely one application. It is a set of records, the people allowed to act on them, the states those records move through, and the connections that copy information between applications. Most software decisions are really decisions about which application owns which record, who may change it at which stage, and what evidence proves the work actually happened. This page explains those parts in the order they usually have to be settled.

For
Business owners and operations leads who need to make sense of connected software before selecting, replacing or commissioning a system.
Reading time
9 min
Last reviewed
On this page

A business system is records, actions, states and ownership

Five things describe almost any business system. Actors are the people and services that do something. Applications create and hold records. Records are what the business actually argues about: a customer, an order, a stock movement, an invoice. States show where a record has reached, such as quoted, confirmed, dispatched or paid. Ownership names the one place a fact is authoritative when two systems disagree. Integrations are the wiring that carries information between applications, and evidence is what proves any of it happened.

That is a planning model, not a description of how any particular product behaves. It earns its keep by making the expensive questions visible early: which record is the master, which state change is allowed to whom, and what will actually be inspected when two systems disagree next quarter. The four questions below follow from it, and deeper implementation topics sit beneath each one rather than inside this page.

What every business system is made of. Software choices get easier once the records, their states and their owners are written down. A full text version follows.

What every business system is made of

Editorial framework. Software choices get easier once the records, their states and their owners are written down.

Basis: IBM: What is ERP?. Reviewed .

Read the graphic as text

A record

  • Actions. What people are allowed to do to it
  • States. Where it is in its lifecycle
  • Owner. Who is accountable for it being right
  • Evidence. What proves a change actually happened
Download this infographic (SVG)

Map applications, records, states and evidence before choosing software

Before comparing products, write the workflow out with the same fields every time. For each step, record the actor, the application, the record created or changed, the identifier that record carries, the state it moves into, the owner of that record, the trigger that starts the step, the destination the information travels to, and the evidence that would prove the step ran.

The identifier matters more than it looks. One business event often creates or updates records in several applications at once, and a shared reference carried on every copy is the only reliable way to follow it afterwards. Evidence means identifiers, state history, timestamps, exception notes and reconciliation observations: things somebody can go and look at, rather than an assurance that the integration is fine. Note that the cross-application flow you sketch is a proposal about how your business should work, not a behaviour every product provides.

Two related jobs stay outside this exercise. Detailed entity modelling, where every field and relationship is designed, is separate work. So is the organisation-specific decision about who owns which record, which needs the people who will live with the answer in the room.

The e-Invoice mandate is already fully live. Every phase has passed. If a system issues invoices, e-Invoice is not an upcoming project, it is a current obligation with a turnover threshold attached. A full text version follows.

The e-Invoice mandate is already fully live

Published statistic. Every phase has passed. If a system issues invoices, e-Invoice is not an upcoming project, it is a current obligation with a turnover threshold attached.

Source: Inland Revenue Board of Malaysia: e-Invoice implementation timeline. Reviewed .

Read the graphic as text
  • Above RM100 million. Mandatory since 1 August 2024
  • RM25 million to RM100 million. Mandatory since 1 January 2025
  • RM5 million to RM25 million. Mandatory since 1 July 2025
  • Up to RM5 million. Mandatory since 1 January 2026
  • Under RM3 million. Exempt, unless the company belongs to a larger group
Download this infographic (SVG)

How do CRM, ERP and accounting systems differ?

Separate the categories by the work they coordinate and the records they own, not by the vendor's name for them. IBM describes enterprise resource planning as "a business management software system that is designed to manage and streamline an organization's functions, processes and workflows with automation and integration", built from modules that "are all connected and share one common database", and places accounting as "just one module in a long list of other features that ERP technology can provide". Odoo's CRM documentation describes CRM work as organising sales activity: tracking leads, closing opportunities, keeping a pipeline and producing forecasts, alongside tasks such as merging similar leads and opportunities.

How the three categories are usually split. Real boundaries follow the organisation, not the product name.
CategoryWork it coordinatesRecords it usually ownsThe ownership question it raises
CRMWinning work: contacts, conversations, pipeline and forecastLead, opportunity, activity, contactWhen the same customer exists twice, which record is authoritative?
ERPRunning work across functions on a shared database of modulesOrder, stock movement, purchase, production, often finance tooWhich module may change the order once it is confirmed?
AccountingRecording money: invoices, payments, ledgers and reportingInvoice, payment, journal entry, tax recordIs the invoice raised here, or raised elsewhere and only recorded here?

In practice the boundary is drawn by your own process. A business that quotes, reserves stock and invoices in one place has a different map from one where three teams each work in their own tool, and both are legitimate. The useful next decision is not which product is best in general, but whether one system should cover the whole flow or whether a specific gap needs building around what already works.

Who the Malaysian economy actually is. Nearly half the country works in a small business. Software priced and shaped for a multinational is not software for this market. A full text version follows.

Who the Malaysian economy actually is

Published statistic. Nearly half the country works in a small business. Software priced and shaped for a multinational is not software for this market.

Source: Department of Statistics Malaysia: MSME Performance 2025. Reviewed .

Also: DOSM: Economic Census 2023, profile of MSMEs.

Read the graphic as text
  • Of national GDP: 39.7%. RM689.8 billion of value added by micro, small and medium enterprises in 2025, growing faster than the economy as a whole
  • Of all employment: 48.7%. 8.09 million people work in one
  • Establishments: 1.07m. Counted in the 2023 Economic Census, three quarters of them micro-sized
Download this infographic (SVG)

What an API does, and how a webhook differs

IBM describes an API as "a set of rules or protocols that enables software applications to communicate with each other to exchange data, features and functionality", working as a request and a response: one system asks, the other answers, according to a specification that fixes the data types, commands and syntax both sides agree on. That is a pull, and somebody has to decide when to ask.

A webhook is the push, and the provider-specific detail is where the real design lives. Stripe documents registering an HTTPS endpoint so that it "pushes real-time data to it when events happen", sending each event as a JSON payload. Its guidance is worth reading closely because the same concerns recur with any provider: every event is signed, so the receiver verifies the signature before acting on it; endpoints "might occasionally receive the same event more than once", so the advice is to log the event identifiers already processed and skip repeats; delivery order is not guaranteed, so a handler must not assume events arrive in the order they were created; failed deliveries are retried with an exponential backoff; and the endpoint "must quickly return a successful status code (2xx) before any complex logic that could cause a timeout", doing the real work on an asynchronous queue.

File transfer behaves differently again. Odoo documents importing a spreadsheet in which an External ID decides whether a row updates an existing record or creates a new one, which is what makes it possible to "import the same file several times without creating duplicates", and it warns that imports "are permanent and cannot be undone". That is one product's import, not a definition of every scheduled transfer. Before choosing between the three mechanisms, settle five things: what triggers the exchange, which direction it runs, how fresh the data has to be, what happens when it fails, and who reconciles the two sides afterwards.

Asking versus being told. A webhook that is never acknowledged is a missed event, so delivery has to be confirmed rather than assumed. A full text version follows.

Asking versus being told

Primary-source guidance. A webhook that is never acknowledged is a missed event, so delivery has to be confirmed rather than assumed.

Source: Stripe: Webhooks. Reviewed .

Read the graphic as text
  • API call. Your system asks, and waits for the answer
  • Webhook. The other system tells you when something happened
  • Why both. Polling is predictable, events are timely, most builds use each where it fits
Download this infographic (SVG)

How permissions and workflow states interact

Identity, permission and state answer three different questions, and a system that merges them either blocks the wrong people or lets the wrong change through. Authentication asks who this is. Authorisation asks what this role may do. State asks whether the record has reached a stage where that action still makes sense. Somebody can be correctly signed in, hold the right role, and still be wrong to amend an order that has already shipped.

Odoo's documentation shows one product's way of splitting this, and the shape is common. Access rights control broad create, read, write and delete permissions at the model level, while record rules act as an additional layer restricting access to specific records by condition, and user types run from administrator through internal user to portal and public. The same documentation carries a blunt caution that changing access rights "can have a detrimental impact on the database", including leaving nobody able to change them back. State-gated behaviour appears elsewhere in the same product: reservation methods decide when stock is committed to a delivery, whether at confirmation, manually, or a set number of days before the scheduled date.

The handoff to a deeper permission design is short. For each role, write the resources it may touch, the state transitions it may perform, and the path by which its access is removed when somebody leaves. Those three lines are what a detailed access model is built from, and writing them costs an afternoon.

Diagnosing duplicate records and integration failures

The wholesale business below is invented for teaching. A salesperson agrees an order, a warehouse clerk reserves and dispatches it, and a finance operator records the payment. Every role, policy and system response is an assumption, and the final column lists evidence to collect, never a result already obtained.

Fictional wholesale order: one business event moving across three applications.
Workflow stepAssumed actorProposed system responseExceptionAcceptance evidence to collect
Agree an orderSalespersonRecord the customer and the approved order in the system chosen as authoritativeConflicting customer records need a deduplication decisionRecord identifiers on both sides, plus the note stating which system is authoritative and how the two are mapped
Reserve and dispatchWarehouse clerkRecord the reservation and the shipment separately against the orderA physical stock disagreement needs a count and a decisionStock movement and shipment references, and the reconciliation observation against the counted figure
Record paymentFinance operatorMatch the payment to the correct invoice and orderA partial or unmatched payment needs reviewLedger identifiers, the matched invoice reference, and the note resolving the exception

When something goes wrong, a proposed sequence beats intuition. Establish the business event and its date. Collect the identifier that event carries in each application. Identify which system owns each record. Compare the states and the timestamps side by side. Inspect the delivery or transformation evidence, which for an event-based integration means the event identifier and its delivery status, and for a file-based one means the imported file and its identifier column. Classify the exception: a duplicate, a missed delivery, a rejected payload, a transformation error or a human entry mistake. Then define the reconciliation test that will prove the fix, and run it.

Duplicates deserve their own note, because the same symptom has several causes with different fixes. Odoo documents merging similar leads and opportunities as a normal CRM task, which addresses duplicates people created by hand. A repeated webhook delivery is a different problem, solved by recording event identifiers rather than by merging anything. A re-run import without a stable identifier is a third. Treating all three as one deduplication job is why the same duplicates come back next month.

The cheque is finishing. Under one cheque per person per year, and falling by a fifth annually. Any process that still assumes a cheque in the post is quietly adding a week to getting paid. A full text version follows.

The cheque is finishing

Published statistic. Under one cheque per person per year, and falling by a fifth annually. Any process that still assumes a cheque in the post is quietly adding a week to getting paid.

Source: Bank Negara Malaysia: Annual Report 2025 and Payment Statistics T1. Reviewed .

Read the graphic as text
  • 2020: 1.84.
  • 2021: 1.48.
  • 2022: 1.41.
  • 2023: 1.22.
  • 2024: 1.17.
  • 2025: 0.92. 31.4m total

Chart scale: Cheques issued per Malaysian, per year.

Download this infographic (SVG)

What to do next

  1. Take one business event that crosses more than one application and write it out step by step, with the actor, record, identifier, state, owner and evidence at each step.
  2. Mark the single authoritative system for each record in that flow. Where two systems both claim one, that disagreement is the work.
  3. For each connection, state the trigger, the direction, how quickly the data has to arrive, what happens on failure, and who reconciles the two sides.
  4. Write the acceptance evidence before any product shortlist exists, so demonstrations are judged against your workflow rather than the vendor's.

Where to go next

Sources and further reading