Loyalty Enrollment
customer action engagement
Outcome
A customer can join a loyalty programme and immediately start earning points and benefits.
Service Flow
flowchart LR
S0["Register Customer"]
S1["Enroll Member"]
S0 --> S1
Capabilities
Customer Identity Loyalty
Domains
customer loyalty
Business Objects
Business Services
register-customer
enroll-member
Applications
| Application |
Classification |
CRM crm |
system-of-intelligence |
Loyalty Platform loyalty-platform |
system-of-record |
POS pos |
system-of-engagement |
eCommerce Platform ecommerce-platform |
system-of-engagement |
| Event |
Classification |
Object |
Terminal |
CustomerRegistered |
created |
customer |
— |
CustomerIdentified |
transitioned |
customer |
— |
CustomerMerged |
transitioned |
customer |
— |
LoyaltyMemberEnrolled |
created |
loyalty-member |
— |
LoyaltyPointsCalculated |
calculated |
loyalty-account |
— |
LoyaltyPointsIssued |
transitioned |
loyalty-account |
— |
LoyaltyPointsRedeemed |
transitioned |
loyalty-account |
— |
LoyaltyBenefitsCalculated |
calculated |
loyalty-account |
— |
PointsIssued |
updated |
loyalty-account |
— |
PointsRedeemed |
updated |
loyalty-account |
— |
CustomerCreated |
created |
customer |
— |
CustomerCommunicationSent |
created |
customer |
— |
LoyaltyCardActivated |
created |
loyalty-member |
— |
LoyaltyPointsAccrued |
updated |
loyalty-member |
— |
LoyaltyPointsEarned |
updated |
loyalty-account |
— |
| Endpoint |
Method |
Service |
Description |
/customers |
POST |
register-customer |
Registers a new Customer, creating a unique identity re… |
/customers |
GET |
search-customer |
Resolves a Customer by email, phone, loyalty card or ex… |
/loyalty/members |
POST |
enroll-member |
Enrolls a Customer in the loyalty programme, creating a… |
/loyalty/accounts/{id}/points |
POST |
issue-points |
Issues loyalty points to a member's account based on a … |
/loyalty/accounts/{id}/redemptions |
POST |
redeem-points |
Redeems loyalty points against a basket during checkout… |
/members/{id}/earn |
POST |
issue-points |
Awards loyalty points to a member account based on a co… |
/members/{id}/redeem |
POST |
redeem-points |
Redeems loyalty points as a payment tender during check… |
/members/{id}/balance |
GET |
calculate-points |
Returns current points balance, tier status, and next t… |
Validation Rules
| Rule |
Type |
Severity |
Condition |
loyalty-enrollment-requires-no-existing-account |
pre-condition |
invariant |
customer has no existing loyalty-member record |
loyalty-enrollment-creates-member |
post-condition |
invariant |
loyalty-member.lifecycle = active AND loyalty-account.b… |
← Back to Process Catalog