Data Management Best Practices
What a member record is
One row in bl_crm_membership_hdr per card: card number (from the rule you choose — running
number, IC or mobile), member ID, referral code, name, mobile, IC or passport, e-mail, date of
birth, gender, class, verification status (VERIFIED, UNVERIFIED, REVIEWED, EXPIRED;
new members are UNVERIFIED), join, start and end dates or LIFETIME, branch and sales agent
if enabled, e-Invoice buyer fields, up to two custom header statuses, remarks; plus labels,
attachments, suspension rows and the point transactions. The customer entity link is optional.
Members come from four places — decide which you allow
| Source | What it creates |
|---|---|
| Membership Admin → Member Create, or Upload Membership CSV | The member row; class and labels by code |
| POS General member panel | A member with the POS default class and end date, created at the counter |
| CP Commerce Admin → Post Registration Config | On storefront sign-up: a member, a customer, or both, in the website’s default class |
The API POST …/membership-cards and …/with-customer/etl-ep | A member, or member plus customer entity, from an external system |
A member without a customer entity is normal. ENTITY_LINKING_FOR_MEMBER_PROCESSOR, if scheduled,
creates and binds an entity for every member whose entity is empty; the ETL endpoint creates both
at once. Unified Contact Center agents link a
conversation’s contact to a membership card by hand (Contact Merging). The
Customer Maintenance Membership tab shows the
plan and points from the customer side.
Uploads
- Upload Membership takes the Sample Format CSV (
MEMBER NAME,GENDER,DATE OF BIRTH,COUNTRY CODE,MOBILE NO.,IC/PASSPORT,EMAIL,MEMBER CLASS,JOIN DATE,START DATE,END DATE,MEMBERSHIP STATUS,REMARKS,LABEL 1…3). Classes and labels must already exist by code. Read the Checking tab before you accept the file: a class code not found, a date in the wrong format or a missing mandatory column rejects the row there, not silently later. - Upload Member Point Transaction takes card number, company and branch, point currency, points, transaction type and date, description, validity and document reference. Give every row validity dates — a lot without an end date never expires.
Duplicates
The product does not merge members. The API offers a duplicate check by phone and e-mail
(POST …/membership-cards/duplicates/backoffice) that an enrolment form can call before creating;
inside the applet, search the listing by mobile number before pressing +. If two cards exist
for one person, choose one, move the points with an adjustment (a negative one on the card you
retire, a positive one on the card you keep, both with a reason), and set the retired card
INACTIVE. MEMBERSHIP_STATUS_UPDATE_ZERO_BALANCE_PROCESSOR, if scheduled, sets members with a
zero balance inactive on its own.
Labels and newsletters
Labels group into label lists and drive CP Commerce newsletter topics through the label-topic assignment processors. Keep label codes stable: the link is by code on the CSV and by GUID in the tables.
Personal data and PDPA
The member row stores IC or passport number, date of birth, mobile number and e-mail. Under the
Malaysian Personal Data Protection Act the obligations of consent, purpose, retention and access
fall on you as the data user. This wiki does not claim that BigLedger is certified against
the Act or any other privacy regime; the controls you have are the field-level hide settings on
the counter (POS_HIDE_DOB, POS_HIDE_MEMBER_PHONE_NO), the branch targets on the membership
read permission, the Audit Trail, and your own retention decisions.
What the old page had and the product does not
Data-quality dashboards and completeness scores; fuzzy duplicate detection and automatic merges; OTP-verified profile changes; bounce-tracking of e-mail and SMS; regional sync and conflict resolution; RFM segmentation reports; a 21-day data-subject request workflow; GDPR portability. None has a screen or a processor.