4161
Roaming 2.13 & 3.1
{
"imsi": 272017635077000,
"msisdn": 447991019922,
"timestamp": 1649241473,
"vmcc": "520",
"vmnc": "00",
"dataSource": "rtm_data-dia",
"updateType": "Update-Location",
"resultCode": "Success"
}

{
"imsi": 272017635077000,
"msisdn": 447991019922,
"timestamp": 1649138767,
"vmcc": "520",
"vmnc": "00",
"dataSource": "rtm_data-dia",
"updateType": "Cancel-Location"
"resultCode": "Success"
}

Datasets
RawRoamingEvents(VFUK-FW-AOMFW-Int-RoamingEvent) RawRoamingEvents is Kinesis Dataset,which consume records from
AWS Stream and contain following fields
vmcc  -  (String) Visited mobile Country Code)
resultCode - (String )
imsi -  (Double)
msisdn - (Double)
vmnc - (String) Visited Mobile Network Code
dataSource - (String)
timestamp - (Double)
updateType - (String)
ValidRoamingEvents(VFUK-FW-AOMFW-Int-RoamingEvent) ValidRoamingEvents is of type Stream Dataset which store all
RoamingEvents that are passed all validations.
Additionally this dataset we will store below fields
EventTimeStamp - (DateTime) converting timestamp (double) and
storing as DateTimeDataSet Description


4162

Dataflows

Activities
Below are are the activities that triggered while Processing RoamingEventsSubscriptionId - (String) to store MSISDN as string
RoamingEvents(VFUK-FW-AOMFW-Data-RoamingEvent) RoamingEvents is cassandra dataet and is used to store events
Data
While saving records to these dataset we have specified TimeToLive
for 18 Months
This dataset has following fields
Keys
SubscriptionId - (String)
CountryCode - (String)
TripEndTimeStamp - (DateTime)
TripStartTimeStamp - (DateTime)
Other fields
LastUpdateTimeStamp - (DateTime)
LastAccessedNetworkCode - (String)
LastResultStatus - (String)
ValidateRoamingEvents ValidateRoamingEvents is a realtime Dataflow
This Dataflow takes RawRoamingEvents Dataset as Source and will
contain ValidateRoamingEvent activity as destination
ProcessRoamingEvents ProcessRoamingEvents is also a realtime Dataflow
It takes ValidRoaminfEvents dataset as source and
ProcessRoamingEvent activity as destinationataFlow Description
ValidateRoamingEvent Activity  RoamingEvent Process Descripiton
ProcessRoamingEvent ActivityCheck and does all required validations on RomaingEvents
Check for event and then invokes InitializeEventStatus activity to create a record into event_status db table if no event exists or update it if it
exists.


4163
It is where event is stored into the event_anaylsis_store DB table/CustomerEvents dataset or sent to dataflow according to event config
settings.InitialiseEventStatus Activity
ProcessQueueItem ActivityCreates a record into Event_status table for each of interaction as an event with “ I n i t” status and run Queue-Processor
ProcessPayload ActivityAt the beginning of activity status is updated as “ P r o c e s s i n g“, After completing the Process Payload Activity and Event Handler Activity
processes it is updated as “ C o m p l e t e d“
PayloadHandlerRouter ActivityThe ProcessPayload activity parses the Payload field into TextValueGroup or TextValueList properties
RoamingEventPayloadHandler ActivityAccording to EventType, suitable activity is invoked to prepare payload to storing.
EventHandler ActivityPreparing payload to store event into db and dataset in EventHandler Activity


4164
Batch Framework - BATCH AND EXTRACTOR
NBA Batch is a framework where all the decisions are made to multiple customers at a time. This is unlike realtime multiple decisions can happens at one go through batch and extractor process.

There are two cases involved in batch NBA framework

1. Batch NBA
2. NBA extractor

1. Batch NBA - in this case there are two DF included,
  a. PrepareDataForBatchNBA
  b. IdentifyBestOBTreatmentsByBatch
Once the decisioning satisfies the eligibility then subscriptions are travel through DF1 DF2, eligible customers should be available in the final data set IdentifyBestOBTreatmentsByBatch.

Batch NBA extractor
1. The output of Batch NBA case is an input to Batch Extractor.
2. Pause Resume functionality
a. New DF DedupeByContactDetailForBatch used instead of DF - DF DedupeByContactDetail in step 6 - Dedupe By Contact Detail in Prepare BatchNBA Extract process in 2. Prepare stage of
“Extractor” case will be updated a new C* dataset BestOBTreatmentsBeforeChannelDelivery (for treatments with no volume limit)
b. New DF - AugmentVolumeConstrainedDataForBatch used instead of DF AugmentVolumeConstrainedData in step 7 - Apply Volume Constraints in Prepare BatchNBA Extract process in 2.
Prepare stage of “Extractor” case will be updated a new C* dataset BestOBTreatmentsBeforeChannelDelivery (for treatments with volume limit)
c. A new step introduced in n Prepare BatchNBA Extract process after step 7 to call a new DF - WriteBatchDecisionOutputBeforeChannelDelivery which will read from new C* dataset
BestOBTreatmentsBeforeChannelDelivery and write to existing database table dataset BatchDecisionOutput


BestOBTreatmentsBeforeChannelDelivery and write to existing database table dataset BatchDecisionOutput
d. If the “hold” is enabled, the Extractor case should pause at this step
e. A new report definition should be created in existing database table dataset BatchDecisionOutput to present the volumes by OfferName, OfferVariant, TreatmentName & TreatmentVariant
including Target/Control split
f. After validating the volumes by OfferName, OfferVariant, TreatmentName & TreatmentVariant, Business will “release” certain treatments (OfferName, OfferVariant, TreatmentName &
TreatmentVariant) by updating a Data Type (Design - TBC)
g. A new “Release” process will be introduced in 2. Prepare stage of “Extractor” case for BatchNBA which will handle “release” of the treatments for further processing to deliver to channel
h. The new process will call a new DF - ProcessForChannelDelivery which will use the new Data Type (Report Definition) as input list of treatments (OfferName, OfferVariant, TreatmentName &
TreatmentVariant) those are to released, match with new C* dataset BestOBTreatmentsBeforeChannelDelivery and write to existing Target/Control datasets
i. The new process will then execute the step same as existing step 8 - Process Best OB Treatments & step 9 - Set Subscription Campaign Flags in Prepare BatchNBA Extract process in 2.
Prepare stage of “Extractor” case
j. Business may perform the hold & release multiple times and the case should be re-designed to handle such process
k. The case will hold and wait for user action, once user selects the required treatments then case move to next stage


4165
Case Management - Loader
Spine Loader
The spine is a Loader Case Subtype that loads all the spine entities file data into the AOM database tables
Required Data Setup

Copy all the entities mentioned in ConfigType =LoaderEntityList to be loaded onto path mentioned in the ConfigType
=LoaderIncomingPath
Files will be pushed by the Vodafone team on to S3 path (ConfigType =LoaderIncomingS3Path) on PROD whereas, in all lower
environments, we have to manually sync the files onto LoaderIncomingS3Path before running the loader by using the below AWS CLI
command
$ aws s3 sync <source> <target>
The above sync command syncs objects under a specified prefix and bucket to files in a local directory by uploading the local files to
s3.
Option --delete: Any files existing under the specified prefix and bucket but not existing in the local directory will be deleted.
In this example, the user syncs the bucket s3://vf-aom-uk-nonprod-eu-west-1-submissionbucket to the local current directory.
Upload all the files in the local current directory into /dev1/spine/folder on S3 Bucket
Run Spine Loader
Run the CaseIgnitor activity
Set the Parameter CaseSubType to BDC
Verify, if a new case instance is created from the Pega Dev Studio -->App Explorer--> Click on the VFUK-FW-AOMFW-Work-Loader
Class Instances and check the progress of the case
Frequently Occurring Problems
File can’t be found by the process
In most cases, it would be a config issue.
specially in the InputFilePattern/ManifestFilePattern values, all *(stars) should be preceded with .(dot)


Validate the JSON for both FileAttribues and LoaderFileAttributes config Type, In-valid JSON can cause issues
Input file issue, need to check the error and send the error sample to the source system to correct
1
1
2aws s3 sync . s3://vf-aom-uk-nonprod-eu-west-1-submissionbucket/dev1/spine/ --delete


4166
Assisted Upgrades - QA
0:0:0.0 --> 0:0:29.570

Those are the three recommendation they will give you an option. OK you are this person according to your background you are getting
these three recommendations and you are getting this discount. You are getting this add on and if you ask them to build your add-on
according to your own then that option is also available that caller will build your own also with the help of that plus icon is there in the so
that that is basically if you want to add some accessories if you want our adset with insurance and all those things.
0:0:30.40 --> 0:0:59.990

Are also options are also available OK so that is just upgrade plan whatever you are holding. Suppose you are holding a 2GB data plan.
You want a more one so that type of recommendation the agent will provide you according to your journey. OK so basically we have kind of
pain MC to CMU journey PM SIMO to handset journey handset to handset journey PM handset to pain loan journey OK what is SIMO
journey? SIMO Journey is nothing the customer don't hold any mobile handset.
0:1:0.390 --> 0:1:3.990

Handset. Basically the contract handset. So basically if you're.
0:1:4.430 --> 0:1:34.320

For purchasing a iPhone with that Vodafone service also is a service provider is they are in contact OK. In contract if you purchase iPhone
and with that Vodafone is tie it up that kind of user PM handset customer OK and PMC is is something where you are you are handset is of


different company it is not having any tie up with the Vodafone only we are using the Vodafone service as only you are using a tariff or
Vodafone SIM of the order.
0:1:34.400 --> 0:2:5.790

Would a phone OK Vodafone SIM only you are using you are not purchased the iPhone. Along with that Vodafone tariff or Vodafone
discount or plan OK that is the PMC more customer what is the PM loan customer PM loan customer you have purchased the iPhone you
have purchased you have purchased the Vodafone Services also services in the means tariff plan all those things OK whatever the service
Vodafone Company provides so iPhone contract with Vodafone Services plus you are purchasing the phone in the loan.
0:2:5.900 --> 0:2:27.960

In the loan in the sense you are purchasing the phone in the EMI, you are paying some down payment. Suppose 1,00,000 of phone you are
purchasing 50,000. You're paying down down payment another 50,000 you are paying is a down pay EMI. OK so when we say hone set
handset loan price handset loan price is nothing but an EM I OK?
0:2:28.780 --> 0:2:59.200

And what when we say the full cost of device and all those things, that is a down payment. OK. So basically when you launch the, when you
launch the weather weather, is it just a UI? OK, so how the how, how the back end and the front end UI talks. OK, the talks by means of this
APIs. These are the web service web services APIs. So if whatever you are seeing in the UI, that will only come when the in background the
API.


API.
0:2:59.280 --> 0:3:29.730

And put the request you will put the request on the UI but background this API will get called and it will give you response and the same
thing will get reflected in the UI. So these are the. These are the basic APIs which you needs like get customer API get customer API is is to


4167
retrieve all the customer details of the Vodafone customer. Get recommendation get recommendation will give you 3 recommendation in the
three cards get product list is always related to the edit.
0:3:29.860 --> 0:4:1.740

Gaps. OK, if it is get product list, if you see the discount list. If you see the add-on list tariff list, device list accessories, all those tabs present
are there. If you move through, navigate through the each tab in the background, get product List API will only get called OK get usage. Get
usage will when when it will call the three month average usage. What is the total roaming charge roaming? How much roaming? How
much international minutes? All those details is printed in the.
0:4:1.830 --> 0:4:8.990

Where are you? Why? Right. So those those how it will commit it right in the background get usage API will get called.
0:4:9.700 --> 0:4:21.440

Validate delete when it will get for. Suppose you are having a discount and you are calling the agent is deleting your discount then the
vendor delete will call. You don't want that add on then you.
0:4:22.220 --> 0:4:52.450

You're deleting that agent is deleting that add-on. Then meditate delete will call. So whenever the delete operations happens, then when
you delete, will call validate basket OK, validate basket. Suppose you bought one recommendation you select you you click on edit tab you
you added more things on that and then you save and close in the UI OK and that time what it will come you put all the things in your


basket. OK so that time validate basket will call validate basket means.
0:4:52.580 --> 0:5:14.450

Whatever. They're the things you have put it in the basket. It will check whether between the between the things. Suppose between the
discount and tariff between the device and the tariff between the add-on and the tariff compatibilities are there or not. OK, all those should
be compatible to each other. It should not be like this iPhone with iPhone 12 you are purchasing some.
0:5:14.730 --> 0:5:44.460

Oh, oh, 2024 month plan, which is not compatible with this device. OK, with iPhone 12 we should not get 24 month plan. We should always
get 48 month plan. Something like rules will be there. So that compatibility should be there that so that compatibility check between each of
the item I'm saying item then you then the validate basket will call when that will close and see when the select that and you submit the
basket then the submit basket.
0:5:44.560 --> 0:6:15.850

Submit basket is in a continue button. If you press in the basket summary then the Summit Basket API will call. So these are the end to end
API. There are more APIs are there but these are the basic APIs which call when you open the weather. If you just navigate through the
screen these are the basic API which are listed into one 6:50. So these are all the call. OK so next thing is that the data set which we are
using OK the data set which we are using data set always be used to debug.
0:6:15.980 --> 0:6:20.850


0:6:15.980 --> 0:6:20.850

Your things. OK, so this is a this is this is not related to the.
0:6:22.270 --> 0:6:52.440

This is not related to the testing. This is related to the debugging. OK, you should never have the this in your evidences. OK the debugging
things would never have you in the evidences. Only the better thing should be there in your evidence is the final result need to be validated
in only the better. This details panel strategy data set I'm sharing you just to when you create your data setup then if things not work then
what you should do where you should check OK so data set for AU is debug assisted upgrade. Once you open the web.


4168
0:6:52.590 --> 0:7:25.560

And once you click any API's listed above, the debug assisted, upgraded upgrade will update with the latest information. OK, suppose you
have changed something in the get customer level. Then you if you want to see the changes then you can see. Then you can run the
weather again and then the debug assisted upgrade will be updated with the change detail. OK so this debug assisted upgrade is is always
having the updated detail OK as soon as you open the weather updated detail will be stored in this debug assisted upgrade.
0:7:25.680 --> 0:7:58.410

This little debugger Sisted upgrade is that it's a data set where when the many data flows of the assisted upgrade runs and the strategy
runs and all the informations, all the result is stored in this data set. OK, the final strategy identify best inbound CC treatment for
subscription. This is a final strategy. So suppose you have created your customer, you have your own data setup now. Now now if you want
to see whether your customer is getting that off or not, suppose your customer is dropping at some point.
0:7:58.970 --> 0:8:28.830

OK, so how you unit test that one? So this is the final strategy where you use this debug assisted upgrade data set OK and you use your
customer details to unit test this final strategy and you can see at which level of the strategy do your customer is dropping. OK, so this is
one thing, suppose if you want to verify some details, suppose if you want to verify what is the value of S15, what is the recommended tariff
you got it. So where you have?


you got it. So where you have?
0:8:28.980 --> 0:8:42.760

Where you will check it you you unit test this final strategy, go to the result panel of the application and then you can say OK recommended
tariff is that one post as 15 value is this one. So for this also this final strategies.
0:8:43.320 --> 0:8:57.670

Ohh. Useful. OK, so first first thing is customer intents OK for intent. So first thing when you open the offer catalog you will find only the
studio 12.
0:9:0.920 --> 0:9:1.210

OK.
0:9:3.400 --> 0:9:33.630

So first thing you when you open the offer catalog, you will find the intent details so intent is nothing but at at what intent customer is coming
for the upgrade so that intent information we have to install in somewhere right we so all the predefined configuration. OK. So intent is
customer is coming in coming in with the intent of managed plan coming with the primary context of the customer is primary thing. He's
coming for the upgrade and the secondary is.
0:9:33.710 --> 0:9:49.710

Can be OK, next best, best action. OK, NBA is next. Best action. OK, this is our terminology. Pega used as a next best action. Maybe you
have done the certification that you come across this terminology many times.
0:9:50.450 --> 0:9:57.810


0:9:50.450 --> 0:9:57.810

OK, this is the NBA. Uh secondary context they're using. So what is the next XML we will provide to the customer that I think that is the
meaning?
0:9:58.420 --> 0:10:27.210

Ohh and then this is the intent details so so where are those intent details? Suppose they're customer is dropping at intern details and or
you are doing your data setup first time OK you're doing your data setup first time so you need to know what is the intent. OK So what are


4169
the data? What are the decision data is you need to check for that so intent to be P decision data and intend to offer decision data so so this
intern managed to plan primary context.
0:10:27.950 --> 0:10:37.320

So do that intent should be mapped to your offer map to your offer means these are your offers. OK, these are your sorry.
0:10:39.340 --> 0:11:4.240

These are your offers, so this offer should be mapped with that intent. OK, so that decision data should be available in the intent to offer
decision data. OK then business purpose for you. We for business purpose you always check the Renew business purpose. So in the
decision data you filter your details with renew then all the Renew Decision data should be there or for offer variants, treatment, treatment
variants.
0:11:4.830 --> 0:11:35.880

Ohh, every every dish should not unrelated to renew business. Purpose will be get loaded and there you will find all the decision data. So
first thing when you customer after you data before your dataset check the decision datas are available according to the offer catalog or not.
This is your offer catalog all the decision share data should be present over there according to the offer catalog. The second thing is there
unit test your customer if it is dropping at treatment level or at subchannel level.
0:11:36.100 --> 0:11:52.610

Then you should check suppose I have my customer is dropping it offer level only. So it means offer and visibility is not fine. Offer eligibility.


How you will check it. There are rules defined for the offers. OK E1E2E3. Those kind of proposition filters are there, right? So if you just.
0:12:38.360 --> 0:12:41.880

So if you just go to the decision.
0:12:43.140 --> 0:13:13.230

But opposition felt OK if you just go to the proposition filter and if you just take the renew offers eligibility, renew offer variation eligibility. So
here are the configuration, you can say configuration. This is a development team will do for us, but we can check it here what are the rules
defined for that offer. OK, so suppose if I'm checking for the upgrade mobile to handset, So what are the rules defined for it? It is even E2
and not E3 not E3 means it is the negation.
0:13:13.470 --> 0:13:43.810

OK, customer should not be a watch subscription. So if you see here in offer catalogue same thing is there subscription should not be a
watch because subscription is a post pay and customer is a mobile. So all and conditions are there. So here you will find and conditions and
not E 3 not E3 is a negation so customer is postpay customer is a mobile service and customer is not a watch. OK even E2 and E3. And if
you want to know where this where this is defined.
0:13:43.900 --> 0:13:48.930

So you just see the rule is defined at. So if you just open it from here.
0:13:49.860 --> 0:13:51.670

The rule. OK, one second.


The rule. OK, one second.
0:13:54.780 --> 0:14:11.50

The rule is defined at global rule one, so just you need to you need to click here or you need to just see what is the what is the rule here you
can just click it here and it is a global rule one and just unit test unit test with the same thing. I'm just unit test in the same thing so it the rule
says.


4170
0:14:12.320 --> 0:14:17.560

Roses it is 11 global rule 11. I need to check why where is 11 actually here.
0:14:18.240 --> 0:14:28.550

OK, I think you might have who this in your before, Katie. Somebody have told this how to unit test this kind of thing, but just see where is
the 11 defined?
0:14:30.280 --> 0:14:31.540

Do we not working?
0:14:35.950 --> 0:14:54.350

So this is 15. This is 13. This is 11, so 11 top of the eleven it's rule eligible. It means it is eligible. OK. And if you see here not E 3, not E 3
means 61. If it is. Maybe if it is there is 61 is present there then we can see no decision.
0:14:54.430 --> 0:15:24.410

Yeah, if it is negation then rule eligible will be there. If it is, uh, not negation, then no decision will come. OK, so similarly you have to unit
test and you have to check where the offer is dropping. OK, suppose my customer is watch customer and I am trying for handset then it
won't possible right. This rule is failing for me right. So that is that is a basic check you have to do it. OK so this is the one where you have
to check the offered things. OK so these are the offers related to upgrade mobile to handset SIMO 30.
0:15:24.580 --> 0:15:29.430


0:15:24.580 --> 0:15:29.430

OK, these are the parent offers and this is the parent offer. Watch is the parent offer.
0:15:30.250 --> 0:16:0.260

Discount add-on device accessories fees. These are all the child offers. OK, offer variants. Offer variants are nothing but normal normal
CMO, Flex, CMO, flex and upgrade. Flex upgrade FLEXUPGRADE is always a handset, one other ones are SIMO. OK, now normal SIMO
Flex and Simon Flex are the you can use for the CMO, PM, CMO and this flag subrata, you can use for the PM handset and PM loan
normal. You can use for everything but for the normal customer should be out of commitment. So these are the offer very.
0:16:0.360 --> 0:16:12.80

Well, eligibility rule, this offer variant eligibility is also defined. The proposition filter also. So if you see offer variation eligibility. So if I open
this one for CMO to CMO for CMO.
0:16:12.150 --> 0:16:32.320

But take a SIMO flags normal. See more flags for all. Also those rules are defined. So basically this from where these rules are, how to get
eligible this rules OK how to get eligible rule open this one. It is defined at somewhere at the rule. OK. If you open this one rule.
0:16:33.80 --> 0:16:34.390

Now it it will say.
0:16:40.250 --> 0:16:42.70

Suppose I'm opening this one. I'm sorry.


Suppose I'm opening this one. I'm sorry.
0:16:45.790 --> 0:17:4.680

So it is saying uh subscription is eligible for CMO, it should be normal CMO flats. So but you did not understand what is primary dot


4171
retention eligibility, OK what is primary dot region? There's a primary page where in that page retention eligibility thing is there from there
there is a type is there and from there the type they are.
0:17:5.410 --> 0:17:13.780

Taking it so there is one data set retention eligibility data set. Is there OK retention if I just open write retention?
0:17:41.300 --> 0:17:42.950

This is the data set OK.
0:17:43.990 --> 0:17:52.400

So this is the data set where where you will find all your customer retention eligibility. So if you just browse by keys you will put your service
number.
0:18:3.560 --> 0:18:5.80

But if you see her.
0:18:5.960 --> 0:18:10.890

From retention eligibility response from retention eligibility, I am taking the.
0:18:23.40 --> 0:18:53.710

I'm taking the type. OK, I'm taking from the retention eligibility and the taking time and the type is flag subgrid. So from this data set the type
they are taking the type. OK, so if it is not matching with the normal Simon Plex then what will happen? This rule will fail right? This 44 rule
will fail and and so when I when it comes to the configuration of the AU. OK so first configuration of the AU I'll just I'll tell you the
configuration yesterday we missed that.
0:18:53.780 --> 0:18:57.830

One configuration of the I should have started with this configuration of.


One configuration of the I should have started with this configuration of.
0:19:1.60 --> 0:19:13.710

Or you so for configuring the data setup the AU. The first thing is GPSL. A second thing is the CRE. OK. The third thing is a GCPL, OK.
0:19:14.440 --> 0:19:16.490

GCC PEN and.
0:19:17.830 --> 0:19:28.500

And some of the usage related usage related and in the CRE only I think you will put the early upgrade, OK, GPSL G let me just open.
0:20:35.510 --> 0:20:35.880
Gangireddy Thimmasani
OK.
0:20:51.200 --> 0:21:20.30

So if you see here I am getting this how I'm getting this information. I got this customer information so I'm going from the top. OK so I got
this customer information primary I'm getting this primary address primary phone. I'm getting this account open lines. How I'm getting this
information somewhere I should have configured right? So where I'm configured configuring this this customer profile this address this
where I'm configuring this.


4172
0:21:21.70 --> 0:21:51.380

I am configuring it in here. OK I'm configuring it here customer profile. OK, so if you want if you want something to check inside the
customer profile where you have to check it you have to check and get customer party list GCPL OK you have to check in Getcustomer
party list and this all details we'll get called when you run the get customer API OK. When you run the get customer API this all details will
get called.
0:21:51.790 --> 0:21:55.390

OK. Will the new updated details will be.
0:21:56.960 --> 0:21:57.440

Uh.
0:21:58.460 --> 0:22:18.870

Suppose you have you. You need to change this primary e-mail ID. Now it is blank. You want to some additive. Then you just put there and
get customer party list and then run the get customer API. You need you get the updated to one. OK so this details where you have to put it
in and get customer party list. OK then if if you see here.
0:22:19.660 --> 0:22:51.430

You are getting existing products, you're getting iPhone, you're getting a device of run. You're getting a tariff, maybe you're getting discount
add-on accessories. Everything you are having here, these are all are the existing product existing product is used for the comparison to
give the suppose you are using this one SE NOW customer is holding. So what what the agent is seeing OK customer is holding SEF with
SES now the recommendation I will give the iPhone 13 pro.


SES now the recommendation I will give the iPhone 13 pro.
0:22:51.550 --> 0:23:21.480

OK, So what customer is currently holding? So I am calling from my iPhone SE and I'm getting this recommendations. OK, so customer is
what currently holding what is the device of that customer. So this this existing product why we are displaying here just to compare the
details, OK, compare the details means suppose this is a 36 amount customer is paying now customer will pay 35. OK. So they we can see
the comparison here, right? We can see the town 24, five GD data.
0:23:21.540 --> 0:23:51.0

Customer is having 25 GB data. He's again giving getting a 25 GB data but with less amount 27 amount. Customer is getting. Previously he
was paying 36. So basically this is pre S15 amount. This is post S15 amount OK what customer is paying is a high one. We are giving a
better one to him. OK so this is this. Is this this section we are using for the comparison to give the recommendation OK according to this
amount only the the.
0:23:51.760 --> 0:24:2.590

The recommendation should come OK, so this amount should always hide. This amount should be less OK, so when when the customer
will get a better option when he will pay less, right?
0:24:3.270 --> 0:24:32.720

OK. When he will pay less then only he will get a better option. OK, so this is the thing. If what type of cost discount customer is holding. So


this this this details is used for the customer information and also to know the agent what customer is currently holding. OK, so this is the
existing product where we will have the. So basically in in real time the GPSL information it's a third party information Vodafone is.
0:24:33.500 --> 0:25:3.360

Taking it OK, but but the third party information Vodafone is taking it from somewhere else. OK, but how we will do it we we we are doing


4173
this all thing with the help of simulation simulation is nothing but whatever is not present in our AOM, we are just making a replica in our
environment. OK we are simulating those details. What just the normal term. If you're using a simulation. So if you're learning a car through
simulation how it means so you.
0:25:3.450 --> 0:25:33.260

It it it's like a real learning but a simulated form. Uh, artificial way of learning, but you feel a real thing. OK, that is a simulation. OK, but that
is, that is what we are doing, how it is coming from the GPSL. We are just simulating all those information in our AOM through the through
the simulation. This all we are doing as a simulation simulation is nothing but we are we are creating an activity which is calling this data
transform.
0:25:33.460 --> 0:26:3.440

They're pasting all the detail in the data transfer and the data transfer is called through that activity and then the things are happening. OK.
So basically right now this GPSL, CRG CPU usage, these three things are done through data transform and that data transform automation
is happened in the graph level. OK. So in the graph what you will find this GPSL you will find the CR you will find GCPL you will find usage
you will file and.
0:26:3.530 --> 0:26:7.430

You will find the insert scripts insert scripts means.
0:26:8.870 --> 0:26:12.780

Insert scripts means this insert scripts model score.
0:26:13.180 --> 0:26:43.100


0:26:13.180 --> 0:26:43.100

Ohm subscription table OK subscription table, account table, contact table. So where you will get you where you will get the unique ID
where you will put the what type of customer. It can be what is the service number. So basically unique ID is generated through automation.
This unique ID is generated through automation. This is hard coded. It should be always post paid. This is mobile service. It's hard coded
this account number. It's a unique ID so this.
0:26:43.190 --> 0:27:14.200

These things inside scripts we have automated. So basically this configuration plus the insert scripts are configured in the graph. OK these
all are the configuration of AU in graph. OK so if any things you have to check check is not happening you have to go and change your
graph. Suppose in existing customer you you need to change this amount so how you will change it you just go in the graph and check
where the GPSL is defined and change the amount to 4:50 to 4:00.
0:27:14.270 --> 0:27:27.370

20 and then run the Getcustomer API again OK then you will get the updated amount usage thing. Now I discuss about the existing product
I discussed about the customer profile and then the CRE.
0:27:28.300 --> 0:27:59.310

Theory is nothing but offer variant. It defines the journey and it also defines the early upgrade fee. OK early upgrade fee if customer is a
need to pay the early upgrade fee. There we will define the early upgrade fee in the CR level. OK, so if I just open a data set it open I need


to open again. So there you have to define early upgrade fee. So if you if you if you know where this early upgrade fees coming from it is
coming from the CRAOK retention eligibility.
0:27:59.450 --> 0:28:19.40

You say thing you are saying you are seeing a usage details are there. So three months, December, January and December. January uses


4174
details are there OK January is not there only December is there. So from where this uses details are coming this uses details are coming
in the usage level.
0:28:19.840 --> 0:28:44.390

OK, so these are all error simulation simulated information we are using through data transfer. So these are the term terminology, activity
simulation and the data transform and that when the data transform runs and when the data transform runs, all the details are stored in the
data set. OK, so first first the.
0:28:45.220 --> 0:28:47.290

First, we will define the simulation.
0:28:48.30 --> 0:28:49.120

Stub response.
0:28:50.200 --> 0:29:20.660

OK, simulation is stub response, then we will then this. This simulation is struggle, response will call through one activity and then activity
will have this data transform and then that data transform is in store. The result in the data set OK then the final is data set. So if I'm
checking this check retention eligibility then it is a data set. I should get the final result in this data set similarly for. Similarly we have a
processed service list dataset OK processed service list data set.
0:29:20.850 --> 0:29:50.690

There is a process list simulation activity which I'm talking about this activity. So for everything uh data set activity and data transfer. If you
say simulation response then it is simulation response. OK so for everything there is a activity simulation or transform and data set is
available where the results and where we should configured our things. Right now we will not configure. Previously when I started AU we


used to configure this manually. In this process service list.
0:29:50.820 --> 0:30:5.780

The response if you see the watch one and 28, these are defined by me. OK, so we I used to do manually then this, then this STF came
and then this STFS done this automation we you can just open the graph.
0:30:6.610 --> 0:30:7.150

Here.
0:30:8.170 --> 0:30:14.510

And you define this one. OK, so I just, I'll show you this for two minutes. How the graph shows designer.
0:30:19.700 --> 0:30:20.360

But then you.
0:30:35.330 --> 0:30:49.980

So if you see the flags flags, contact OK. This is a contact contact is database table. So where you are saying database table it's nothing
but insert scripts. OK so this is database table OK.
0:30:50.280 --> 0:31:13.970

Ohh this is a SQL and TSQL this the database table. This is a clipboard page OK clipboard page. If you see the price information price page


4175
OK this clipboard page what you are saying. This is nothing but a data transform level here in the graph it's a different technology. We are
using it so this is the adjusted list price. This adjusted list price is nothing but the price you are seeing it here.
0:31:14.650 --> 0:31:19.560

OK, price, you're seeing it here. OK and then.
0:31:21.730 --> 0:31:51.480

This is the GPSL, OK price and product related things are GPS N OK, so price and product related things are GPSL. OK. So wherever you
are seeing the product through one, OK, so you can see a product root one, this is a GPSL, OK. So this is a root product one this is a
GPSL. So if I say do do change in the GPSL level then you have to go here and check the product rule price. So this product root price
things are GPSL so.
0:31:51.680 --> 0:32:10.570

You when you do work then you will get to know better. OK. So you you have processed service list OK you have early upgrade list. So this
is the CRE, OK, this is a CRE OK and similarly there must be some usage things will be there. OK, if I get go to the second page.
0:32:15.20 --> 0:32:15.870

But it's me.
0:32:16.600 --> 0:32:47.80

So if you see uh get customer usage history, OK, get customer usage history. So this is a get usage things OK. This is defined at the. This


is defined for this section. OK. So if you need to change something in this section, then you have to go and change in here in your graph.
OK, so these are, these are the things which are already defined in the graph. But if you want to do a specific scenario then you have to go
and change it here. OK. Customer party list. OK customer party list.
0:32:47.370 --> 0:33:17.640

OK, so I talk about this also customer party list. So if you want to change the address and everything then you go and change your address
here customer party list address custom. OK, these are the things which are defined here. These are automated every time same value will
come. But if you want December, January, February 3-4 months then how we will define online right now I'm getting only two one month
how you will get it OK to suppose it is saying three months I average nikal then what you will get.
0:33:17.720 --> 0:33:40.890

You will need to define three months right where you will define. You will define in the usage section of the graph. OK, so these are the
things which are needed to configure the AU details. So these are the configuration. It's a basic setup, it's the. It's a kind of core of the data
setup you have to do it for EU. OK. These are the things now.
0:33:41.710 --> 0:33:52.100

So this this all details is dependent upon the get customer API. So if you see the get customer API request and response. If I have I'll show
you.
0:33:52.920 --> 0:33:53.990


you.
0:33:52.920 --> 0:33:53.990

It customer.
0:34:14.160 --> 0:34:44.290

But this is the get customer request. OK, so these are the contact details. OK, in this contact details it is saying we are the primary sources.
OK get customer party list response OK. If it is saying subscription is fine then are you into say insert scripts. OK a subscription is fine.


4176
Basically the database view what we are using it is in in here we tell the spine if I'm saying the GPSL OK then this GPSL is there OK so how
the request?
0:34:44.370 --> 0:34:54.140

So where is the primary source? It is the GPSL calculated. This flags attributes of subscription flags. Attribute table subscription is fine. CRE
GPSL OK.
0:34:54.380 --> 0:35:25.870

Umm, these are the product catalog. Ohh so GPSL. OK, this is a device is fine. OK device table is there. So basically if you see the get
customer. So basically I am in the get customer response body OK in the get customer response body from where these things are printed
the primary source of these things are nothing but this things which you have configured OK all the customer existing details get customer
will retrieve for you and it will retrieve.
0:35:25.940 --> 0:35:46.460

From the different sources beat party list, beat the GPSL, beat the CRE. It will give you from the different third party sources and the
primary sources also. So suppose if you don't get any first name last name so you just open this spec document and see what is the
primary source of this and you just go in your graph and you just and you just.
0:35:47.280 --> 0:35:55.440

Over there, what is the value coming in and it's done now. OK. It's a basic setup. You need not to ask anybody. You just open this spec.
0:35:57.100 --> 0:36:20.90


0:35:57.100 --> 0:36:20.90

The things what is the primary source? Go to the graph and check there OK if it is value is 4:30 you change it 422 and then your scenario is
done. OK this is as simple as that. You need not to ask where to check where to end the and. The thing is you and for every for every
process it's defined here there's a data set available. OK you need to clear those dataset by using the keys and then.
0:36:20.170 --> 0:36:34.440

Uh, check the get customer API or launch launch the better. Again, if you launch the better again. Again this API is called end up updated
details you will get it. So this is the basic things if you don't get anything in your UI.
0:36:35.320 --> 0:36:36.580

And in your data setup.
0:36:37.420 --> 0:36:41.0

And then this is the configuration we have discussed.
0:36:44.420 --> 0:37:16.50

Uh business purpose done configuration. All the decision datas are there. Uh, Jhansi and gangireddy. This is offer decision. Data offer
variants offer to offer. Variants basically offer to offer variants is a mapping between offer and offer variant OK treatment is treatment variant
is a treatment variant. We'll discuss more about it. Treatment is inbound. CC treatment we are using. So what is the applicable channel we
are using for AU? Applicable channel is always inbound. CC. What are the parents here? What are the child?
0:37:16.130 --> 0:37:48.620


0:37:16.130 --> 0:37:48.620

There it's mentioned over here, OK in the treatment level there is a parent treatment. Parent child treatments are there. So basically parent
child treatments are nothing, but it's his decision data where the mapping between parent and corresponding child is mentioned. So if you're
getting handset but if you're not getting discount. So first thing you have to check whether the mapping exists or not OK and then the other


4177
checks other further checks which comes in the logic treatment to treatment variant. Is there treatment to sub channel is there basically
channel we are using inbound CC sub channel. We are using better.
0:37:49.330 --> 0:37:52.940

Uh does that the attributes attributes are nothing, but we are.
0:37:53.680 --> 0:37:57.720

Let me use this message. Basically, sometimes you get this message right.
0:37:59.340 --> 0:37:59.740
Gangireddy Thimmasani
Got it.
0:37:59.320 --> 0:38:1.550

This message in hello.
0:38:2.820 --> 0:38:3.320
Gangireddy Thimmasani
Ohh.
0:38:9.920 --> 0:38:10.240
Gangireddy Thimmasani
Yes.
0:38:4.400 --> 0:38:34.70

Sometimes you customer is more likely to move in the more section, right? You get this message right? So basically in in the treatment to
treatment attributes level, this message are designed segment strategy, customer is more likely to move. So basically this message are
defined in the treatment attribute level and the mapping is there between the offer and the treatments, OK, a treatment variants offer
treatment variant and a treatment those mappings are there and this is the funnel. Basically the funnels are what is the output of.
0:38:34.150 --> 0:38:43.650


0:38:34.150 --> 0:38:43.650

Each strategy so that this is the first step of the identify eligible IVC treatment. So in this this in the first if I open.
0:38:48.10 --> 0:38:50.520

Identify best inbox CC.
0:38:51.690 --> 0:39:5.740

Now it's quite a kind of updated one uh, the offer catalogue I'm hold explaining. It's old one. OK, so if you see identify eligible IC treatment.
So in the first step suppose this all offers are going.
0:39:6.520 --> 0:39:37.850

OK. And this is all offer variant as qualifying and this treatments are qualifying and these are the product recommendation type is going and
these are the tariff type segments, are there OK, so these all are the output of this one then output of identify best treatment then authentify
best treatment this one this came newly then previously it was from this to this only so then identify best treatment for subscription so he till
here treatment was there now now the parent and child thing will be there.
0:39:38.110 --> 0:40:9.390

OK, if you see the parent and child is coming from there. OK, so now what? What are the things you are getting at the recommendation
level one, we are getting tariff discount in the recommendation level 2, you're getting this one and the recommendation Level 3 you are


4178
getting this one. So this is the outcome for the step two, OK then then you are getting go to the calculate upgrade deal in the calculate
upgrade deal here, calculate upgrade deal is there inside the calculate upgrade. This logics will apply you are getting at one and you're
getting the discount of upsell.
0:40:9.500 --> 0:40:40.30

And all those things you're getting. One recommendation is commercial. This will define. So this is the output of calculate upgrade last is
the. It will join all the steps and the pathways and recommendation at last. What you get here is the one. So first position you will get logic
second position you will get logic third position you will get the commercial. So this bundle deal you were you will get it. So this is basically
we will say as a funnel you term as a funnel this one basically AU funnel when you describe a funnel funnel it means of end to end journey
end to end.
0:40:50.80 --> 0:40:50.310
Gangireddy Thimmasani
2nd.
0:40:40.230 --> 0:41:9.140

Journey. What you will get at the output of this strategy. So basically you called it a funnel. OK, so this is the final strategy and when you talk
about the recommendation, the recommendation I have two type commercial and the logic commercial recommendation is based on the
commercial recommendation decision data and the cohort decision data. If you qualify for the cohort and the same cohort is the applicable
for the commercial recommendation then you will get a commercial recommendation. OK.
0:41:10.770 --> 0:41:41.140


0:41:10.770 --> 0:41:41.140

And the condition always you get a recommendation. It's a. You should have a celebrity device. You should have a sellable tariff. You should
have a syllable discount. Add on whatever you need it in. The recommendation all should be sellable in the product attributes all should be
available in the product catalog tables. OK, so those product catalog attribute and those compatibility between device and tariff is present
then only you will get recommendation. So those are.
0:41:41.270 --> 0:41:53.700

Those are you will always get in the through compatibility compatibility and we say as compatibility and scalability check. OK celebrity
check.
0:41:54.430 --> 0:42:27.140

So this check should always there OK in both the logic and commercial recommendation. This check should always be there if there is no
check between the products celebrity and compatibility check is not present in the product then you will not get a recommendation. OK, so if
you're not getting a recommendation first thing to check out DD second thing, check whether the compatibility and celebrity is there in the
product or not. Whether really the product is available is not so those those basic check you have to do it.
0:42:27.310 --> 0:42:57.240

OK. Then when comes to the logic recommendation we for the logic recommendation, we use a T block. We get recommendation on the
basis of T1T2T3 and T4. Basically it it runs on the basis of logic. There is no decision. There is a decision data but the logic applies over


there. So whatever the recommendation tariff is there you will get a higher data. So suppose you are suppose you are holding a 25 GB OK
you will get at more than 25 GB.
0:42:57.330 --> 0:43:27.880

The recommendation, OK, save data. You will get a same data but a different kind of more features you will get in the service. OK, T3 is
highest propensity, T4 is a whatever you get in the T1 position you will T1 position higher data it should. T4 is always higher than T1. OK,
suppose you are here you are getting 25 GB then here you should get you you should you should get 512GB. OK. It should never less than
25 GB.


4179
0:43:28.240 --> 0:43:28.670

OK.
0:43:29.970 --> 0:43:30.800

But this is the.
0:43:32.100 --> 0:43:36.330

This, this, this is the T1T2T4 logic, OK.
0:43:36.510 --> 0:43:41.360

We and I was explaining about calculate upgrade deal yesterday.
0:43:44.700 --> 0:43:46.10

But till now any doubt.
0:43:55.130 --> 0:43:56.530

Bonali you have anything?
0:43:58.590 --> 0:44:1.960
No, Asha, I guess this much is like yesterday. What we did, right.
0:44:5.670 --> 0:44:6.320
Yeah.
0:44:12.230 --> 0:44:12.600
Yeah.
0:44:16.470 --> 0:44:17.70
OK.
0:44:2.10 --> 0:44:32.70

Huh. So be released. We have covered the chances and you, we have covered more information about these things, this configuration
things, right. So yesterday I did not tell you about this. So we have covered this, OK. So when I'm going to logic recommendation how you
will get the handset, how you will get the recommended tariff, how you got this Apple 13 Pro you it's it's like how you got this, OK, how you


got this 5120GB gold 24 instead 24 Month 2.
0:44:32.160 --> 0:44:41.370

The extra plant, the tariff, how you got this, this you got when this strategy will give you some decision you will got the tariff when this
strategy will give you decision.
0:44:42.110 --> 0:45:12.0

OK, discount you got when this strategy will give you decision. OK, so these are the like how you got this handset basically you got the
handset through 2 means OK, you got the handset by by checking by by by checking the celebrity check and compatibility check using PM
PCPM handset and the product attribute in product attribute handset should be present. OK, it should be sellable, it should be sellable to
team, it should be sellable to channel PCM handset start date.


4180
0:45:12.90 --> 0:45:32.560

And then you should not be expired. OK, so this is the handset and the whatever the handset suppose you are using 212468. Whatever the
handset you are using. OK so this this handset should be present the stock and for this stock again the stock information is a third party
information. So we are using kind of a.
0:45:33.240 --> 0:46:3.290

API to get this information how we are getting the information of the GPSL and CRE the same way we are use getting the information of the
stock or of handsets. Also stock of anything, accessories, handset anything. OK so we are we are defining those stock we are simulating
those response in our environment AOM environment and then we are getting those hard coded value in our environment. We are using
those hard coded simulated value in so if I am getting this stock.
0:46:3.360 --> 0:46:13.930

Information. If I'm getting this talk information 20 units. So I'm getting through this GS simulation response. This is a data transform where
I'm defining the stock of each product.
0:46:14.840 --> 0:46:28.610

Would have made this one, so I'm using a quantity field to define the stock. So if the stock is pro, so if I just open this one I'll just give a
glance of this today and then I'll wind up on this.
0:46:30.600 --> 0:46:31.310
OK.
0:46:33.380 --> 0:47:0.740


OK.
0:46:33.380 --> 0:47:0.740

So if so, basically if it agent and team division. OK, so if that agent and team division is present in there so then it will go here. So basically
first it will check how many sellable devices are present in our AOM. So with this things with this table and with this attribute we need to
check whether the syllable device is the present or not and then device from BDC model. So we will run the BDC loader for the device.
0:47:0.850 --> 0:47:27.890

I and from there also we can load the device OK, so when when everything is done over here then what will happen? The stock check will
happen when the stock availability is also done then that it will it will check the top one device and the top one device is this one and this is
only the recommended here iPhone 13 Pro. OK so this way you will get a device by using this get recommended handset so if you are not
getting recommendation and it is failing at.
0:47:28.600 --> 0:47:58.730

Logic level and you are getting a no decision here means you are either you don't have the things in here or either you don't have a stock.
OK, if these two things are perfect then you will get always a device over here. OK, so this is the thing for device stock is present then the
device will go here and it will. It will look for the recommended tariff. Now recommended tariff here you got is 24 month 25 GB Xtra plan with
four benefits.
0:47:58.800 --> 0:48:2.120


four benefits.
0:47:58.800 --> 0:48:2.120

How did you got this? So you got this this way.
0:48:3.410 --> 0:48:11.780

The 1st way is is is the 1st way is the same thing when it comes to tariff. The 1st way is check the celebrity.
0:48:13.550 --> 0:48:22.120


4181
Take the celebrity, OK and check the compatibility. So celebrity how you can check it. Celebrity you can check it with the PC.
0:48:23.100 --> 0:48:23.710

Tariff.
0:48:27.520 --> 0:48:29.530

Easy to review and.
0:48:31.40 --> 0:48:32.660

Be under score eligible.
0:48:34.810 --> 0:48:35.230

That.
0:48:37.310 --> 0:48:56.750

If these are the one which you were from, where you will check the celebrity and compatibility here in this table PNG score eligible tariff
view. In this view you will find a department OK in department if the tariff is present in the department. Basically we have a this department
is a kind of let me just.
0:49:9.950 --> 0:49:29.340

So this is these are the teams and the teams and these are the division. So if you're using a team only then the department is a customer
retention. So corresponding mapping is there inside one division to team decision data there is one division to team decision data where
this mapping is already present. OK.
0:49:30.980 --> 0:49:42.660

Sorry, so if you are use. So basically you are tariffs should be present in that department. OK celebrity check and the product attributes. OK
product attribute should we always there.
0:49:43.960 --> 0:49:53.260

OK, product active. So in this way you are defining and then you will be having this PC eligible I think.


0:50:1.490 --> 0:50:31.660

The PC eligible handset tariff you so this one, OK, so whatever the handset you got it from here and whatever the tariff you got it from here,
suppose you've got 1129276 and so whatever the handset you got it here and whatever the tariff you got is a basically these two should be
compatible with each other. OK through this table, OK through this table it should be compatible to each other then only it will move further
otherwise it will fail. OK so.
0:50:31.740 --> 0:50:36.630

If you go inside this T1 logic, this tip to go inside the T1 logic.
0:50:41.730 --> 0:50:42.420

OK.
0:50:45.650 --> 0:51:15.930

Go higher data and feature higher feature red top rated detriment, top unlimited Max higher data. These are all the features on the basis of
that you will get a recommendations. OK so these are the things like red top entertainment, entertainment thing so so these are the features


4182
which you get the T1 logic. So basically right now if we are getting recommendation it's enough for you. So the testing is reach at that level
but previously when we are testing we were testing you should get.
0:51:16.10 --> 0:51:45.790

You should be eligible for higher data feature. You should be available for higher feature at top and all those testing we have done it in the
previous things. OK so these are the things on which on what type of tariff you should get in the recommendation. So if I want only
entertainment thing then I will get entertainment only here right now it's not entertainment. So if I want entertainment I should go and see
what is the condition supply for the entertainment basically ended for entertainment recommended group coverage should be seven. OK.
0:51:46.30 --> 0:52:11.680

And the seven where it is defined, we have to check how the seven it's coming. So so how the coverage is calculated. So these are the
things which are defined in the code level and what are the things are coming. So basically T1T2T3 logic when this logic applies then only
you will get a logic recommendation how you differentiate between logic and commercial recommendation in the UI for logic
recommendation.
0:52:12.300 --> 0:52:41.760

Uh, nothing. Uh here, nothing will display for commercial recommendation. There is one star will display, so star is always a commercial
recommendation. OK, so this is the things for commercial recommendation. So he when when this particular strategy will run out of any of it
you will you will get a recommendation tariff when when this will give you some decision and the result you will get a recommended tariff.


OK so and for recommended tariff these things are necessary. OK.
0:52:43.110 --> 0:52:51.530

And now this is happened. So this is calculate upgrade, discount, calculate, upgrade discount is nothing but in in offer catalogue. If you see
here.
0:52:58.340 --> 0:53:28.490

No offer catalogue if you see here, there's a T1T2T3 logic which is treatment variant of logic recommendation. Now for the discount
recommendation we have also a eligibility criteria for three types of discount we are using in the AU upsell discount price metric discount
and the segment of 1 discount. We'll discuss this discount in detail tomorrow because it's kind of a big one and the important one, OK
basically what customer wants a customer wants a discount, right?
0:53:28.610 --> 0:53:41.800

So basically a customer wants a discount and customer wants always a maximum discount. So we the the AU runs on the basis of this
three discount where it was.
0:53:42.720 --> 0:54:13.750

AU runs on the basis of three discount. Suppose upsell customer is eligible for all three OK tell it will all three discounts. It is giving me 15
and it is giving me 20. OK so if customer is eligible for all three discount which discount customer gives tell me it will get the always the Max
discount. So AU is always when you say what is AU so AU is always customer calling the agent getting a better recommendation and
getting a maximum discount for the recommendation.
0:54:13.850 --> 0:54:40.0


0:54:13.850 --> 0:54:40.0

So that is the AU. How we'll get the maximum discount you get only the maximum discount on the basis of this discount treatment variant.
OK. So if customer is eligible for all three discount, it will get the maximum of it. It will if it is eligible for two then it will the comparison will
need to be in the two discounts and you will get a maximum amount of it. OK. If it is getting one then no problem that discount only you will
get it. So these are the three types of discount that we will.


4183
0:54:40.360 --> 0:54:53.530

Uh, we we apply for the AU. OK, so if if you're seeing a discount here, then how does discounts are coming in here? OK, so this discounts
are coming in here by by.
0:54:54.480 --> 0:55:14.590

This only OK and these are all the decision databased. OK, whatever the discounts you have put, basically, we call this discount is a toolkit
discount. OK. The so when you say a toolkit discount is upsell discount price metrics and the segment of 1 segment of 1 discount only
applies for the commercial recommendation. It does not apply for the.
0:55:14.730 --> 0:55:17.750

Ohm logic recommendation OK.
0:55:18.430 --> 0:55:19.340

Said this is the thing.
0:55:21.720 --> 0:55:24.590

Is it OK? We will discuss tomorrow about the discounts.
0:55:29.450 --> 0:55:30.830
Yeah, I'm OK with that.
0:55:32.150 --> 0:55:32.390
Gangireddy Thimmasani
OK.
0:55:32.470 --> 0:55:32.700
Gangireddy Thimmasani
Yes.
0:55:32.380 --> 0:55:44.120

So these are the. So if you open this calculate Max discount Max upgrade discount then you will find upsell discount logic, price metric and
segment of 1 and all the things you just you just.


segment of 1 and all the things you just you just.
0:55:44.240 --> 0:56:1.50

Uh search with the keyword up seller price metrics. You find every every detail in the confluence page. Just search the keyword you want to
learn. OK you find at least one or two page of detail in the confluence page. You can learn it from there OK.
0:56:3.570 --> 0:56:4.690
OK. Yeah, sure.
0:56:8.700 --> 0:56:13.730

OK, any doubt like whatever I told, whatever I told it now.
0:56:14.580 --> 0:56:18.130

You guys know it or I just I'm just repeating it out.


4184
Case Management - Extractor
Below flow invokes a common sub flow Initialise and if check points are elapsed, flow jumps to elapsed stage otherwise invokes
I n i t i a l i s e E x t r a c t o r activity. This activity sets WorkAreaPath, LoopLimit and append NodeId to NodeList. If there are any errors inside the
activity then the flow invokes NotifySupport sub flow

Initialize the extractor process
Prepare IH extract
If the CaseSubType is “IH” then this flow invokes a common sub flow ProcessFlowToggle and checks if IsToggleEnabled is true, then skip
the complete flow otherwise invokes PrepareIHExtractData activity. This activity get ExtractorTable and segments from AOMConfig and set
header, start and end timestamps and executes a Connect-SQL Prepare which prepares data in interaction_history_xt table. If it is success
then invokes another activity PrepareIHRExtractData which is same as PrepareIHExtractData activity but it prepares data in
interaction_history_reporting_xt table.If it is success then invokes another activity PrepareRIExtractData which is similar to above two
activities and prepares data in recommendation_Items_xt. If there are any errors inside the activities then the flow invokes NotifySupport
sub flow.

Prepare CCD extract

If the CaseSubType is “CCD” then this flow invokes a common sub flow ProcessFlowToggle and checks if IsToggleEnabled is true, then
skip the complete flow otherwise invokes CheckCCDInputData sub flow


4186
Text2Switch - Business purpose - Retain
Endpoint : CAPST/CAPST2 EX: https://pega-realtime.data.capst2.vodafoneaws.co.uk/
 Resource : /prweb/PRRestService/aom/v1/triggerevent  (Based on API changes, you can change version V1 or V2)
HTTP Method: POST              T2S using Triggerevent API                    T2S using Loader- Not in use
Truncate your DataSet - SubscriptionTestDataSet Truncate your DataSet - SubscriptionTestDataSet
Run 1st DataFlow - PrepareRealtimeDataForProcessEvent Run 1st DataFlow - PrepareRealtimeDataForProcessEvent
Run 2nd DataFlow -IdentifyCustomerIntentsRealTime Run 2nd DataFlow -IdentifyCustomerIntentsRealTime
Do UnitTest for the customer Do UnitTest for the customer
Check your customer in Final Strategy: ProcessEvent Check your customer in Final Strategy: ProcessEvent
Hit triggerevent API Insert the file in appserver and Run Loader
1. Check IH table for SMS records, 2. Check event status table 1. Check IH table for SMS records, 2. Check event status table
Once API is triggered OBCC customer will be updated in one of the
below two datasets
BestOBTreatments1ForT2S, BestOBTreatments2ForT2S
Check in AOMConfig - RealTimeDSPointerForT2S - Change the
configValue according to the above dataset.(Flush all the data pages)Once the Loader case is triggered OBCC customer will be updated
in one of the below two datasets
BestOBTreatments1ForT2S, BestOBTreatments2ForT2S
Check in AOMConfig - RealTimeDSPointerForT2S - Change the


Check in AOMConfig - RealTimeDSPointerForT2S - Change the
configValue according to the above dataset.(Flush all the data
pages)
Run Extractor Run Extractor
Check IH table for OBCC records Check IH table for OBCC records
Check the file in appserver for OBCC record in the respective
locationCheck the file in appserver for OBCC record in the respective
location       T2S can be performed in two ways - TriggerEvent and ProcessEvent


4187

Request:
{ "Identifier":{
    "ServiceNumber":"447111108350"
  },
  "Event":{
    "Type":"LeaveRequest",
    "SubEventType":"PAC",
    "Channel":"SMS",
    "EventTimestamp":"2023-03-16T20:51:44.689Z",
    "Status":"New"
  },
  "EventDetail":{
    "SMSRequest":{
      "DestinationMSISDN":"75075",
      "Message":"8612"
    },
    "ServiceAttributes":{
      "Status":"",
      "CustomerSegment":"PAYG",
      "IsVoxi":true,
      "IsMultiDevice":false,
      "IsMultiServiceAccount":false
    },
    "LeaveRequest":{
      "SwitchingCode":"XDQ949287",
      "SwitchingCodeValidityDate":"2018-11-21",


4188
      "PAYGBalance":0.0
    },
    "ErrorDetail":{
      "ErrorCode":"BUSINESS ERROR",
      "ErrorDescription":"SMS_PAC_STAC_INGRACEPERIOD"
    }
  }
  }

→ →  Once you Hit API Two records inserted in IH , Like Below
One is T2S Offer record (you have to eligible)
Realtime Record(Outcome : RealTimeEvent(In below screen shot)) - It will automatically(Campaign will run (Ex: T2SRealtime))
eligible and inserted into IH when you eligible some offer.
When you run the API and If you get duplicate records in IH, It means multiple Campaigns are running.
So turn of all campaigns , and enable only one campaign
If you not get RealTime Record in IH, Please follow below Child page.
T2S - SMS RealtimeEvent Record not stored in IH


4189
T2S - SMS RealtimeEvent Record not stored in IH
If We hit the TriggerEvent API for T2S, IH will store with 2 records
1. With Pending Outcome
2. With RealTimeEvent Outcome
Like Below.

If RealTimeEvent record not stored in IH, Please follow the below steps to get the record in IH.
1. Land on ToggleManagment Landing Page.To
2. Check Channel Managment status On/Off.
If it is off then fine.
If not, Just turned it off(Click on Pencil Icon(Under References))


4190

ggle Management
3. Then Hit TriggerEvent API, then you will get the RealTimeEvent Record.


4191
Extras Landing Page
Extras Landing Pages
Business Requirement:
Objective: Extras Landing Page is to display a web page (developed in Microsite), when customer clicks a link inside SMS,The web page
presents the customer with offers e.g. 1GB or 2GB of extra data.
Pre-requisite: Functionality e.g. NBA Batch has sent SMS to customers. The SMS body contains a link for Microsite, which customer needs
to click.
When customer clicks on the link, Microsite pages are displayed for a no-error scenario.
Each microsite page displayed for a scenario e.g. success, failure etc. is customizable via a template and contents configured in PM Tool.
1. NBA Batch Process sends SMS to customer that has the Microsite link.
2. Customer clicks on the link.
3. Customer lands on Microsite landing page.
4. Re-validation check is done if the offer is still available and the customer eligible for the offer.
5. For re-validation success scenario, eligible offer 1GB or 2GB  are displayed.
6. Along with success scenario, that writes Shown outcome in IH
7. If customer clicks “Buy now” button.
8. CSO (Create Sales Order) logic gets invoked
9. The CSO process, if successful, writes Accepted response in Interaction History. Logic notifies the app layer to display a success
Microsite page.
10.   CSO process, if not successful, writes a Failure response in Interaction History. Logic notifies the app layer to display a failure
Microsite page.

Implemented Functionalities
Revalidation Checks:
Prereq: Customer should have received a SMS link
Customer is ineligible :customer is ineligible for the data extras presented in the SMS


Customer is ineligible :customer is ineligible for the data extras presented in the SMS
The offer has expired: The customer is only eligible for the offer for a certain amount of time, if they click on the URL in the SMS following
the expiry date, the offer will not be available to the customer anymore
The offer is inactive, then sorry page is displayed to the customer

Offer Expiry
Prereq: Customer should receive the SMS link
The customer is only eligible for the offer for a certain amount of time, if they click on the URL in the SMS following the expiry date, the offer
will not be available to the customer anymore

Fallowperiod


4192
Prereq :Customer should have received a SMS with the details of the offer
The user should be able to configure a number of days for which the offer will be unavailable to the customer after it has expired.
Errors:
All error scenarios display Sorry Page.
Error is written to aom_error database table.
Error Scenario 1
Once customer clicks on the URL in SMS, AOM tries to look up customer and offer information by using the Metadatacode present in the
URL, if customer details cannot be found against the URL details, error page is displayed.
Error Scenario 2
If Metadatacode look up is successful, there are additional validations for GPSL. If call to GPSL fails, error page is displayed.
Error Scenario 3
On the URL click and other customer activities on the Microsite, Pega needs to write responses to Interaction History as part of Capture
Response process. If the process fails, error page is displayed. Eg: Interaction id mismatch for a sms sent response and sms clicked
response.
Extras Landing Pages
Business Requirement:
Objective: Extras Landing Page is to display a web page (developed in Microsite), when customer clicks a link inside SMS,The web page
presents the customer with offers e.g. 1GB or 2GB of extra data.
Pre-requisite: Functionality e.g. NBA Batch has sent SMS to customers. The SMS body contains a link for Microsite, which customer needs
to click.
When customer clicks on the link, Microsite pages are displayed for a no-error scenario.
Each microsite page displayed for a scenario e.g. success, failure etc. is customizable via a template and contents configured in PM Tool.

1. NBA Batch Process sends SMS to customer that has the Microsite link.
2. Customer clicks on the link.


2. Customer clicks on the link.
3. Customer lands on Microsite landing page.
4. Re-validation check is done if the offer is still available and the customer eligible for the offer.
5. For re-validation success scenario, eligible offer 1GB or 2GB  are displayed.
6. Along with success scenario, that writes Shown outcome in IH
7. If customer clicks “Buy now” button.
8. CSO (Create Sales Order) logic gets invoked
9. The CSO process, if successful, writes Accepted response in Interaction History. Logic notifies the app layer to display a success
Microsite page.
10.   CSO process, if not successful, writes a Failure response in Interaction History. Logic notifies the app layer to display a failure
Microsite page.

Implemented Functionalities
Revalidation Checks:
Prereq: Customer should have received a SMS link


4193
Customer is ineligible :customer is ineligible for the data extras presented in the SMS
The offer has expired: The customer is only eligible for the offer for a certain amount of time, if they click on the URL in the SMS following
the expiry date, the offer will not be available to the customer anymore
The offer is inactive, then sorry page is displayed to the customer

Offer Expiry
Prereq: Customer should receive the SMS link
The customer is only eligible for the offer for a certain amount of time, if they click on the URL in the SMS following the expiry date, the offer
will not be available to the customer anymore

Fallowperiod
Prereq :Customer should have received a SMS with the details of the offer
The user should be able to configure a number of days for which the offer will be unavailable to the customer after it has expired.
Errors:
All error scenarios display Sorry Page.
Error is written to aom_error database table.
Error Scenario 1
Once customer clicks on the URL in SMS, AOM tries to look up customer and offer information by using the Metadatacode present in the
URL, if customer details cannot be found against the URL details, error page is displayed.
Error Scenario 2
If Metadatacode look up is successful, there are additional validations for GPSL. If call to GPSL fails, error page is displayed.
Error Scenario 3
On the URL click and other customer activities on the Microsite, Pega needs to write responses to Interaction History as part of Capture
Response process. If the process fails, error page is displayed. Eg: Interaction id mismatch for a sms sent response and sms clicked
response.
Error Scenario 4
Customer clicks on the URL, but the customer data is not present in Subscription table, error page is displayed.
 Dataset up


Dataset up

1.Create Customer with Insert scripts

INSERT INTO alphadata.subscription_v
(subscription_id, service_no, prepay_postpay_type, subs_status, subs_type, owner_acct_no, billing_acct_no, service_acct_no,
consr_enterprise_flg, consr_indirect_comns_base, acquisition_channel, acquisition_dealer_store, retention_channel,
retention_dealer_store, subr_original_connection_dt, latest_contract_start_dt, latest_contract_end_dt, mms_mktg_consent_flg,
sms_mktg_consent_flg, obc_mktg_consent_flg, location_data_consent_flg, traffic_data_consent_flg, profiling_consent_flg,
billing_profile_no, last_billing_dt, future_disconnection_dt, subs_credit_limit, my_acct_cntrl_flg, spend_mgr_onoff_flg,
spend_mgr_val, subr_my_vf_app_flg, subr_mva_notif_on_flg, subr_acr, vf_app_version_no, subr_tariff_product_cd,
tot_mob_dom_dat_allw_kb, tot_mob_roam_dat_allw_kb, tot_sms_allw, tot_mob_voi_dom_min_allw,
tot_mob_voi_roam_min_allw, mktg_segment_1, mktg_segment_2, previous_service_no, record_dt, deleted_flg,
root_service_product_cd, subr_latest_connection_dt, partitionkey, segmentkey, randomkey, full_name, email_address,


4194
consr_indirect_comns_partner_id, consr_indirect_comns_partner, consr_indirect_comns_base_id, last_seen_imei,
last_seen_tac_code, last_seen_imsi, subs_addr_id, billing_media_format, acquisition_dept, retention_dept, payment_method_cd)
VALUES('RGSMSBATCH', '447389769999', 'Postpaid', 'Active', 'mobile', '920999', '920999', '920999', 'C', '4', 'SBP0280752', NULL,
'SBP0280752', NULL, '2018-01-02 00:00:00.000', '2021-09-14 00:00:00.000', '2022-07-11 00:00:00.000', 'Y', 'Y', 'Y', 'N', 'Y', 'Y',
'41014752', '2019-02-10 10:34:45.000', NULL, 99999999.9900000, 'N', 'Y', 0.00, 'Y', 'Y',
'2cc642d6e1ad154d163a1c5e5b7a75d6196217279a57e8112429618d755990a6', '7.3', '100059', NULL, NULL, NULL, NULL, NULL,
'High Value Customer', 'MPR_Test', NULL, '2019-03-13 16:14:23.855', 'N', '100090', '2019-01-02 00:00:00.000', 19, 19, 19, NULL,


'birjesh.sharma@adqura.com', 10, 'PartnerName1', 99, NULL, '86134503', NULL, '', 'Online,Paper', NULL, NULL, NULL);

INSERT INTO alphadata.subs_flex_attribute_v
(subscription_id, record_dt, deleted_flg, custom_char_001, custom_char_002, custom_char_003, custom_char_004,
custom_char_005, custom_char_006, custom_char_007, custom_char_008, custom_char_009, custom_char_010,
custom_char_011, custom_char_012, custom_char_013, custom_char_014, custom_char_015, custom_char_016,
custom_char_017, custom_char_018, custom_char_019, custom_char_020, custom_char_021, custom_char_022,
custom_char_023, custom_char_024, custom_char_025, custom_char_026, custom_char_027, custom_char_028,
custom_char_029, custom_char_030, custom_char_031, custom_char_032, custom_char_033, custom_char_034,
custom_char_035, custom_char_036, custom_char_037, custom_char_038, custom_char_039, custom_char_040,
custom_char_041, custom_char_042, custom_char_043, custom_char_044, custom_char_045, custom_char_046,
custom_char_047, custom_char_048, custom_char_049, custom_char_050, custom_char_051, custom_char_052,
custom_char_053, custom_char_054, custom_char_055, custom_char_056, custom_char_057, custom_char_058,


custom_char_059, custom_char_060, custom_char_061, custom_char_062, custom_char_063, custom_char_064,
custom_char_065, custom_char_066, custom_char_067, custom_char_068, custom_char_069, custom_char_070,
custom_char_071, custom_char_072, custom_char_073, custom_char_074, custom_char_075, custom_char_076,
custom_char_077, custom_char_078, custom_char_079, custom_char_080, custom_char_081, custom_char_082,
custom_char_083, custom_char_084, custom_char_085, custom_char_086, custom_char_087, custom_char_088,
custom_char_089, custom_char_090, custom_char_091, custom_char_092, custom_char_093, custom_char_094,
custom_char_095, custom_char_096, custom_char_097, custom_char_098, custom_char_099, custom_char_100,
custom_char_101, custom_char_102, custom_char_103, custom_char_104, custom_char_105, custom_char_106,
custom_char_107, custom_char_108, custom_char_109, custom_char_110, custom_char_111, custom_char_112,
custom_char_113, custom_char_114, custom_char_115, custom_char_116, custom_char_117, custom_char_118,
custom_char_119, custom_char_120, custom_char_121, custom_char_122, custom_char_123, custom_char_124,
custom_char_125, custom_char_126, custom_char_127, custom_char_128, custom_char_129, custom_char_130,


custom_char_131, custom_char_132, custom_char_133, custom_char_134, custom_char_135, custom_char_136,
custom_char_137, custom_char_138, custom_char_139, custom_char_140, custom_char_141, custom_char_142,
custom_char_143, custom_char_144, custom_char_145, custom_char_146, custom_char_147, custom_char_148,
custom_char_149, custom_char_150, custom_char_151, custom_char_152, custom_char_153, custom_char_154,
custom_char_155, custom_char_156, custom_char_157, custom_char_158, custom_char_159, custom_char_160,
custom_char_161, custom_char_162, custom_char_163, custom_char_164, custom_char_165, custom_char_166,
custom_char_167, custom_char_168, custom_char_169, custom_char_170, custom_char_171, custom_char_172,


custom_char_167, custom_char_168, custom_char_169, custom_char_170, custom_char_171, custom_char_172,
custom_char_173, custom_char_174, custom_char_175, custom_char_176, custom_char_177, custom_char_178,
custom_char_179, custom_char_180, custom_char_181, custom_char_182, custom_char_183, custom_char_184,
custom_char_185, custom_char_186, custom_char_187, custom_char_188, custom_char_189, custom_char_190,
custom_char_191, custom_char_192, custom_char_193, custom_char_194, custom_char_195, custom_char_196,
custom_char_197, custom_char_198, custom_char_199, custom_char_200, custom_char_201, custom_char_202,
custom_char_203, custom_char_204, custom_char_205, custom_char_206, custom_char_207, custom_char_208,
custom_char_209, custom_char_210, custom_char_211, custom_char_212, custom_char_213, custom_char_214,
custom_char_215, custom_char_216, custom_char_217, custom_char_218, custom_char_219, custom_char_220,
custom_char_221, custom_char_222, custom_char_223, custom_char_224, custom_char_225, custom_char_226,
custom_char_227, custom_char_228, custom_char_229, custom_char_230, custom_char_231, custom_char_232,


4195
custom_char_233, custom_char_234, custom_char_235, custom_char_236, custom_char_237, custom_char_238,
custom_char_239, custom_char_240, custom_char_241, custom_char_242, custom_char_243, custom_char_244,
custom_char_245, custom_char_246, custom_char_247, custom_char_248, custom_char_249, custom_char_250,
custom_char_251, custom_char_252, custom_char_253, custom_char_254, custom_char_255, custom_char_256,
custom_char_257, custom_char_258, custom_char_259, custom_char_260, custom_char_261, custom_char_262,
custom_char_263, custom_char_264, custom_char_265, custom_char_266, custom_char_267, custom_char_268,
custom_char_269, custom_char_270, custom_char_271, custom_char_272, custom_char_273, custom_char_274,
custom_char_275, custom_char_276, custom_char_277, custom_char_278, custom_char_279, custom_char_280,
custom_char_281, custom_char_282, custom_char_283, custom_char_284, custom_char_285, custom_char_286,
custom_char_287, custom_char_288, custom_char_289, custom_char_290, custom_char_291, custom_char_292,
custom_char_293, custom_char_294, custom_char_295, custom_char_296, custom_char_297, custom_char_298,
custom_char_299, custom_char_300, custom_num_001, custom_num_002, custom_num_003, custom_num_004,


custom_num_005, custom_num_006, custom_num_007, custom_num_008, custom_num_009, custom_num_010,
custom_num_011, custom_num_012, custom_num_013, custom_num_014, custom_num_015, custom_num_016,
custom_num_017, custom_num_018, custom_num_019, custom_num_020, custom_num_021, custom_num_022,
custom_num_023, custom_num_024, custom_num_025, custom_num_026, custom_num_027, custom_num_028,
custom_num_029, custom_num_030, custom_num_031, custom_num_032, custom_num_033, custom_num_034,
custom_num_035, custom_num_036, custom_num_037, custom_num_038, custom_num_039, custom_num_040,
custom_num_041, custom_num_042, custom_num_043, custom_num_044, custom_num_045, custom_num_046,
custom_num_047, custom_num_048, custom_num_049, custom_num_050, custom_num_051, custom_num_052,
custom_num_053, custom_num_054, custom_num_055, custom_num_056, custom_num_057, custom_num_058,
custom_num_059, custom_num_060, custom_num_061, custom_num_062, custom_num_063, custom_num_064,
custom_num_065, custom_num_066, custom_num_067, custom_num_068, custom_num_069, custom_num_070,
custom_num_071, custom_num_072, custom_num_073, custom_num_074, custom_num_075, custom_num_076,


custom_num_077, custom_num_078, custom_num_079, custom_num_080, custom_num_081, custom_num_082,
custom_num_083, custom_num_084, custom_num_085, custom_num_086, custom_num_087, custom_num_088,
custom_num_089, custom_num_090, custom_num_091, custom_num_092, custom_num_093, custom_num_094,
custom_num_095, custom_num_096, custom_num_097, custom_num_098, custom_num_099, custom_num_100,
custom_num_101, custom_num_102, custom_num_103, custom_num_104, custom_num_105, custom_num_106,
custom_num_107, custom_num_108, custom_num_109, custom_num_110, custom_num_111, custom_num_112,
custom_num_113, custom_num_114, custom_num_115, custom_num_116, custom_num_117, custom_num_118,
custom_num_119, custom_num_120, custom_num_121, custom_num_122, custom_num_123, custom_num_124,
custom_num_125, custom_num_126, custom_num_127, custom_num_128, custom_num_129, custom_num_130,
custom_num_131, custom_num_132, custom_num_133, custom_num_134, custom_num_135, custom_num_136,
custom_num_137, custom_num_138, custom_num_139, custom_num_140, custom_num_141, custom_num_142,
custom_num_143, custom_num_144, custom_num_145, custom_num_146, custom_num_147, custom_num_148,


custom_num_149, custom_num_150, custom_num_151, custom_num_152, custom_num_153, custom_num_154,
custom_num_155, custom_num_156, custom_num_157, custom_num_158, custom_num_159, custom_num_160,
custom_num_161, custom_num_162, custom_num_163, custom_num_164, custom_num_165, custom_num_166,
custom_num_167, custom_num_168, custom_num_169, custom_num_170, custom_num_171, custom_num_172,


custom_num_161, custom_num_162, custom_num_163, custom_num_164, custom_num_165, custom_num_166,
custom_num_167, custom_num_168, custom_num_169, custom_num_170, custom_num_171, custom_num_172,
custom_num_173, custom_num_174, custom_num_175, custom_num_176, custom_num_177, custom_num_178,
custom_num_179, custom_num_180, custom_num_181, custom_num_182, custom_num_183, custom_num_184,
custom_num_185, custom_num_186, custom_num_187, custom_num_188, custom_num_189, custom_num_190,
custom_num_191, custom_num_192, custom_num_193, custom_num_194, custom_num_195, custom_num_196,
custom_num_197, custom_num_198, custom_num_199, custom_num_200, custom_num_201, custom_num_202,
custom_num_203, custom_num_204, custom_num_205, custom_num_206, custom_num_207, custom_num_208,
custom_num_209, custom_num_210, custom_num_211, custom_num_212, custom_num_213, custom_num_214,
custom_num_215, custom_num_216, custom_num_217, custom_num_218, custom_num_219, custom_num_220,
custom_num_221, custom_num_222, custom_num_223, custom_num_224, custom_num_225, custom_num_226,
custom_num_227, custom_num_228, custom_num_229, custom_num_230, custom_num_231, custom_num_232,


custom_num_233, custom_num_234, custom_num_235, custom_num_236, custom_num_237, custom_num_238,


4196
custom_num_239, custom_num_240, custom_num_241, custom_num_242, custom_num_243, custom_num_244,
custom_num_245, custom_num_246, custom_num_247, custom_num_248, custom_num_249, custom_num_250,
custom_num_251, custom_num_252, custom_num_253, custom_num_254, custom_num_255, custom_num_256,
custom_num_257, custom_num_258, custom_num_259, custom_num_260, custom_num_261, custom_num_262,
custom_num_263, custom_num_264, custom_num_265, custom_num_266, custom_num_267, custom_num_268,
custom_num_269, custom_num_270, custom_num_271, custom_num_272, custom_num_273, custom_num_274,
custom_num_275, custom_num_276, custom_num_277, custom_num_278, custom_num_279, custom_num_280,
custom_num_281, custom_num_282, custom_num_283, custom_num_284, custom_num_285, custom_num_286,
custom_num_287, custom_num_288, custom_num_289, custom_num_290, custom_num_291, custom_num_292,
custom_num_293, custom_num_294, custom_num_295, custom_num_296, custom_num_297, custom_num_298,
custom_num_299, custom_num_300)
VALUES('RGSMSBATCH', '2019-05-03 00:00:00.000', 'N', '', 'N', '447389769999', 'Y', NULL, 'N', 'SKY', NULL, NULL, 'Y', NULL, NULL,


NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Y', NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, '', '', 'ios', 'N', 'Y', 'Y', NULL, NULL, NULL, 'Low', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,


NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Dear 1-E1ZKCZOZ', NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, 'Mass Market - Family Individual', -1.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,


NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 997985.000000, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,


NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-322694375.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, 54644216.000000);

INSERT INTO alphadata.model_score_v
(model_id, model_name, validity_ts, model_run_ts, service_no, propensity, top_percentile, model_attributes, record_dt,
deleted_flg)


4197
VALUES(967, 'Convergence Model', '2022-12-30 17:37:00.000', '2020-09-24 17:37:00.000', '447389769999', NULL, NULL,
'{"hbb_propensity":0.200898,"simo_propensity":0.5803815,"handset_propensity":0.2002227,"mbb_propensity":0.3101121}', '2020-
05-06 00:00:00.000', 'N');

INSERT INTO alphadata.ontact_v
(contact_id, contact_birth_dt, deceased_flg, email_mktg_consent_flg, whitemail_mktg_consent_flg, survey_mktg_consent_flg,
staff_flg, title, first_name, middle_name, surname, gender, preferred_phone_no, alternate_phone_no, email_address,
valid_email_address_flg, hbounc_exclusion_flg, underage_flg, digital_flg, username, pin_set, voice_biometric_flg, full_name,
record_dt, deleted_flg, contact_prim_addr_id, social_media_consent_flg)
VALUES('1-920999', '1990-04-10 00:00:00.000', 'N', 'Y', 'Y', 'Y', NULL, 'Mr', 'Rajani', NULL, 'Rajani', 'M', NULL, NULL,
'rajani.gullapalli@adqura.com', 'Y', 'N', NULL, NULL, NULL, NULL, NULL, 'Elaine Chadney', '2019-03-13 16:14:23.855', 'N',
'RGSMSBATCH', 'Y');

INSERT INTO alphadata.account_v


'RGSMSBATCH', 'Y');

INSERT INTO alphadata.account_v
(account_no, contact_id, parent_acct_no, acct_start_dt, acct_end_dt, acct_status, acct_type, acct_category, acct_subcategory,
paym_subs_cnt, payg_subs_cnt, mbb_subs_cnt, voxi_subs_cnt, flbb_subs_cnt, other_subs_cnt, paym_subs_hier_cnt,
payg_subs_hier_cnt, mbb_subs_hier_cnt, voxi_subs_hier_cnt, flbb_subs_hier_cnt, other_subs_hier_cnt, service_acct_flg,
billing_acct_flg, owner_acct_flg, record_dt, deleted_flg, billing_day_of_month, billing_acct_status,
billing_acct_collections_status, acct_oldest_subs_id, acct_addr_id)
VALUES('920999', '1-920999', '516896064', '2019-01-02 00:00:00.000', '3500-12-31 00:00:00.000', 'Active', 'Consumer', 'Individual',
'Consumer', 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 'Y', 'Y', 'Y', '2019-03-13 16:14:23.855', 'N', 5, 'Active', '', 'RGSMSBATCH', '1-RG45H378');
INSERT INTO alphadata.address_v
(address_id, premise_flg, address_status, flat_no, house_name, premise_house_no, house_no, street_addr_1, street_addr_2,
city, county, bt_district_id, country, postcode, addr_reference, premise_addr_key_type, landline_takeover_no,


premise_cust_type, credit_check_addr_flg, address_category, last_updated_dt, created_dt, complete_address, record_dt,
deleted_flg)
VALUES('1-RG45H378', 'N', 'Validated', '204', 'Manasa Residency', '113', '114', 'ESCLEY DRIVE', 'Gmart', 'HEREFORD', 'UK', 'None',
'UNITED KINGDOM', 'HR2 7LU', 'Ok', 'Yes', 'ok', 'ok', 'N', '123', '2015-04-14 14:04:30.000', '2015-04-14 14:04:30.000', 'ESCLEY DRIVE,
HEREFORD, -, 22, HR2 7LU', '2020-09-15 00:00:00.000', 'N');

INSERT INTO alphadata.product_reference
(product_cd, business_unit, product_typ, billing_des, surepay_product, product_des, product_des_2, product_des_3, des,
product_class, prepay_contract_cd, rate, rate_inc_vat, billing_frequency_des, contract_typ, contract_typ_2, minutes_standard,
minutes_landline, minutes_onnet, minutes_on_vpn, minutes_international, minutes_roaming, minutes_non_geo, minutes_wknd,
minutes_unitisation_des, mobile_data_kb, mobile_data_des, mobile_data_roaming_kb, mobile_data_roaming_des, mms, sms,
sms_international, sms_roaming, sms_wknd, wifi_data_kb, wifi_data_des, investment_band_des, pp_promo_des, content_des,
content_des_2, data_speed_des, multisim_ind, service_product_typ_nm, service_product_group_nm, service_product_set_nm,


service_product_typ, service_product_pp_minutes, service_product_pp_sms, service_product_pp_data_bytes,
service_product_pp_mms, default_contract_months, record_dt, deleted_flg)
VALUES('100059', 'Consumer Prepay', 'Price Plan', 'Unknown', 'N', 'Other', 'CTR14', 'Unlimited', 'All Calls Outgoing Only Bar-
Barring Set', 'Barring Set', 'P', 0.00, 0.00, 'N/A', 'N/A', 'N/A', 0, 0, 0, 0, 0, 0, 0, 0, 'N/A', 0, 'Zero', 0, 'Zero', 0, 0, 0, 0, 0, 0, 'Zero', 'N/A',
'N/A', 'N/A', 'N/A', 'N/A', 'N', 'Service Level Suffix', 'Service Level Suffix', 'SIMO', 'Additional Service', 0, 0, 0, 0, 2, '2021-01-13
00:00:00.000', 'N');


4198

INSERT INTO alphadata.product_reference
(product_cd, business_unit, product_typ, billing_des, surepay_product, product_des, product_des_2, product_des_3, des,
product_class, prepay_contract_cd, rate, rate_inc_vat, billing_frequency_des, contract_typ, contract_typ_2, minutes_standard,
minutes_landline, minutes_onnet, minutes_on_vpn, minutes_international, minutes_roaming, minutes_non_geo, minutes_wknd,
minutes_unitisation_des, mobile_data_kb, mobile_data_des, mobile_data_roaming_kb, mobile_data_roaming_des, mms, sms,
sms_international, sms_roaming, sms_wknd, wifi_data_kb, wifi_data_des, investment_band_des, pp_promo_des, content_des,
content_des_2, data_speed_des, multisim_ind, service_product_typ_nm, service_product_group_nm, service_product_set_nm,
service_product_typ, service_product_pp_minutes, service_product_pp_sms, service_product_pp_data_bytes,
service_product_pp_mms, default_contract_months, record_dt, deleted_flg)
VALUES('100059', 'Consumer Prepay', 'Price Plan', 'Unknown', 'N', 'Other', 'CTR14', 'Unlimited', 'All Calls Outgoing Only Bar-
Barring Set', 'Barring Set', 'P', 0.00, 0.00, 'N/A', 'N/A', 'N/A', 0, 0, 0, 0, 0, 0, 0, 0, 'N/A', 0, 'Zero', 0, 'Zero', 0, 0, 0, 0, 0, 0, 'Zero', 'N/A',


'N/A', 'N/A', 'N/A', 'N/A', 'N', 'Service Level Suffix', 'Service Level Suffix', 'SIMO', 'Additional Service', 0, 0, 0, 0, 2, '2021-01-13
00:00:00.000', 'N');
INSERT INTO alphadata.product_holding
(subscription_id, asset_integ_id, acct_subs_flg, root_service_no, previous_service_no, billing_acct_no, owner_acct_no,
service_acct_no, billing_profile_id, fulfilment_item_cd, shippable_flg, product_cd, quantity, serial_no, install_dt, start_dt,
effective_end_dt, status_cd, adjusted_price, prom_integ_id, record_dt, deleted_flg)
VALUES('RGSMSBATCH', '-0RTE1BXJ-', 'S', '447389769999', NULL, '782404111', '782404111', '782404111', '1-8OHH-94', 'Barring
Set', 'N', '100059', 1.0000000, NULL, '2017-12-07 00:00:00.000', '2017-12-07 00:00:00.000', '2023-05-30 00:00:00.000', 'Active',
0.0000000, '-0RE514YJ-', '2020-02-12 00:00:00.000', 'N');

INSERT INTO alphadata.device_v
(tac_code, manufacturer, vf_smartphone, mobile_broadband, tac_last_update, wds_frequency_types, wds_lte_frequency_types,


wds_umts_frequency_types, vo_lte, vo_wifi, wds_gsm_frequency_types, marketing_name, wds_device_category, umts,
wds_supported_wireless_technologies, supported_radio_bearers, os_group, hsdpa, wds_mobile_teleco_system, umts900,
gsma_manufacturer, gsma_name, os_name, device_launch_dt, large_image, thumbnail_image, supported_services,
wds_category, camera_integrated, ref_marketing_name, removable_memory, camera_front, video_media_content_supported,
wds_browser, wds_mobile_device_form_factor, connectivity_bluetooth, wds_height, wds_width, wds_gps, supports_email,
wds_sim_count, wds_weight, connectivity_wifi, camera_attached, wds_primary_screen_type,
wds_primary_screen_diagonal_size, screen_size, battery_capacity, wds_fm_radio, sound_output_capable, os_version,
internal_memory, voip_skype, camera_rear_megapixels, cpu, battery_talk_time, camera_rear_autofocus, voip,
battery_standby_time, internal_ram, voip_sip, camera_max_resolution, camera_rear_digital_zoom_factor,
camera_front_megapixels, wds_wifi_bands, camera_rear_video_max_resolution, input_charset, wds_fingerprint_scanner,
push_msg_size, push_accept, push_accept_encoding, push_accept_charset, push_accept_appid, battery_3g_talk_time,
available_memory, push_max_push_req, battery_2g_talk_time, push_accept_language, battery_2g_standby_time,
battery_3g_standby_time, wds_sms_charset, camera_rear_optical_zoom_factor, push_supported_bearers, push_version,


battery_4g_standby_time, battery_4g_talk_time, record_dt, deleted_flg)
VALUES('99000865', '+ 360', 'Yes', 'No', '2019-01-23', '1800,1900,1900,2000,2100,2100,2300,2500,2600,850,850,900,900',
'1800,1900,2000,2100,2300,2500,2600,850,900', '2100,1900,900,850', NULL, NULL, '1800,1900,850,900', '1801-A01', 'Mobile Handset',


'1800,1900,2000,2100,2300,2500,2600,850,900', '2100,1900,900,850', NULL, NULL, '1800,1900,850,900', '1801-A01', 'Mobile Handset',
'Yes', '2G,3G,4G', 'GSM,GPRS,EDGE,UMTS,HSDPA,LTE', 'Android', 'Yes', 'GSM,LTE,UMTS', 'Yes', 'Qiku Internet Network Scientific
(Shenzhen) Co Ltd', '1801-A01', 'Android', NULL, 'N/A', 'N/A', NULL, NULL, NULL, '1801-A01', NULL, NULL, NULL, NULL, NULL,
'Yes', NULL, NULL, NULL, NULL, 2.00, NULL, 'Yes', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2020-12-22 11:09:29.000', 'N');


4199
Below tables should have this conditions satisfied
Subscription_v table
latest_contract_end_dt='2022-07-11 00:00:00.000'
subs_type=mobile (So that Email offer is not picked up)
future_disconnect_dt= NULL( BLANK)
Subs_Flex_attribute_v table
subs_flex_attribute Custom_char_001 should be null
2.STF Graph
NBA_EXLP_TestOffer
3.Check the Microsite URL is configured in AOM Config

4.DD’s for TestOffer_SMS
CrossSell Offers
CrossSell Microsite
CrossSell OfferVariations
CrossSell OffertoOfferVariations
CrossSell T2TV attributes
CrossSell T2TV actions
CrossSell SMS
CrossSell TreatmentToTreatmentVariations
Volume Constraints
ParentChildTreatments

For ExtrasLandingPages customer should be eligible for the below T2TV
TestOffer_SMS-TreatmentVariantDefault-OfferVariantDefault

T2TV TestOffer_SMS-TreatmentVariantDefault-OfferVariantDefault
Configure TreatmentDynamicVariable1 with the Token: [LandingPageCTA]

TestOffer OfferVariantDefault TestOffer_SMS TreatmentVariantDefault Treat yourself or a loved
one to the new Apple
Watch Series 7, the most
durable Apple Watch ever
built. It � s bigger and
better, now with 3 free
months Fitness+
included. Choose your
smartwatch contract
length (between 12 - 36
months) and your upfront
cost, and you can get our OfferName OfferVariant TreatmentName TreatmentVariant TreatmentDynamicVariabl
e1