Skip to content

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

SourceWhat it creates
Membership Admin → Member Create, or Upload Membership CSVThe member row; class and labels by code
POS General member panelA member with the POS default class and end date, created at the counter
CP Commerce Admin → Post Registration ConfigOn storefront sign-up: a member, a customer, or both, in the website’s default class
The API POST …/membership-cards and …/with-customer/etl-epA 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.