Digital CRM in Depth
Digital CRM in BigLedger is five applets that share one customer master and nothing else. This page is what each records and what happens behind their screens; the module’s front door is the Digital CRM module page.
What each applet records
| Applet | What it records |
|---|---|
| Unified Contact Center | Every inbound message as a conversation, every piece of work as a task, routed by queues, rules and actions to teams (shared with the platform) and agents (a contact-centre role on a login). The agent works beside the customer’s CRM contact, can share an item, open a shopping cart and request an e-invoice from inside the conversation. Dashboard, four reports, broadcasts |
| Sales Force Automation | Leads (each with a created event), the deals they are converted into (entirely in the browser — the backend has no lead conversion), the registers that classify both — projects and, under each project, sources, stages, types and ratings — a dashboard, qualification questionnaires, and a CSV lead import that can raise a contact-centre outbound task per row. The organisation a lead names is a CRM organisation. The build a tenant is served is a 2022 one — see the applet page before planning around any screen |
| Engagement Applet | One engagement per client file: the customer entity, the company and branch that bill it, the staff holding each engagement role, and — for clients tracked by financial year — one fiscal-year-end record per year. Engagement categories. Normally bulk-loaded through the ETL endpoints; the form’s code and name fields are read-only |
| Event Management Applet | Calendars and their members, events with a person in charge, participants, linked companies and agenda attachments (its own calendar records), shown as a month/week calendar and as listings. Its Event Expense Report reads staff claim lines that carry the event’s GUID; the applet never writes a claim |
| Bot Applet | The menu-based chatbot the contact centre’s channels answer with: bots, the conversation flows they run, the elements in a flow and the sequence with conditions that joins them, and the skills a bot carries (alg_bot_*). It matters beyond self-service, because on an endpoint with a bot linked, the bot flow is what creates the contact-centre task — a flow element hands the conversation to a person, and until it does, nothing is routed. An endpoint with no bot makes a task from the first message of each new session |
Supporting applets, owned by other modules and used here
| Applet | Owner | Why Digital CRM needs it |
|---|---|---|
| Customer Maintenance and Entity | Core | The customer and entity records a contact-centre contact is merged with and that an engagement is raised for. A lead’s organisation is not one of them: it is a row of the CRM organisation register, kept separately, so when a lead becomes a customer you create the customer here by hand (Sales Force Automation). Credit terms, limits and the OK / BLACKLISTED credit status live here — not in any CRM applet |
| Employee Maintenance | Core | Engagement roles, fiscal-year-end staff and an event’s PIC (person in charge) are employee records. Event participants and calendar members are not: they are logins on your tenant, found by login e-mail (Event Management) |
| Organisation Applet | Core | The company and branch on an engagement; the required Company on an event |
| Doc Item Maintenance | Core | The items the contact-centre Product panel browses and shares with a customer |
| Shopping Cart | E-Commerce | The cart an agent opens for a customer from inside a conversation — the document, and any posting, belong there |
| MyInvois Admin | E-Invoice | The e-invoice the contact-centre E-Invoice panel requests and the validation status it shows |
| Membership Admin | Membership | One of the four records a contact can be merged with |
| Stock Reservation Applet | Inventory | Not a dependency by design: the newer sales-force build’s Organization menu is a copy of this applet’s screens and writes its tables. Listed so that a reader who finds stock reservations under a CRM menu knows where they are documented |
| Debtor Report, Debtor and Creditor Report | Financial Accounting | Outstanding documents, ageing and statements for the customers the CRM applets talk to |
What posts to the ledger, and what moves stock
Nothing in this module does either. There is no document type for a conversation, task, lead, deal, engagement, calendar or event, and journal posting has no rule for any of them. Each of these applets writes master data and links — conversations, tasks, leads, engagements, events — and hands commerce to the applets that own documents: the shopping cart, the sales quotation, order and invoice in Sales, and the e-invoice applets. When a customer buys something that started as a WhatsApp message, the sale, the stock movement and the journal are all recorded outside Digital CRM.
Credit control is not here either
The one customer-facing control that reads like CRM — refusing business to a customer who owes too
much — lives in Core, and it is two pieces: a stored status and a batch sweep that sets it.
The status is the Credit Limit Status / Credit Term Status pair on
Customer Maintenance; finalising a cash bill,
sales invoice, sales order or outbound delivery order for a customer marked BLACKLISTED is refused,
and the check reads the stored status, never a live balance. The sweep —
Blacklist Overdue Customer in the Scheduler applet’s
processor picker — first clears every BLACKLISTED value
in the tenant, hand-set ones included, then blacklists customers whose outstanding balance in a
company is over their limit, or whose documents are older than their company-level credit term.
It is not a default clock: unless somebody has scheduled it on your tenant, the status changes only
when a person sets it by hand. No CRM applet reads or writes it.
Where the numbers on these screens come from
Many of the figures in this module are recomputed each time you open the screen rather than stored. Knowing which is which tells you where to look when one seems wrong.
| The figure | Written when, from what | So, when it looks wrong |
|---|---|---|
| A task’s status on the desk | Stored on the task, and changed only by the routing engine or by a person. IN-PROGRESS and UNASSIGNED exist only on the desk; the engine knows five statuses | A task still CREATED an hour later was never routed — see When it goes wrong |
| Total Duration on the Task Report | Worked out in your browser when the report loads: from the task’s creation to the event that closed it — or, when the screen finds no such event, to the moment you are looking | A completed task whose duration grows every day: the closing event the screen looks for is not the one completed tasks carry, so read the duration of a closed task as its age, not its handling time |
| Conversation, message and session counts on the contact-centre dashboard | Read when you open the dashboard, from the contact centre’s own conversation store — a database separate from the one every other report reads | Do not try to reconcile them with another report: no other report can see the conversations (Core concepts) |
| The customer’s history, cart and e-invoice in the conversation side-panels | Read from the record the contact is merged with — a customer or entity, a membership or a login | Empty panels mean the sender is still only a phone number or a handle — merge the contact first |
| An event’s cost on the Expenses tab and the Event Expense Report | Added up when you open it, from every staff claim line tagged with the event — approved lines and lines still pending approval, pending document review or on hold | The figure drops when a claim is rejected and rises when a late claim is tagged; quote the approved figure (Configuration §5) |
| The customer’s Credit Limit Status an agent looks up | Stored on the customer. Set by hand, or by the Blacklist Overdue Customer sweep if somebody scheduled it — and that sweep first clears every BLACKLISTED value in the tenant | A stop somebody set by hand disappeared overnight: the sweep ran (Credit control) |
| The tiles on the sales-force dashboard | New Lead and New Deal are the server’s totals. The other three are counted in your browser over the one page of results it fetched, and the trend arrow and percentage on every tile are fixed text | A tile that never moves past the page size, or two tiles that always agree, are the screen’s arithmetic, not your pipeline (Reports) |
| An engagement’s running number | Given by the first edit, from the tenant’s ENGAGEMENT_NO counter — not at creation | A freshly loaded engagement with no number has never been saved on screen (Configuration §4) |
One message, followed through. A customer sends a WhatsApp message to the support number of
GadgetSphere Online (GSO) asking whether an order has shipped. What happens next depends on one
setting you cannot see from the inbox: whether that endpoint has a bot linked.
- With a bot linked, the bot answers first. A task exists only once the flow reaches its hand-over element, and that element must carry a skill or no task is created at all. The task then waits for the skill-based routing engine, which runs every fifteen minutes and only follows rules linked to the task’s queue (Contact-centre automation).
- With no bot, the first message of the new session creates the task at once, and it is routed in
the same moment by a different rule set —
TASK_TEAM_ASSIGNMENT_AUTOMATION_RULE_SET— not by the skill-based rules and not on the poll. That rule set is not created for you. Until somebody creates it under Configurations → Automation Rule and gives it rules, the task waits, stillCREATED, for a person to pick it up.
Either way the sender appears as a new contact. The agent merges the number with the customer’s record in Customer Maintenance, and the side-panels fill with their transaction history and e-invoices. If the customer wants a different item, the agent opens a shopping cart for them, and from that moment the sale, the stock movement and the journal belong to E-Commerce. The task is done when the agent completes it — nothing else will close it.
How the pieces depend on each other
What must exist first. Each applet’s list is in Configuration,
and two of them start outside BigLedger’s screens. The contact centre needs the messaging channel and the
push-notification subscription to exist as platform data, which support adds. Then it needs a project, a
virtual contact with one endpoint per channel, and agents. An agent is a login holding the applet at rank
MEMBER, not an employee record. The sales-force register needs a project with its own sources, stages
and types before a lead can be saved. An engagement needs its customer entity, company and branch to
exist before its first edit, and an event’s participants must first be members of its calendar.
What each one makes possible.
- A merged contact is what lets the agent see the customer’s transactions, open a cart and request an e-invoice. A contact left unmerged gets answered, but nothing the agent does reaches the rest of the product.
- A cart opened from a conversation hands the sale to E-Commerce, and the e-invoice request hands it to MyInvois Admin.
- A reply to a Digital Marketing campaign message on a WhatsApp Business endpoint is recorded on the campaign as a reply. Where that endpoint has no bot linked, it also opens a contact-centre task linked to the campaign, so the task records which campaign the customer is answering.
- A lead makes nothing on its own. The quotation is keyed in Sales against a customer somebody creates by hand, and the deal is built in the browser.
- An event gives the Claim applet something to tag. The event’s cost exists only as the claim lines that carry it.
Siblings, and when to use which.
- Broadcast or Digital Marketing? Use the contact centre’s Broadcast for one message to one list, sent now. Use the Digital Marketing applet for scheduled or recurring sends to an uploaded segment (below).
- A bot on the endpoint, or none? Link a bot when you want a menu to answer first and the skill on its hand-over to choose the queue. Leave it off when every message should go to a person rather than a menu, and then build the team-assignment rule set, or have a supervisor pick tasks up from the queue.
- A lead or a sales inquiry? A Sales Inquiry is a document in the Sales chain that a quotation can follow from. A lead is a register entry that nothing follows from automatically. Use the lead when you need the stage list as a pipeline, and the inquiry when you need the paper trail.
- Merge the contact, or merge the customers? Contact Merging joins a chat identity to a record you already have. Two customer records for one person are a different problem, with a permanent fix (Duplicate customers).
What breaks elsewhere when this is set up wrong.
- Deleting a bot that is still linked to an endpoint. The link stays, and every inbound message on that endpoint then fails to reach an agent. Remove the bot from the endpoint first (Bot Applet → Troubleshooting).
- An agent whose applet rank is not
MEMBER. The skill-based engine silently skips them, so a team can look staffed and still receive nothing. - A hand-set
BLACKLISTED. If the sweep is scheduled, the next run clears it. A stop you meant to keep has to be set again after every run, so decide who checks the blacklist after each run. - Saving an organisation on the sales-force Organization screen. Its save blanks the organisation’s code, under a success message (Best practices).
What it pairs with in practice. Across the companies on BigLedger, the routing configuration is almost always exactly as it was seeded. Even among the companies that have connected a channel, almost none has linked a rule to a queue or an agent to a skill. If you want automatic routing, assume you are the first in your company to build it, and follow Contact-centre automation step by step. In practice the contact centre leans on Customer Maintenance for every merge and on the Shopping Cart for every sale. The event calendar leans on the Claim applet for every ringgit it reports.
What the module has no engine for
Written down because the previous version of this page, and most descriptions of a “digital CRM”, assume them:
- No AI customer analytics. Nothing in the product computes churn risk, sentiment, RFM segments, lifetime value or recommendations. The AI Customer Analytics page this module used to list described something that does not exist; it is unpublished.
- No drip or journey campaigns in these applets. The Engagement Applet is an audit-practice
client register, not a marketing tool, and the only outbound bulk send the contact centre offers is
its Broadcast screen — one message, one channel, one audience, once.
BigLedger does hold a campaign engine, and it is a separate applet. Digital Marketing
(
DGMKT) carries marketing projects, uploaded contact segments, schedules, campaigns, recurring campaigns, an unsubscribed-numbers list and a sales-tracking report, driven by five registered job processors that queue one message per recipient and hand each to a contact-centre endpoint — WhatsApp Business or e-mail broadcast, and no other channel — no other channel is wired. Two limits matter before you plan around it: a segment is the list of contacts you load into it, not a rule the product evaluates — segment conditions can be stored, but the one service that reads them never actually reads a condition, and the campaign run sends to the segment’s loaded lines only — and a campaign is one message to one list at one moment, with no journey, drip, branch or A/B split anywhere in the applet. If you are deciding whether BigLedger can run a campaign, ask about that applet rather than reading an absence here. - No ticket SLA, first-response timer or CSAT score. The contact centre’s dashboard counts conversations, messages and sessions; its Task and Agent reports carry durations and task counts. Nothing computes a response-time target or a satisfaction score.
- No event registration pages, ticketing, QR check-in or surveys. An event is a calendar entry with participants and attachments. Creating or changing one sends no e-mail, SMS or push — the event notification queue has a validator and an API, but no job processor reads it.
- No customer 360 view outside the contact centre. The conversation side-panels (CRM contact, cart, transaction history, e-invoice) exist only in the Unified Contact Center.
Registry rows that are not documented here
These registry rows sit beside the module without a page of their own:
- Inquiry, Inquiry Management and Newsletter Management are not part of the product line documented here; if you need a pre-sales inquiry document, that is Sales Inquiry (Internal) in Sales.
- Contact Maintenance (
ContactMaintenanceApplet) has no page yet. - Digital Marketing (
DGMKT) is the campaign engine described above. It has no page in this wiki yet. - Unified Contact Center Java (
UnifiedContactCenterJava) is a second entry beside the contact-centre applet. Which of the two your tenant is served is a question for your BigLedger contact. - Customer Profile (
customerprofileapplet) is a customer-specific build and is not documented as product.
When it goes wrong
Trouble in this module usually shows up as a task that never reaches anyone, or a figure that does not match another screen. The cause is generally one link or one setting that the screen in front of you does not show.
| Symptom | Cause | Fix |
|---|---|---|
Tasks sit at CREATED, and the task’s events show only TASK_CREATED | On a bot endpoint: no agent is linked to the task’s skill, or no rule is linked to the queue. On an endpoint with no bot: the team-assignment rule set has never been created | Contact-centre automation for the first; for the second, create the rule set and its rules, or give a supervisor the job of assigning from the queue |
| A task is assigned, but only about fifteen minutes after the message | The skill-based engine runs on a fifteen-minute poll | Expected on a bot endpoint. Assign by hand from the desk when that wait matters |
| The bot answers, and the conversation never reaches a person | The message element before Assign To Agent carries no skill, so the hand-over creates no task | Bot Applet → Troubleshooting |
| The side-panels are empty for a customer you know | The contact has not been merged with their customer record | Merge it (Contact keys) |
| Open tasks pile up week after week | Nothing closes a task by expiry; that step is switched off | Make complete or cancel the last action of every conversation, and give a supervisor an end-of-shift pass with the bulk actions (Best practices) |
| A completed task’s Total Duration keeps growing | The Task Report measures to now when it finds no closing event of the kind it looks for | Read it as the task’s age, not as how long the work took |
| The lead form will not save, or its drop-downs are empty | The chosen project has no sources, stages or types of its own | Add them under Settings → Project Configuration (Configuration §3) |
| A loaded engagement fails on its first save | A company, branch or entity it names does not exist. Creation did not check; the first edit does | Fix the references in the load file and reload (Configuration §4) |
| An event’s cost is higher than finance expected | The Expenses tab counts pending and on-hold claim lines too | Read the Claim Status column, or the approved figure (Configuration §5) |
| Nobody turned up to an event | Creating an event sends no e-mail, SMS or push | Announce it yourself (Best practices) |
| A blacklisted customer was served in the contact centre | No CRM applet reads the credit status | The agent looks it up in Customer Maintenance before quoting terms (Use cases §4) |
How you know it worked
Thirty seconds, on one endpoint you have just set up. From a phone that is not an agent’s, send it a message, and answer the bot as far as its hand-over if the endpoint has one. Then:
- Unified Contact Center → Task Router → Tasks. A new task with your message’s channel is there. No task at all means the bot has no skill on its hand-over, or the endpoint is not receiving.
- The task’s events.
TASK_CREATED, then an assignment — at once on an endpoint with no bot, within fifteen minutes on one with a bot.TASK_CREATEDalone after that is a routing gap, and the first row of the table above names it. - The conversation’s side-panels. Merge the test number with a customer you know. Their transactions appear. If they do not, the merge did not take.
Complete the test task when you are done. Nothing else will.
Read next
- Core concepts — contact, customer, entity and agent; conversation, task, queue and rule.
- Configuration — what must exist before the first message is routed.