Allow edit on suspended customer-Low level Design(LLD)
Portal level changes:
- Mainly in the portal, we need to restrict the user based on the role assigned. If a user belongs to CMD Updater, ADS roles (by clusters) are then allowed for edits.
- If the customer is suspended with NMB reason then don’t allow edits.
- Edits are allowed only at the same time when customer status is being changed from Suspended to Active. Standalone updates on customers are not allowed if the status is not being changed to Active as part of the same edit.
- While editing the customer restricts the concern, segmentation, CBU, and web bill details.
Ingest Customer API :
- Ingest customer upon receiving the request should validate the below details - check if the customer is suspended if Difficult collections or not. If yes throw the validation message - check if the incoming payload contains any details related to web bill, CBU, segmentation details, If yes throw the validation message.
- If any address is changed, then it should call Match API to validate the details. If validation failed then it throws a validation message else it should trigger ADDRESS-OVERRIDE along with SUSPENDED-ACTIVE workflow.
- If any tax is changed, then CMD must validate with VIES (if it is an EU code). If this fails, then the TAX-CHANGE workflow must be triggered along with the SUSPENED-ACTIVE workflow.
- If any other details are updated respective workflow also will be added to the SUSPENED-ACTIVE workflow with PIPE('|') separated.
- For example, customer has edited the customer Address, Tax then the workflow should trigger with ADDRESS-OVERRIDE|TAX-CHANGE|SUSPENDED-ACTIVE.
- After generate the workflow API ingest customer should update the is_pending ‘N' to 'Y’ , then we need to perform elastic sync.
Workflow API:
- If Data steward approved the record then apply the customer info snapshot along with these we needs to implement the below functionalities. - If a suspended customer is a existing concern member of a concern group, it should inherit all the segmentation values per the parent code (IS_CONCERN) - Attractiveness, Rolling protection flag / Loading Priorities, Value Proposition, Industry, Vertical. - If a suspended customer is a concern member of a concern group, any segmentation changes to the IS_CONCERN (parent code) must reflect on the suspended concern member. - Update the is_pending from ‘Y' to 'N’ - Do the elastic sync and publish of the customer
- If Data steward rejected the workflow then we should not perform any action.
Was this page helpful?