Overview
Introduction
This guide has been prepared with the aim of providing a generalized view of the life of the client in the company and the different processes that are involved. We are going to go through the complete cycle from when a client gets registered in the company.
The beggining
In order to talk about the life cycle of a client, the first thing we are going to see is how a client is generated. The moment a person accesses or becomes interested in any of the telecommunications products, products that can be consulted in MasCatalogue, within MasStack, and decides to make a contract, there are two possible channels to do this selling:
- Physical or face-to-face (stores)
- Not in person (Online)
Once the client uses either of the two options, a sale is generated, from which the life or life cycle of the client begins in the company. The sale process is described in Signup. All the information can be checked in Signups site
Post-sale
Once the sale or Signups is made, a unique identifier is generated to the customer. This unique identifier is called userId. We are going to see the different fields that a client has within our Api.
User
This object includes all the information related to the customer’s data, for example: address, bank account, mail … etc., as well as the different packages contracted in the sale.
-
Own information: can be accessed from Get user detail. In this object we will find everything related to customer data, from their address, identification document, email … It is accessed thanks to the userId
-
Information of the contracted packages: can be consulted in Get customer full tree This information can be accessible by email, identity document or subscription phone. This tree will return all accounts and subscriptions the client has contracted already along with their current status . We will see their structure below.
A first approach to how the hierarchy of our API is, with the different fields and how they relate to each other, can be seen in the following diagram. You can click on the squares to expand the differents sections.
erDiagram
SIGNUP ||--|| USER : creates
SIGNUP ||--|| ACCOUNT : creates
SIGNUP ||--|| SUBSCRIPTION : creates
USER {
int64 userId
}
USER ||--|{ ACCOUNT : "has"
ACCOUNT {
int64 accountId
}
ACCOUNT ||--|{ SUBSCRIPTION : "is composed by"
SUBSCRIPTION {
int64 subscriptionId
}
Accounts
This object encompasses the different “contracts” made by the client. This contract or contracts is going to be a sum of different lines or services. Each contract will have a different account associated with its own accountId. All the different methods that we have in our MasStack APIs can be consulted here Accounts For example: a customer goes to the store and hires a package which is made up of: a fixed line, a mobile line and the internet. In this case we will have a contract with 3 different subscriptions.
- Fixed line
- mobile line
- Internet
Subscriptions
Each of the services contracted within a contract is what we call Subscription. Each of them may have different peculiarities. Everything related to this field can be consulted in Subscriptions
There are 4 types of services that you can have a subscription:
- Fixed Line
- Mobile
- Internet
- Television
In the following diagram we can see the different types of subscriptions that we can have:
graph TB A[Account] --> |subscription1|1[Fixed Line]; 1 -.-> 11(New number) & 12(Portability); A --> |subscription2|2[Internet]; A --> |subscription3|3[Mobile Number]; 3 -.-> 31(New number) & 32(Portability); A --> |subscription4|4[Television];
The hierarchy
As we have seen in previous sections, all the fields are related to each other as can be seen in the diagram at the beginning of this page.
Bellow you can find a first approach on how these fields connect and which are the parameters needed when searching:
classDiagram
Signups --|> User
User .. Customer_tree
User .. Customer_info
User --|> Accounts
Accounts .. Account_Info
Accounts .. Compatible_bundles
Accounts .. Customer_account
Accounts --|> Subscriptions
Subscriptions .. Subscription_Info
Subscriptions .. Replace_SIM
Subscriptions .. Recharge_Details
Subscriptions .. in_flight_mobile_subscription
class User{
Customer_tree
Customer_info
}
class Customer_tree{
Email
Msisdn
Document_Number
}
class Customer_info{
userId
}
class Accounts{
Account_Info
Compatible_bundles
Customer_account
}
class Account_Info{
accountId
}
class Compatible_bundles{
accountId
}
class Customer_account{
userId
}
class Subscriptions {
Subscription_Info
Replace_SIM
Recharge_Details
in_flight_mobile_subscription
}
class Subscription_Info{
subscriptionId
}
class Replace_SIM{
subscriptionId
}
class Recharge_Details{
subscriptionId
start_date
end_date
}
class in_flight_mobile_subscription{
subscriptionId
motive_id
}
Now, we are going to see an overview of how the photo would look with all the fields integrated with each other and their method possibilities.
classDiagram
Signups --|> User
User --|> Accounts
Accounts --|> Subscriptions
Accounts .. Invoices
Accounts .. Terms
Accounts .. Payment_Info
Subscriptions .. Account_migrations
Signups .. Account_migrations : Bundle migration
Subscriptions .. Products
Subscriptions .. Services
Subscriptions .. Bonuses
Subscriptions .. Promotions
Accounts .. Promotions : Get promotions
Subscriptions .. Barrings
Subscriptions .. Consumption_Balance
class Signups {
Post new_client
Get master_data_information
Get availables_msisdns_by_network
Get simcard_ICC
Post register_sell_payment
Activate SIM_card
Add new_subscription_to_bundle
}
class User {
Get customer_tree_by_client_info
Get customer_full_tree
Get user_detail
Update user_data
Get expedition_user_details
Update expedition_user_details
Agile TV_change_email_subscription
}
class Accounts {
Get account_information
Get compatible_bundles
Get customer_accounts
}
class Subscriptions {
Get subscription_info
Replace sim_icc_to_a_new_one
Get recharge_details
Cancel in-flight_mobile_subscription
}
class Invoices {
Get invoices_list
}
class Terms {
Get Account_Terms
}
class Payment_Info {
Get payment_info
Update payment_info
}
class Account_migrations {
Add Subscription_to_new_account
Add Subscription_to_existing_account
Migrate Prepaid_to_new_postpaid_account
Prepaid subscription_to_postpaid_existing_account
Postpaid subscription_to_new_prepaid_account
Postpaid subscription_to_prepaid_existing_account
Bundle migration
}
class Products{
Get info_products
Update subscription_product
}
class Services{
Get info_services
Update aservice_status
}
class Bonuses{
Get bonus_info
Add new_bonus
Delete bonus
}
class Promotions{
Get promotions
Add new_promotion_to_subscription
Delete promotion_of_a_subscription
}
class Barrings{
Get blocks_info
Update SIM_Status_to_Blocked_or_Unblocked
Patch MasBarrings_call
}
class Consumption_Balance{
Get prepaid_balance
Get consumption_details
Get consumption_limit
Set consumption_limit
Delete consumption_limit
}
class Workorders{
Post changeOrder_mysimWS's_calls
}
Next steps to this section can be seen in Signup’s site.