...
...
...
Table of Contents
Table of Contents |
---|
Open questions
Business Questions
Is there a business rule that demands that only verified phone numbers can be used in customer search?
Business Answers
Tech Questions
Why do two different Interfaces for lookupByPhone records exist? (one in
user-service
and another inintl-packages
)Does accessing user-service phone lookup records from intl-packages violate the current architecture?
Tech Answers
...
This is legacy from US, and neither of them are used today, since sign up via phone is disabled in international.
...
Table of Contents
Table of Contents |
---|
...
Business problem
This feature aims to implement the option to search for customers by phone in RBI Admin tool. This was a business request from Iberia (
Jira Legacy | ||
---|---|---|
|
...
|
...
Architecture AS-IS
Today, Admin Tool only has the option to search customers by email or Cognito ID. The search by email is exemplified by the following sequence diagram.
...
The most direct solution is using intl-packages
, which already exposes a method to search users by phone number and DynamoDB queries for userLookupByPhone
records associating phone numbers to Cognito IDs. However, there is a divergence between the records created using intl-packages
and the ones created by user-service
, as can be seen below:
intl-packages:
Code Block | ||
---|---|---|
| ||
{
pk: phoneNumber,
pk2: cognitoId,
sk: current/user-lookup-by-phone
sk2: current/user-lookup-by-phone/{date}
} |
user-service:
Code Block | ||
---|---|---|
| ||
{
pk: phone#${phoneNumber},
pk2: phone_user#${cognitoId},
sk: v0_UserPhone,
sk2: v0_UserPhoneUserPhoneLookUp,
} |
The user-service
record is created when a user verifies their phone number via SMS. As far as we can tell, no one is using intl-packages
lookup records since its only reference is its own test.
Note |
---|
Orders made using Call Center won’t appear in the customer history, since they are registered under the Call Center operator account. |
Proposed solution n. 1 - DEPRECATED
Add the option in intl-packages
to search users by phone number, and change user-service API to create/update lookupByPhoneNumber
records whenever there are changes in the customer's phone number. We could take advantage from the development done for SA market in
Jira Legacy | ||
---|---|---|
|
...
|
However, this would still require existing customer to update their phone number for the search to work. This problem could be solved if we automatically update the user’s phone number with purchases. This can be done every time or only if they haven’t registered a phone.
Info |
---|
PROS:
|
Note |
---|
CONS:
|
Rule on when and how to save the phone number need to be defined
Proposed solution n. 2 - APPROVED
Using the Call Center solution to search orders by delivery phone. The search will return a list of orders using the given phone number, and they might come from multiple customer. One solution is to present this list of customers for the support team to decide which one they want to use.
...
This solution has the added bonus that if a phone number is associated to several phone number, that is probably a possible sign of a problem or even fraud.
Info |
---|
PROS: The operator of the Admin tool can see all customers associated with a phone number. |
Note |
---|
CONS:
|