199
Approve config flow work item
When work item changes are complete, they are assigned to Manager. The status of the work item will be set as “Ready for Release”.
These items are available for Manager to review and approve changes.
Below screen appears when a ‘Ready for Release’ work item is opened from work items list.
Click on Show Merge View button to view the changes made in the work item.
Click on Review button which navigates to the below screen.


200
Changes can be approved by selecting ‘Give Release Version’ and by providing a Release Version. Optionally Review Comments can be
provided as notes for self. Clicking on Submit button at the bottom of the screen changes the status of the work item to ‘Assigned to
Release’.

If any further changes are needed to be complete before approval, work item can be returned back to developer by selecting ‘Return to
Developer’ and providing Review Comments. In this case, Review Comments are mandatory.


201
Once submitted by clicking the Submit button at the bottom of the screen, work item is returned to the developer with ‘In Progress’ status.
Review Comments provided by the Manager will be visible in the Landing Page as shown above


202
Change 'Assigned to Release' config flow work item
Work items in ‘Assigned to Release’ cannot be edited by users. Work item should be returned to user by Manager. This changes the status
to ‘In Progress’ and now user can edit the work item like any other in progress work item.


203
Pull in Config Flow
Pull Baseline changes is available in the landing page.
Click on the button which basically pulls all the changes from the latest baseline version to the work item except the changes related to in
edit list items. Pull completed message will be displayed below the button once the pull is successful.
Pull icon will be displayed as below only after pull baseline changes was done. Icon will be visible if there are any changes to in edit list
entities when compared to pull baseline changes action.
Click on pull icon to view the changes from the latest baseline version.


204
Discard and Prefer Branch option will be available in order to keep the work item changes as is without pulling from the baseline version.
Pull icon will be available until all the changes related to that entity are propagated to the work item.


205
PMT - Test Cell Management
Navigate to Artifacts menu and select Test Cell Management which displays below screen.
Once Test Group value is entered, two default test cells are populated as below and test cells range should be from 1-100.
Cell Code is generated in sequential order with test group name.  Initial value of a test cell should be equal to Final value of previous test
cell plus(+) one.
Initial value for the first test cell and Final value for the last test cell are disabled.
Delete option is not available for first test cell and Add/Delete options are not available for last test cell as above.
Add and Delete options are available for the other test cells as below.
In download, each test cell for a test group will be shown as individual row as below.


206
In upload, user can create/update/delete a test cell for a test group.
To add a test cell for a test group, ID should be empty and have to provide test group to which test cell have to be mapped.
To delete a test cell for a test group, have to remove the row from the file.


207
PMT - Channel Management
Channel management changes are made in Channel and Treatment To Variation screens.


208
Channel Screen
Select the branch from “Manage Version” screen and then select “Artifacts” from Home dropdown to navigate to Channel screen.
Select Channel from Artifacts menu which opens channel screen as shown below.
Select an existing channel from grid or create a new one and update Social Hour Start and Social Hour End fields.


209
The format for Social Hour Start and Social Hour End should be HH:MM.


210
Treatment To Treatment Variations Screen
Select Treatment To Treatment Variations from Artifacts menu which opens Treatment To Treatment Variations screen as shown below.
When Social Hour Start and Social Hour End fields are configured in Channel screen, Channel Management section will be available as
below.
Social Hour Start and Social Hour End values from Channel screen will be displayed and can be overridden at treatment to treatment
variations level.
‘Vodafone’ is default value for Sender Alias.
'Medium - 5' is default value for Priority.
Throttle Limit will be set to -1 when Unlimited Throttle is set to true.


211
PMT - TradeIn
TradeIn menu will be accessible only to the users who has VFUKCatalogue:TradeInUser or VFUKCata:TradeInUser access group.
For creation of TradeIn version, please refer Manage Versions - Vodafone - Confluence (atlassian.net)
When a version created with TradeIn release is pushed, only WBWDeviceMultiplierMatrix datatype will be updated.
When a full catalogue version is pushed, WBWDeviceMultiplierMatrix will be pushed along with other decision datas and datatypes.


212
WBW Device Multiplier Matrix
Select TradeIn menu and WBW Device Multiplier Matrix artifact which displays below.
Unique Validation : FromDevice, ToDevice, MultiplierType, TransactionType, TypeOfCustomerDoingTradeIn, StartDate and EndDate.
Below are the list of fields available :
ID : will be empty if new or will have a BNA id for each record.
FromDevice : text property and mandatory and accepts comma separated values.
ToDevice : text property and mandatory and accepts comma separated values.
MultiplierType : text property and mandatory. Below are the LOV :
Static/Bonus : Grade A-Z properties will accept values upto two decimal places.
Multiplier : Grade A-Z properties will accept integer values from zero to positive.
Any one of the Grade value should be populated.
TransactionType : text property and mandatory. Below are the LOV :
Small-Business, Consumer, Sole-Trader, Small-SME, Regional , Major
TypeOfCustomerDoingTradeIn : text property and mandatory and it accepts Comma separated values. Below are the LOV :
New, Upgrade, FlexiUpgrade, Adhoc, ADDITIONALLINE
Enabled : boolean property which accepts true/false.
Override : boolean property which accepts true/false.
StartDate : date time property and mandatory.
EndDate : date time property and mandatory. End date should be greater than start date.
Download : It downloads all the data available in selected catalogue version.
Upload : It allows to upload the data in bulk.
Clicking on upload button navigates to the below screen.


213
Upload Type has two options:
Incremental : Allows to create and update the entities.
Choose the downloaded file and click on upload which displays success message in case of no validation errors.
On submitting the page will navigates to the below screen which displays upload successful message.


214
Click on Finish button.
Full : Allows to create, update and delete the entities.
Choose the downloaded file and click on upload which displays success message in case of no validation errors.
Click on submit to view the modified records as below.


215
On submitting the page navigates to the confirmation page which enters the path to delete the unlocked offers which are not available in the
uploaded file.
Click on Next which displays the entities that are deleting.


216

Next button navigates to the below delete confirmation page.
On submitting the page updates and deletes will be committed and displays the uploaded and deleted summary as below.


217
Click on Finish.
Push : The Unique Combinations of FromDevice, ToDevice, MultiplierType, TransactionType, TypeOfCustomerDoingTradeIn, StartDate
and EndDate will be pushed as different rows.


218
Home
Home screen will be displayed as soon as user login. All draft and approved catalogue versions will be available as shown below.


219
Manage Versions
User can create a catalogue version by navigating to Manage versions where all draft versions will be available. 'Open' link will be enabled
if the version is assigned to the logged-in user otherwise disabled.
Click on 'Create Branch' to create a new catalogue version which navigates to below screen.
Provide Catalogue Version and Comments then click on Submit to create new catalogue version.
Patch Release : A patch version will be created on selection of patch release which allows user to only update offer related artifacts.
TradeIn Release : A patch version will be created on selection of trade in release which allows admin user to modify
WBWDeviceMultiplierMatrix along with all artifacts.
For TradeIn user, TradeIn Release will be default selected and disabled as below. Only TradeIn menu is available for TradeIn user.


221
Compare Versions
Navigate to Compare Versions menu to compare two catalogue versions. Select Compare Version ID and Compare To Version ID which
displays the screen as below.


222
Push
Navigate to Push menu to push a catalogue version to target environment. Select App Name, Environment, Version ID and click on Deploy
Version button.
Click on Refresh button to get the latest status of push.
Push Audit Details displays all the push history. Pushed Artifacts will show successfully updated targets and Failed Artifacts will show the
failed targets.
Push will update all the respective decision data's and datatypes with the catalogue version data.


223
Assign
Assign menu will be available when draft catalogue version is selected. Click on Assign menu to assign a catalogue version to a particular
user.
Select Assign to option and Operator then click on Assign button which assigns catalogue to selected operator.
All the users who have access to application are available in operator selection.


224
Merge
Select the version which has to be merged to baseline version and click on Merge menu.
Branch version data will be compared with the latest approved baseline version and displays the changes as below.
Prefer Trunk checkbox will be available only when the record is updated in approved baseline version. Selecting prefer trunk will not merge
the changes that are made in branch version.
Selecting discard checkbox will not merge the changes that are made in branch version.


225
If a record is deleted from branch, it will be highlighted with cross mark in red that deletes the record from new baseline version as well after
merge.
If discard checkbox is selected, the record will be restored from approved baseline to new baseline after merge.
Click on Merge button to merge the changes.
A new temporary version will be created to validate, validation errors will be displayed if there are any errors otherwise displays below
screen.


226
Provide the baseline version to create and click on submit button which merges all the changes from branch to given baseline version and
displays below confirmation page.
Click on Close button which navigates to assign page where baseline version can be assigned to any other user or submit to manager for
approval as below.
Once it is submitted to approval, baseline version is updated with Review (R) status and screen will be navigated to review page as shown
below.


227
Manager has an option to compare the changes with any other versions before approving.
If the manager selects Approve option and do submit, version will be approved and will not be available for further changes.
If the manager selects Reject then version will be updated to Draft ( D) status and will be available to continue with the further changes.
Manager can assign the trunk to any user when it is rejected.


228
Pull
Select the version into which the selected version data to be pulled and click on Pull menu.
User can pull the changes from any draft branch version and approved baseline version.
Click on Show Changes button of any version from which the data to be pulled.
Selecting discard checkbox will not pull the changes that are made in selected version.
If a record is deleted from selected version, it will be highlighted with cross mark in red that deletes the record from current version as well
after pull.
If discard checkbox is selected, the record will not be deleted from current version after pull.
Click on Pull button to pull the changes.
A new temporary version will be created to validate, validation errors will be displayed if there are any errors otherwise displays below
confirmation page.


229
Click on Close button which navigates to home page


230
ChangeHistory
Navigate to Change History menu where the history of all catalogue versions will be displayed as shown below.


231
Handover Actions
Select Template menu and Handover Actions artifact which displays below.
Unique Validation  : Action ID
Action ID : Text input and mandatory.
Action Type : Text input and mandatory. Saved action types will be available as possible values for next record.
Action Attributes : Mandatory. Attributes are sourced from action attributes screen.
Template Attributes : Optional. Attributes are sourced from template attributes screen.
Click on 'Add Attribute' in respective action/template attributes section to add action/template attribute to a handover action.
Action type 'Video' has static action attributes which cannot deleted as shown below. We can add more action attributes to the same
handover action.
Below section displays when we click on attribute. Section will be same for action attributes and template attributes.


232
Name : mandatory and will be disabled once it is saved for a handover action.
Default Value : displays default value provided at attribute level in read only.
Override : enable override flag to override the default value at handover action level.
Value : visible only when override is true to enter the overridden value.
Editable : enable editable flag to update the value at T2TV.
Click on delete icon to delete attribute.
Click on 'Update and Close' button to update the data.


233
Opti and Landing process
Opti during Landing :
User should work on branch and shouldn't merge to a baseline
Cannot use work items
Can push branch to respective release environments
Any new branch creation will be created on top of latest landing baseline, not on top of previous Opti baseline
Landing :
User should have access to VFUKLanding access group for purple view
User has to pull the latest Opti changes into Landing branch and merge to a baseline
Can use work items and package them to a baseline
Can push only to environments which has PM Push landing access
Opti has to continue to work on 3.7.x branch version until production is uplifted to landing release
Landing can do it's own changes and have to pull the Opti changes to a branch then merge to baseline where all Landing and Opti
changes will be available in new baseline
Once Opti is uplifted then changes can be done in Opti application and can perform merge/pull to create baseline in Opti


234
PM Tool Access Groups
Below are the list of access groups available in PM Tool.
Administrators - user will have access to all functionalities
Managers - user will have access to all functionalities
CommercialManager - user will have access to only few Upgrades screens in Artifacts menu and other functionalities
ReleaseManager - user will have access to approve baseline version push(Immediate/Scheduled) from flows along with all other
functionalities
PrivilegedUser - user will have access to delete records in screens( Offers/Treatments…) along with all other functionalities
User - user will not have access to create branch. A manager has to create and assign to user to work on the catalogue but user will
have all other functionalities
ReadOnlyUser - user can view the pm tool in read only mode, cannot work on catalogue
TradeInUser - user will have access only to Home and TradeIn menu
AOSUser - user will have access to AOS menu in Artifacts along with other artifacts and functionalities. User cannot edit Source in
SourceConfig artifact
AOSAdmin - user will have access to AOS menu in Artifacts along with other artifacts and functionalities. User can edit Source in
SourceConfig artifact
Note : all functionalities = version creation/catalogue updates/merge/pull/push/flows


235
MBB Configuration
Band Management :
Range Types MBBDeviceNetMafBanding and MBBSimNetMafBanding are added as part of 4.03 and 4.04

Handset :
DeviceType attribute should have Data Device value
New DeviceCategory (Short Text) attribute has to be created
When DeviceType is Data Device then DeviceCategory data will be downloded for VADR


237
PM Tool Screens


238
HBB MAF Band
HBB MAF Band will be available under Upgrades → Band Management
Process Type : Mandatory and unique with Tier/Threshold possible values in dropdown
Each process type can have multiple process type values
Plan Type : Mandatory and source from 'PlanType' product attribute
MAF Type : Mandatory and user input
Lower Boundary : Mandatory and accepts decimal
Upper Boundary : Mandatory and accepts decimal
Plan Type and MAF Type are combination unique for a Process Type
Data will be pushed to HBBMAFBands decision data


239
HBB Pre To Post MAF Threshold
HBB Pre To Post MAF Threshold will be available under Upgrades → HBB
Unique : HBBSubscriptionLifeCycleBand, ApplicableChannel, ThresholdName,
ChurnThresholdType/MAFThresholdType/PlanThresholdType and CampaignType
HBB Subscription Life Cycle Band : Mandatory and source from ‘HBBDiscountLifeCycleBand’ range type in BandManagement screen
Applicable Channel : Mandatory and source from Channel screen
Threshold Name : Mandatory and ChurnPropensityBand/PreUpgradeMAFBand/PreUpgradePlanType are possible values
Campaign Type : User can enter data and same will be available for selection
Threshold Value : Integer
Churn Threshold Type : Available and mandatory for ChurnPropernsityBand ThresholdName. Source from
ModelPropensityToRangeMapping screen which has Model Id '7'
MAF Threshold Type : Available and mandatory for PreUpgradeMAFBand ThresholdName. Source from
HBBMAFBand screen which has Process Type ‘Threshold’
Plan Threshold Type : Available and mandatory for PreUpgradePlanType ThresholdName. Source from
‘PlanType’ product attribute
Data will be pushed to PreToPostMAFThreshold decision data


240
HBB Tier Discount
HBB Tier Discount will be available under Upgrades → HBB
Unique : PlanType, MAFBand and ApplicableChannel
Plan Type : Mandatory and source from ‘PlanType’ product attribute
MAF Band : Mandatory and source from HBBMAFBand screen which has Process Type ‘Tier’ and based on PlanType value selected
Applicable Channel : Mandatory and source from Channel screen
Discount : Integer accepts zero and positive
Data will be pushed to DiscountByPlanType decision data


241
HBB Technology
HBB Technology will be available under Upgrades → HBB
Unique : Technology, PlanTechnology and Applicable Channel
Technology : Mandatory and source from ‘Technology’ product attribute
Plan Technology : Mandatory and user input
Applicable Channel : Mandatory and source from Channel screen
Description : User input
Enabled : Boolean
Data will be pushed to HBBTechnology decision data


242
HBB Retention Discount
HBB Retention Discount will be available under Upgrades → HBB
Unique : LifeCycleBand, ChurnPropensity/CampaignType and ApplicableChannel
Life Cycle Band : Mandatory and source from ‘HBBDiscountLifeCycleBand’ range type in BandManagement screen
Churn Propensity/Campaign Type : User can enter data and same will be available for selection. Model Id ‘7' data from
ModelPropensityToRangeMapping screen will be available along with 'All’ for selection
Applicable Channel : Mandatory and source from Channel screen
Retention Discount : Integer accepts zero and positive
Post Contract Length : Integer accepts zero and positive
Data will be pushed to RetentionDiscount decision data


243
HBB Plan Prioritisation
HBB Plan Prioritisation will be available under Upgrades → HBB
Unique :  LifeCycleBand, ChurnPropensity/CampaignType, ApplicableChannel and PlanTechnology
Life Cycle Band : Mandatory and source from ‘HBBPriorityLifeCycleBand’ range type in BandManagement screen
Churn Propensity/Campaign Type : User can enter data and same will be available for selection. Model Id ‘7' data from
ModelPropensityToRangeMapping screen will be available for selection
Applicable Channel : Mandatory and source from Channel screen along with ‘All’
Plan Technology : Mandatory and source from ‘Technology’ product attribute
Plan Price Order : Mandatory with Ascending/Descending possible values
Plan Type Order : Mandatory with Ascending/Descending possible values
Hero Plan ID1 : Mandatory and source from Tariff screen along with ‘CurrentPlan’ and ‘N/A’ values
Hero Plan ID2 : Mandatory and source from Tariff screen along with ‘CurrentPlan’ and ‘N/A’ values
Data will be pushed to HBBPlanPrioritisation decision data


244
HBB Plan Eligibility Management
HBB Plan Eligibility Management will be available under Upgrades → HBB
Unique : FromPlanBand, ToPlanBand, FromProductLevelBand, ToProductLevelBand, FromPlanType, ToPlanType, HBBLifeCycleBand and
ApplicableChannel
From Plan Band : Mandatory and source from ‘PlanBand’ product attribute
To Plan Band : Mandatory and source from ‘PlanBand’ product attribute
From Product Level Band : Mandatory and source from ‘ProductLevelBand’ product attribute
To Product Level Band : Mandatory and source from ‘ProductLevelBand’ product attribute
From Plan Type : Mandatory and source from ‘PlanType’ product attribute
To Plan Type : Mandatory and source from ‘PlanType’ product attribute
HBB Life Cycle Band : Mandatory and source from 'HBBEligibilityLifeCycleBand' range type in BandManagement screen
Applicable Channel : Mandatory and source from Channel screen
Is Exclude : Boolean
Data will be pushed to EligibleHBBPlans decision data


245
BandManagement
Band Management will be available under Upgrades → Band Management
Range Type : Mandatory and unique
Each range type can have multiple range type values
Range Name : Mandatory and user input
Band ID : Mandatory and integer
Description : Mandatory and editable only for HBB bands
BDCModelID : Mandatory and editable only for Churn band
Start Value : Mandatory and accepts positive integer
End Value : Mandatory and accepts positive integer
RangeName and BandID are individual unique for a Range Type
Data will be pushed to RangeMapping decision data


246
SegmentOf1 Discount
Segment Of 1 Discount will be available under Upgrades → Discount Management
Discount Strategy Name : Mandatory and unique
Cohort : Mandatory and source from Cohorts screen which has ‘Segmentof1’ cohort type
Valid From Date : Mandatory
Valid To Date : Mandatory
Discount : Mandatory and accepts zero and positive integer
Channel : Mandatory and source from Channel screen
Team : Mandatory multiselect and source from DivisionMapping screen
Tariff Codes : Mandatory multiselect and source from Tariff screen
Data will be pushed to SegmentOf1DiscountStrategy decision data


247
Cohorts
Cohorts will be available under Upgrades → Cohort Management
Cohort Name : Mandatory and unique
Cohort Start Date : Default to current date time
Cohort End Date : Non mandatory
Cohort Type : Mandatory with Commercial/Segmentof1/TradeIn possible values
Team : Multiselect with source from DivisionMapping screen
Is Cohort Active : Boolean with default to true
Add On Product Codes : Multiselect with source from AddOn screen
Tariff Product Codes : Multiselect with source from Tariff screen
Tariff Group : Source from TariffGroup screen
Star Rating : 1/2/3/4/5/6 are possible values
Tariff Discount Product Codes : Multiselect with source from Discount screen
Tariff Discount Flag : Boolean with default to true
Customer Type : Multiselect with PaymSIMO/PaymHandset/PaymLoan/MBBDevice/MBBSIMO possible values
Is Multi CTNs : True/False are possible values
From Contract Start Date : Date time
To Contract Start Date : Date time
From Contract End Date : Date time
To Contract End Date : Date time
Customer Intent : Source from Intents screen which has IsIntentCohort true


248
Customer Intent Confidence Score : Low/High are possible values
Acquisition Channel : Static data
Most Used ISP : Static data
Last Seen Handset Manufacturer : Static data
Last Seen Handset Model : Static data
Is First Upgrade : True/False are possible values
Customer Life Cycle ID : Multiselect with source from ‘Customer Lifecycle Band’ range type in BandManagement screen
Is 3G Customer : Boolean
Upgrade Journey : User can enter data and same will be available for selection along with MobileBroadBand and Mobile Service possible
values
Three Month Average : Source from ‘Average 3M Data in GB Banding’ range type in BandManagement screen
Total Data Band ID : Multiselect with source from ‘Total Data Band’ range type in BandManagement screen
Churn Band : Multiselect with source from ‘Churn band’ range type in BandManagement screen
SIMO S15 Net MAF : Available when CustomerType has ‘PaymSIMO’. Multiselect with source from ‘S15 Banding-SIM’ range type in
BandManagement screen
SIMO Net MAF : Available when CustomerType has ‘PaymSIMO’. Multiselect with source from ‘Sim Net MAF Banding’ range type in
BandManagement screen
Handset S15 Net MAF : Available when CustomerType has ‘PaymHandset’. Multiselect with source from ‘S15 Banding - Handset’ range
type in BandManagement screen
Handset Net MAF : Available when CustomerType has ‘PaymHandset’. Multiselect with source from ‘Handset Net MAF Banding’ range
type in BandManagement screen
Data will be pushed to CustomerCohorts decision data


249
Source Config
Source Config will be available under AOS. User should have AOSAdmin or AOSUser access to view the screen
Source : Mandatory and unique. User should have AOSAdmin access to modify Source field. 'Default' source will not be modified
Rank : Integer accepts positive


250
Product Config
Product Config will be available under AOS. User should have AOSAdmin or AOSUser access to view the screen
Product Id : Mandatory and unique. Source from AddOn and Discount screen.
Priority : Mandatory with High - 1/Medium - 5/Low - 10 possible values. Medium - 5 is default value
Enabled : Boolean
Each Product Id can have multiple sources
‘Default’ source and other source are mandatory for a Product Id
'Default' source cannot be deleted
Source : Mandatory multiselect
Each source will have below fields :
Start Date : Date time
End Date : Date time
Hour Window Start : Time in HH:MM format
Hour Window End : Time in HH:MM format


251
S15 Same Or Higher
S15 Same Or Higher will be available under Upgrades → Recommendation Management
Unique : FromCustomerType, ToCustomerType, RecommendedDeviceStatus, ContractEndDateFrom, ContractEndDateTo and
CurrentDeviceStatus
From Customer Type : Mandatory with PaymSIMO/PaymHandset/PaymLoan/MBBDevice/MBBSIMO possible values
To Customer Type :  Mandatory with PaymSIMO/PaymHandset/PaymLoan/MBBDevice/MBBSIMO possible values
Recommended Device Status : Mandatory with WithDevice/WithOutDevice possible values
Current Device Status : Available and mandatory for FromCustomerType ‘PaymLoan’ with WithDevice/WithOutDevice possible values
Contract End Date From : Mandatory and Integer
Contract End Date To : Mandatory and Integer
Team : Mandatory multiselect and source from DivisionMapping screen
 Data will be pushed to UpgradeLifeCycleS15RuleConfig decision data


252
S15 Threshold
S15 Threshold will be available under Upgrades → Recommendation Management
Unique : SegmentStrategy, RecommendedPosition, FromProduct and ToProduct
Segment Strategy : Mandatory and source from SegmentStrategyMessageConfiguration screen
Recommended Position : Mandatory with 1/2/3 possible values
From Product : Mandatory with PaymSIMO/PaymHandset/PaymLoan/MBBDevice/MBBSIMO possible values
To Product : Mandatory with ToSIMO/ToHandset/ToSIMO30/ToMBBDevice/ToMBBSimo possible values
S15 Threshold Value : accepts double values
Applicable Channel : Mandatory and source from Channel screen
Data will be pushed to S15Threshold decision data
'Journey' button navigates to S15JourneyThreshold screen


253
S15 Journey Threshold
S15 Journey Threshold will be available through ‘Journey’ button in S15 Threshold screen
Unique : FromProduct and ToProduct
From Product : Mandatory with PaymSIMO/PaymHandset/PaymLoan/MBBDevice/MBBSIMO possible values
To Product : Mandatory with ToSIMO/ToHandset/ToSIMO30/ToMBBDevice/ToMBBSimo possible values
Apply S15 Threshold : Boolean
Data will be pushed to S15JourneyLevelThreshold decision data


254
Offer
Offer will be available under Artifacts menu
Unique : OfferName and OfferID are individual unique
Offer Name : Mandatory and unique
Offer ID : Mandatory and unique
Description : Mandatory
Start Date : Mandatory
End Date : Mandatory
Business Purpose : Mandatory and source from BusinessPurpose screen
Business Segment : Mandatory and Source from BusinessSegment screen
Enabled : Boolean
Starting Propensity : Accepts decimal values
Offer Weight : Accepts decimal values
Offer Value : Accepts decimal values
Control Group Percentage : Integer accepts zero and positive
Pick Best Treatments Method : Dropdown with TreatmentRank/ChannelHierarchy/BestChannelModel
possible values
Payment Method : Dropdown available for BusinessPurpose ‘TradeIn’ with MonthlyCredit/BillCredit/BACS/Upfront/FlexiBillCredit possible
values
Max Best Treatments : Mandatory for PickBestTreatmentsMethod ‘ChannelHierarchy’
Apply Global Contact Strategy : Dropdown with Yes/No possible values
Mandatory : Dropdown with Yes/No possible values
Apply Offer Self Contention Strategy : Dropdown with Yes/No possible values


255
Apply Business Purpose Contact Strategy :  Dropdown with Yes/No possible values
Representation Rate : Mandatory for ApplyOfferSelfContentionStrategy ‘Yes’ and Integer accepts zero and positive
Fallow Period For Positive Response : Mandatory for ApplyOfferSelfContentionStrategy ‘Yes’ and Integer accepts -1, 0 and positive
Fallow Period For Negative Response : Mandatory for ApplyOfferSelfContentionStrategy ‘Yes’ and Integer accepts -1, 0and positive
Fallow Period For Dismissed Response : Mandatory for ApplyOfferSelfContentionStrategy ‘Yes’ and Integer accepts -1, 0and positive
Fallow Period For Engaged Response : Mandatory for ApplyOfferSelfContentionStrategy ‘Yes’ and Integer accepts -1, 0and positive
Default Contract Tenure : Available for  BusinessPurpose ‘Renew’ and accepts Integer
Tariff Segment : Dropdown with Loan/CBU possible values
Tariff Type : Dropdown with Handset/SIMOnly/Tablet/DataSIMOnly/Dongle/Gigacube/Device possible values
Product Recommendation Type : Dropdown with Tariff/Discount/Handset/AddOn/Insurance/Accessory/Fee/Device/Data Device possible
values
To Pathway : Dropdown available for  BusinessPurpose ‘Renew’ and with
 ToSIMO/ToHandset/ToSIMO30/ToWatch/ToMBBSimo/ToMBBDevice/ToMBBSimo30 possible values
Squad Intent : Non mandatory multiselect and source from Intents screen
Propensity Source : Dropdown with BDC as possible value
Priority Score CutOff : Accepts double values
Propensity Attribute : Non mandatory multiselect
Customer Segments : Multiselect and source from CustomerSegment screen
ModelId : Available and mandatory for PropensitySource ‘BDC’ and accepts decimal values
Offer Expiry Interval: Dropdown with Days/Months/Years/Set  possible values


Offer Expiry Interval: Dropdown with Days/Months/Years/Set  possible values
Offer Expiry : Available and mandatory for OfferExpiryInterval ‘Set’ and DateTime control will be available
Offer Expiry : Available and Mandatory for OfferExpityInterval Days/Months/Years and accepts Integer
Fallow Period For Offer Expiry Interval : Dropdown available when OfferExpiryInterval and OfferExpiry are not null with
Days/Months/Years/Set/OnetimeExpiry possible values
Fallow Period For Offer Expiry : Mandatory and available as a DateTime for  FallowPeriodForOfferExpiryInterval ‘Set’
Fallow Period For Offer Expiry : Mandatory and available as a Integer For
FallowPeriodForOfferExpiryInterval Days/Months/Years/OnetimeExpiry
Test Group : Dropdown and source from TestCellManagement screen
Offer Category : Multiselect with static data
Product Group : Multiselect with static data
Offer Eligibility RuleIDs : Accepts text
Offer Execution Mode : Multiselect and source from OfferExecutionModes screen
Applicable Channel : Multiselect and mandatory source from Channel screen
 Data will be pushed to Offers decision data of all business purposes


256
Offer To Offer Variations
Offer To Offer Variations will be available under Artifacts menu
Unique : OfferName and OfferVariationName
Offer Name : Mandatory dropdown and source from Offer screen
Offer Variation Name : Mandatory and source from OfferVariation screen
Offer Dynamic Variable 1 : Mandatory and text input
Product Code : Non mandatory and Text Input
Rank : Mandatory Integer
Enabled : Boolean
Propensity Source : Dropdown with BDC possible value
Propensity Attribute : Non Mandatory multiselect
ModelId : Available and mandatory for propensity source ‘BDC’
Data will be pushed to OfferToOfferVariations decision data of all business purposes


257
Treatment
Treatment will be available under Artifacts menu
Unique : TreatmentID and TreatmentName are individual unique
Offer Name : Mandatory and source from Offer screen
Applicable Channel : Mandatory and source from Channel screen
Treatment ID : Mandatory text
Treatment Short Name : Mandatory text
Description : Mandatory text
Start Date : Mandatory
End Date : Mandatory
Treatment Weight : Mandatory integer accepts 0 and positive
Apply Dedupe : Boolean
Apply Channel Contention : Boolean
Control Group Selection : Mandatory integer accepts from 0 to 100
Enabled : Boolean
Contact List Number : Non mandatory integer accepts 0 and positive
Rank : Non mandatory integer accepts 0 and positive
Has Children : Non mandatory dropdown with Y/N possible values. Default to 'N'
Max Children : Non Mandatory. Available when HasChildren ‘Y' and default to '-1’
Apply Treatment Self Contention Strategy : Non Mandatory dropdown with Yes/No possible values
Fallow Period For Dismissed Response : Available and mandatory when Apply Treatment Self Contention Strategy 'true'
Fallow Period For Engaged Response : Available and mandatory when Apply Treatment Self Contention Strategy 'true'


258
Impression Rate Period : Available and non mandatory when Apply Treatment Self Contention Strategy 'true'
Maximum Impressions : Available and non mandatory when Apply Treatment Self Contention Strategy 'true'
Applicable Sub Channel : Mandatory
   SubChannel : Source from SubChannel screen
When a sub channel which has ApplyTemplates true is selected then all the sub channels which has ApplyTemplates false will be
disabled and other sub channels which has ApplyTemplates true will be enabled for multi selection.
When a sub channel which has ApplyTemplates false is selected then all the other sub channels will be disabled which behaves as a
single selection.
   Enabled : Boolean
   Division : Displays division of respective subchannel from SubChannel screen
Treatment Eligibility RuleIDs : Non mandatory text
Data will be pushed to App, AppPush, DirectMail, eCare, Email, InboundCC, IVR, Microsite, MMS, OutboundCC, RCS, Retail, SMS, TOBi,
Web decision data of all business purposes


259
ADO
1308311  Treatment Level Self Contention
1329830  Pre to post S15 Threshold: Update PM Tool
to allow the S15 Threshold to be managed at
Journey Level
1329761  Pre to post S15 Threshold: Being able to
manage which Product Journey will trigger
an S15 Threshold
1329834  Update the Early Upgrade MAF screen to
support From /To support Evo Airtime plan
only
1362935  PM Tool - discard selection at artifact level
1345814  AoM - pM Tool push no flushing Cache
1356851  HBB Lifecycle band Composite key-
Technical US
1223103  Ability to utilise Quotes in Get NBA
Treatment Properties1344463  Mandate 'Rank' property in 'Offer To Offer
Variations' and 'Treatment To Treatment
Variations' screens on PMTool


260
Designer Studio : How-To
Designer studio is one of the developer portal,from where most of the development takes place. In this article we will see below topics:
1.


261
Eligibility Rules: How-To
If you get any requirement to create a new rule,Please do follow below steps:
Step 1: Get the Rule ID from Config Manager.
Step 2: Once the Rule ID is available,Understand the rule description.
Step 3: Identify the strategy where we need to implement the rule (or) get info from config manager. Find the rules library sheet from the
below link.
Step 4: (i) If it is Existing strategy,
       1. Open the strategy to identify the rule-set and rule-set version in which we need to make the change.
       2. If the strategy is available in the desired rule-set and its version,Checkout the strategy to implement
          the new rule.
      3. If the strategy is not available in the desired rule-set and version,Save-as the strategy in to the
         required rule-set and its version.
Step 4: (ii) If it is new strategy,
      1. Identify the name of the Strategy.
      2. Identify the applies-to-class of the strategy.
      3. Identify the Rule-set and Rule-set version.
      4. Create the new strategy using above details.
Creating New Rule in a strategy:
To Create a new rule in a strategy,
1. Identify the Data Source on which we need to write the condition.
2. Find out the Suitable Component to write the Condition.
3. Implement the logic according to the Rule Description and connect the final component to results Component.
Example:
Lets consider an example of simple rule.
1. Open the Strategy and add  required component to write the Condition. In this example,we’ve used switch component to write the
condition.


condition.
2.  Name the component with the Rule ID and Rule description and Implement the logic according to the Rule Description.AOM Rules Library
Make sure the rule component is connected to Results component,otherwise we cannot find the rule in the proposition filter to map.
Rule contains 2 parts- Rule ID and Rule Description.
1.   Rue ID :  GBL003
2.   Rule Description : Subscription Has Android Device


262
                    If the Condition results true,Then it is Eligible,Otherwise it is Ineligible.
 3. Connect the Rule Component to the Results Component.


263
Proposition Filters- How To
 Creating Proposition Filters:
Step 1: Go To Records Explorer → Right Click on Decision  → Create → Proposition Filter
Step 2: Specify the Name of the proposition Filter in the Label field.
Step 3: Identify the Business Issue and Group to get the proposition data to Proposition filter. Overview : In Pega, Propositions are what we are offering to the customers. Proposition filters are the rules that provides the link
between Proposition and Its eligibility rules. For each proposition, we can have certain rules. If all the rules which are mapped to the
proposition are satisfied for a customer, then the customer is eligible to get that offer/proposition.
Get the relevant and Unique name for the proposition filter


264
Step 4:  Identify the applies-to-class of the proposition filter and fill the Apply to field with the class.
Step 5:  Identify and select the rule set and Version from the drop-down.
Step 6:  Click on Create and Open.
Step 7: Checkout the rule, Go to default Criteria tab, Select the default criteria as per the requirement .
Make sure you’ve added/pushed the required propositions from Pm Tool to the decision data.
Note : All the proposition Filters should be available in the AOMFW-Business-Artifacts Rule set.
Checkout : If you check out a rule no one else can check-out that rule and make changes to it until you checks it in.


265
Mapping Rules to Propositions:
Step 1: Get the list of rules to be mapped to each proposition.
Step 2: Understand the rule and identify whether it is implemented (existing rule) or not Implemented (new rule).
Step 3: (I)  If it is Existing Rule,Then go to step 4.
Step 3: (II) If it is New rule, Then visit Eligibility Rules: How-To page to create  a new rule.
Step 4: Select the proposition to which we need to map the eligibility rule.
Step 5: Click on Add Criteria button to add the Eligibility Criteria.
Step 6: From the Drop down,Select the appropriate Operation (Group AND’ s or Group OR’ s or Advanced Logic)


266
Step 7: Select the strategy from the first drop-down,in which the rule is available.
Step 8: Select has results for option from the second drop-down.
Step 9:  Select the Component name(Rule Description)  from the third drop-down.
Step 10 : Save the rule.
Step 11: Repeat the same steps for each proposition.
Step 12 : If it is done for all propositions, Check-in the proposition filter.

Default criteria would be evaluated only if the Include Check box is enabled. Mostly it would be disabled, if we have set of rules to be
evaluated for a proposition.


267
Re-validation for Outbound Channels : How-To
Steps:
1. Create a data flow and get the latest customer responses from the Interaction History and compose the data required by the rules
involved in the Re-validation strategy.
2.  Create a Re-validation strategy and write the conditions/rules required for the Re-validation.
3.  Add a call to the strategy in the Re-validation data-flow.
4. Configure the data flow to be executed in the Case run.
Data-Flow:
Strategy: Configure all the conditions/rules required for the Re-validation.Purpose of Re validation:
Re-validation means re validating the offer/proposition that is being offered to a customer. Let us say,  an offer is made to a customer,
but no response is received on that offer from the customer. However if the customer later accepts the offer during the extractor run
and a response is recorded in the IH,then we should not send the same offer to the customer. For this purpose we re-validate all the
offers that are eligible for the customer in Extractor process.


268
Squad Zone Strategies: How-To
In Vodafone application each business-purpose is treated as a Squad.
Consider an example of Cross Sell Business Purpose. All the propositions (Offers,Treatments, Variations) that is applicable to Cross Sell
Business purpose is available Under Cross Sell Issue in the proposition landing page.
Refer the screen shot,to Navigate to the proposition landing page.
Here are some  strategies,Where we’re Importing each squad/Business Purpose to be used in the logic.
ImportAllOffers
ImportAllOfferVariations
ImportAllOfferToOfferVariations
ImportAllTreatments
ImportAllTreatmentVariations
ImportAllTreatmentToTreatmentVariations
Following strategies are placed in Business Artifacts rule set,so that Squad developers can work on it.
Offers:
Identify Eligible Up sell Offers
Identify Eligible Retention Offers
Identify Eligible Service Offers
Identify Eligible Retain Offers
Identify Eligible Renew Offers
Identify Eligible Cross Sell Offers
Identify Eligible TradeIn Offers
Identify Eligible Care Offers
Offer Variations:
ApplyTradeInOfferVariations Eligibility
ApplyUpsellOfferVariations Eligibility
ApplyRetentionOfferVariationsEligibility
ApplyServiceOfferVariationsEligibility
ApplyRetainOfferVariationsEligibility
ApplyRenewOfferVariationsEligibility
 Some of the Squad zone strategies are placed in AOMFW-Business-Artifacts rule set to be updated by the different squad
developers


269
ApplyCrossSellOfferVariationsEligibility
ApplyCareOfferVariationsEligibility
Treatments:
ApplyUpsellTreatmentEligibility
ApplyCrossSellTreatmentEligibility
ApplyRetainTreatmentEligibility
ApplyRetentionTreatmentEligibility
ApplyRenewTreatmentEligibility
ApplyCareTreatmentEligibility
ApplyTradeInTreatmentEligibility
ApplyServiceTreatmentEligibility
Treatment Variations:
IdentifyUpsellTreatmentVariations
IdentifyCrosssellTreatmentVariations
IdentifyRenewTreatmentVariations
IdentifyRetainTreatmentVariations
IdentifyServiceTreatmentVariations
IdentifyRetentionTreatmentVariations
IdentifyTradeInTreatmentVariations
IdentifyCareTreatmentVariations
Creating New  Squad:
When we get a new requirement to add a new Squad,Then follow the below procedure.
1. Add a new Squad to the Structure i:e to the proposition landing page as below.
Business Issue:
2. Add all the groups required by the newly added issue. Ex: Offers,Email,SMS,OB CC,Offer Variations etc.
Group:


270
3. The relevant data should be Added/pushed to each decision data.
4. Create new proposition filters for the new Squad  in respective Issue-Group and map the eligibility rules. Ex: <<Squad>>Offers Eligibility,
<<Squad>>OfferVariationsEligibility etc.
5. Update required Squad Zone Strategies(listed above) to include the new Squad and new proposition filter.

When we create a new Group,It internally creates a new decision data with the same group name.


271
Recognize the capability change : How-To
Recognizing a capability change:
If we get any requirement,we need to identify whether it is new functionality or a change to existing one.
1. If it is a new functionality to be implemented,then it is a Capability Change.
2. If the change need to be addressed in a rule set other than the AOMFW-Business-Artifacts rule set, then it is a capability change.

 In Vodafone, all the decisioning logic is handled by two teams.
1. Capability Team.
2. Optimization Team.
Based on the requirement we’ll decide if it goes to Capability or optimization team.


272
Unit Testing NBA FW - Reconfigure Volume Constraint Process in Batch Mode
Unit Testing:
For unit testing  the strategy, IdentifyBestOBTreatmentsByBatch follow the below steps to avoid the run time error.
1. Run the activity I n i t i a l i s e T r e a t m e n t B u c k e t s manually to initialize the buckets.
Additional Information:
As part of this new feature, for the BatchNBA case,
1. New step initialisation of treatment buckets is added (Buckets are initialised in this step for treatments having max capacity set)
  2. Delete of Buckets step is introduced after Identifybestobtreatmentsbybatch Dataflow is triggered.


273
Output Properties:


274
Output Properties: How-To
Steps to create Output Properties:
Step 1 :  In the designing phase, decide which output properties are needed.
Step 2 :  Create the output properties in the SR Class.
Step 3 :  If required,create a new strategy and set the required values to each output property using set property component.
Step 4 : Once the strategy is available,add a call to the strategy in the main strategy.
Step 5 :  Use the strategy in the data flow.
Example Scenarios:
Scenario 1: Consider if we need to Create a new Output property for Batch Email Channel.
1. Here Channel= “Email” && Execution Mode=”Batch”.
2. Find out Corresponding strategy from the below references.
3. PopulateOutputPropertiesForEmailByBatch is the strategy we’re using for Email Output property mapping.
4. Create a new Output property in SR class.
5. Checkout the strategy and find the Relevant component to add the mapping.
6. Map the properties as shown below.Overview:  When we run any AOM Process, it outputs the  Best Offer to the customer according to the customer’s eligibility.
If the Offer is to be delivered through the Email and SMS Channels,The Pega marketing Email & SMS Campaigns will deliver the
Selected Offer to the customers. If it is to be delivered through other channels, we write all the details of the selected Offer along with
the customer details to an Output file.Output properties are the fields that are required for the Extractor Output file. Output Properties
are specific to the channel. It may vary for each channel. Some of the Output properties (Data tokens) are used by Templates. (Ex:
Email and SMS)
        Email and SMS Output properties are used by Templates.


Email and SMS)
        Email and SMS Output properties are used by Templates.
We can directly map a value to the Property or we can get the value from other property as well.


275
     7.Unit test the strategy to make sure the value is populated correctly.
     Now the Output property can be used in Email Template as shown below.
Scenario 2:  Consider if we need to Create a new Output property for ProcessEvent( T2s) OutboundCC Channel.
1. Here Channel= “OutboundCC” && Execution Mode=”ProcessEvent”.
2. Find out Corresponding strategy from the below references.
3. PopulateOutputPropertiesForT2S is the strategy we’re using to map OutboundCC Channel Output property mapping .
4. Create a new Output property in SR class.
5. Checkout the strategy and find the Relevant component to add the mapping.
6. Map the properties as shown below.
OBCC & DM Output properties are used by Extractor Output files.


276

Set Property Component:
The Set property component is used to set a value to a Property. It can be direct value or value from other property or Output of an
expression (ex: true,false).
To add a new set property component:
1. Right Click on the strategy Canvas.
2. Go to Enrichment Category.
3. Select Set Property Component.( A new shape will be added to strategy Canvas.)
   4. Specify the Name of the Component in the label field & Right click on the Set property component
     to open the properties panel.
As OBCC && DM Channel Output properties are used by Output files, The Output property information(Name) should be given to
app Team. They 'll make changes to their activity to include your new Output property in the generated output file.


277
  5. Select Set Operation to set a value to a property.
  6. In the first text box select the name of the property to which we’re setting the value where as in
    the second text box Specify value/property/expression as shown below.
7. Click on Submit.
8. Then Connect the Set property Component to results component.

References of how Output properties are configured for each Channel(Existing):
1. Execution Mode : Batch & Channel : Email
The Email Output  properties are used by Treatment Templates. In Treatment Templates we have Dynamic Tokens which gets replaced
dynamically when the offer flow associated to the email Treatment is triggered.
 Strategy : PopulateOutputPropertiesForBatch
This strategy is applicable for all Channels of batch.The Basic Contact detail Properties are being set here.
Example: Contact Detail,Contact Id,Email address etc.


278

 Strategy : PopulateOutputPropertiesForEmailByBatch
 This Strategy is being referred in the Campaign Strategy “PrepareEmailTreatments”. All the output properties required for the Email
Treatment Templates are being set here in this strategy. Example: FirstName, Surname, EmailSubjectLine, ClickThroughURL, Offer
Header, Image URL, Email Copy, MobileImageURL etc.
2. Execution Mode : Batch & Channel : SMS
The SMS Output  properties are used by Treatment Templates. In Treatment Templates we have Dynamic Tokens which gets replaced
dynamically when the offer flow associated to the SMS Treatment is triggered.
Strategy : PopulateOutputPropertiesForBatch
This strategy is applicable for all Channels in batch.The Basic Contact detail Properties are being set here.
Example: Contact Detail,Contact Id etc.


279
Strategy : PopulateOutputPropertiesForSMSByBatch
This Strategy is being referred in the Campaign Strategy “PrepareSMSTreatments”. All the output properties required for the SMS
Treatment Templates are being set here in this strategy.
Example: FirstName, Surname,SMSBodytext etc.

3.Execution Mode  : Batch & Channel : OutboundCC
     Strategy : PopulateOutputPropertiesForOutboundCC
The Output Properties required for Outbound CC extractor file are being set here.


280

4.Execution Mode : Batch & Channel : Direct Mail
Strategy : PopulateOutputPropertiesForBatch
This strategy is applicable for all Channels in batch.The Basic Contact detail Properties are being set here. Example: Contact
Detail,Contact Id etc.
     Strategy :  PopulateOutputPropertiesForBatch  : This strategy is applicable for all Channels in batch.The Basic Contact detail
Properties are being set here. Example: Contact Detail,Contact Id etc.


281
5.Execution Mode : Batch & Channel : App Push
  Strategy : PopulateOutputPropertiesForDirectMail : The Output Properties required for Outbound CC extractor file are being set
here. Example: .Offer ID,Offer Name,Offer Variant,Treatment Variant,Treatment ID,Service ID,OwnerAccountNumber etc..
  Strategy :   PopulateOutputPropertiesForBatch : This strategy is applicable for all Channels in batch. The Basic Contact detail
Properties are being set here.Example: Contact Detail,Contact Id etc.


282
6. Execution Mode  = TIL && Channel= OutboundCC

Strategy : PopulateOutputPropertiesForAppPushBatch : The Dynamic Data Tokens required for App-Push extractor file are
being set here. Example: MobileDataDescription , ProductDescription3 ,Rec Cost ,RecCostText etc.
  Strategy : PopulateOutputPropertiesForTrigger : The Basic/common Output Properties for this Interface is being called in this
strategy. Example: Contact Detail,Contact ID,FirstName,SurName, Product Recommendation,Product Code etc..


283
7.Execution Mode  : TIL && Channel : SMS
8.Execution Mode  : TIL && Channel : App PushStrategy : PopulateOutputPropertiesForOutboundCC : The Output Properties required by CCD Extractor for OutboundCC
channel are being set in this strategy. Example:ProductRecommendationType,ExtraInfo1,ExtraInfo2, ExtractDateFormatted,
ConsumerEnterpriseFlag etc..
Strategy : PopulateOutputPropertiesForSMSByTrigger : The Output Properties required by TIL SMS Channel are being set in
this strategy and used by Dynamic tokens in Treatment Templates.
Example:OOBPriceText,OOBExtra,NextBillDate,OOBSpendText,DataRemainingText,MaximumQuantityText,UsedQuantityText etc..
Strategy : PopulateOutputPropertiesForAppPushByTrigger : The Data Tokens required by TIL App Push Channel are being set
here. Example: MobileDataDescription , ProductDescription3 ,Rec Cost ,RecCostText etc.


284
9.Execution Mode  : ProcessEvent && Channel : OutboundCC
10.Execution Mode  : ProcessEvent && Channel : SMSStrategy : PopulateOutputPropertiesForT2S : The basic Output properties required by ProcessEvent OutboundCC are being set
here in this strategy.  Example: PrepayPostpayType, Product Recommendation,ExtraInfo1,ExtraInfo2 etc..
Strategy : PopulateOutputPropertiesForOutboundCC : The Output properties required by ProcessEvent OutboundCC are being
set here in this strategy. These Properties are used by Extractor file.Example:ProductRecommendationType,ExtraInfo1,ExtraInfo2,
ExtractDateFormatted, ConsumerEnterpriseFlag etc..
Strategy : PopulateOutputPropertiesForT2S  : The Output Properties required by ProcessEvent SMS Channel are being set in
this strategy and These properties are used by Dynamic tokens in Treatment Templates.
Example:Product Code, ProductDescription3, MobileDataDescription, Product Recommendation, RecommendedData1,Device
Recommendation etc.


286
IH Properties: How To
Overview of Interaction History:
Steps to set IH Properties:
Step1:  Firstly, Decide what all the IH properties need to be set based on Execution Mode and the channel.
Step2:   If required,Create a strategy to set the required IH properties in the set property.
Step3:   Once the strategy is available,Add a call to the strategy in the Main strategy.
Step 4:  Use the strategy in the data-flow.
Some references of how IH properties are configured in various strategies:
    1.  Channel  : Web && Execution-mode = GetNBA
        Data-flow  :  IdentifyBestWebTreatments
        Strategy     :  IdentifyBestWebTreatmentsForSubscriptionInteraction History is a database table where all the Customer Communication History is stored. Whenever an eligible offer is sent to
the customer, that offer information is stored in the Interaction History.Customers responses are also captured in to the Interaction
History. In Vodafone,Interaction History is composed in data-flows  like PrepareBatchData, PrepareRealtimeData and
PrepareRealtimeDataForProcessEvent to get the customer communications for AOM Execution.
For any new field to be added to the Interaction History,it has to be added to the Database.(Generally DB Team do that). Then the
New Property needs to be added to the Class. (App Team do that).
To insert the IH properties into Interaction History , we use data set (pxInteractionHistory) through the data-flow. Some mandatory
fields must be set in the IH strategy.
Example: pyOutcome, pxOutcomeTime, Create Ts, pySubjectID are the mandatory properties.
 For web Channel, IH properties are being set in the sub-strategy called SetIHForWeb. This strategy is Used to set IH properties for


Web Channel. The pyOutcome value for web is Selected.


287
SetIHForWeb:
2. Execution Mode : Process Event  && Channel : SMS (or) Channel : Outbound CC
      Data Flow   :  Process Event
      Strategy     :  Process Event
ProcessEvent :
 For Channels, IH properties are being set in the sub-strategy called SetIHPropertiesForAllChannels. This strategy is Used to set
IH properties Text to Switch. The pyOutcome value is Selected.


288

SetIHPropertiesForAllChannels :

3. Channel  :  Retail && Execution Mode  : Get-NBA
             Data flow :  Get NBA
             Strategy   :  IdentifyBestRetailTreatmentsForSubscription
IdentifyBestRetailTreatmentsForSubscription:
For Retail, IH properties are being set in the sub strategy SetIHForRetail. This strategy is used to set IH properties for IVR Channel.
The pyOutcome value for Retail is  Selected.


289
SetIHForRetail:
4. Execution Mode=TIL && Channel=SMS && Channel=OutboundCC && Channel=App Push
      Data Flow  :  IdentifyBestTreatmentsByTriggers
      Strategy     :  IdentifyBestTreatmentsByTriggers
IdentifyBestTreatmentsByTriggers :
For TIL,The IH Properties are being set in a sub strategy SetIHPropertiesForAllChannels. This strategy is used to set IH properties
for TIL. NTID  drives the TIL processing. The pyOutcome value for TIL is set to Selected.


290
SetIHPropertiesForAllChannels :

5. Execution Mode : Get NBA && Channel =Inbound CC
              Data flow  :  Get NBA
              Strategy    :   IdentifyBestInboundccTreatmentsForSubscription
IdentifyBestInboundccTreatmentsForSubscription :
 For Inbound CC, IH properties are being set is SetIHForInboundCC. This strategy is used to set IH Properties for Inbound Call
center channel. The pyOutcome value is set to  Selected.


291
SetIHForInboundCC :
6 .Execution Mode : Get NBA && Channel : IVR
       Data Flow  :  Get NBA
       Strategy     :  IdentifyBestIVRTreatmentsForSubscription
IdentifyBestIVRTreatmentsForSubscription :
For IVR,  IH Properties are being set in SetIHPropertiesForAllChannels. This Strategy is used to set IH Properties for IVR
Channel. The pyOutcome value is set to Selected.


292
SetIHPropertiesForAllChannels :
7. Execution Mode : Batch && Channel : Email , SMS, OutboundCC, Direct Mail, App Push
      Data Flow  :  IdentifyBestOBTreatmentsByBatch
      Strategy     :  IdentifyBestOBTreatmentsByBatch
IdentifyBestOBTreatmentsByBatch :
For Batch, The IH Properties are being set in SetIHPropertiesForAllChannels sub strategy. If any Channel specific properties that
needs to be set,Then PopulateOutPutPropertiesForBatch strategy is used. The pyOutcome value is set to Selected. After
Campaign execution for Email and SMS treatments, the pyOutcome value will be pending.


293

PopulateOutPutPropertiesForBatch :
SetIHPropertiesForAllChannels:


295
Data Tokens For Templates
Data Tokens: Data Tokens are the properties that are used in Treatment Templates. In the run time, the properties gets replaced with the
actual values from database or from SR properties.
App-Push Data Token
Step 1: Let us consider below Example for AppPush Data Tokens which is used for MVP.
Example : { "HTMLTemplate": { "template_id": "BASE_TEMPLATE_WH", "values": { "background_color": "#E60000", "button_color":
"#FFFFFF", "text_color": "#FFFFFF", "title_color": "#FFFFFF", "button_text_color": "#E60000", "run_action": "deep_link_action",
"custom_url": "myvodafone://TARIFF_MIGRATION", "click_tag_name": "$[SR.pxInteractionID]_CLICKED_BUTTON", "template_image":
"https://assets.vodafone.co.uk/cs/groups/public/documents/images/vfcon105149.jpg", "body_title": "$[SR.FirstName], you're running low on
data this month", "body_content": "Why not change your plan to avoid running low again? Switch to our $[SR.ProductDescription3] plan
and you'll enjoy $[SR.MobileDataDescription] of data, unlimited minutes and unlimited texts for just £$[SR.RecCostText] a month.

Your contract end date will stay the same and if you change your mind you have 14 days to move back.", "button_text": "Change my
plan" } }, "message": { "title": "You're running low on data", "expiry": "$[SR.TreatmentDynamicExpiry]" }}
Step 2: From the above example below are Data tokens
a)$[SR.FirstName]
b)$[SR.ProductDescription3]
c)$[SR.MobileDataDescription]


b)$[SR.ProductDescription3]
c)$[SR.MobileDataDescription]
d)$[SR.RecCostText]
Step 3 : We use PopulateOutputPropertiesForAppPushByTrigger strategy to populate data for Data Tokens.


296

Step 4: After populating the Data Tokens we will pass the data to the platform .
Step 5: Platform Team use above data and Replace the Data tokens in the Appush Body Text.

SMS Data Token
Let us Consider the below example for SMS Data Tokens Which are used in Batch.
From the above example, [FirstName] is the Data Token. When a Customer receives the above text through an SMS the Data Token[First
Name] gets replaced with the actual name of the customer.
Hi [FirstName], you're eligible for a 15% discount on additional phones or our new Unlimited data SIM only plans. Can't decide what's best
for you? Click here https://www.vodafone.co.uk/householddiscounts to chat to one of our helpful agents who can guide you through your
options. Terms apply. To end texts, send STOP SMS to 9774.


297
Creating and replacing Data Tokens:
1. Create an SR Property with the same name as the Data Token.
2. Set a value to the SR Property in an Output properties Strategy.
     3. Replace the Token with the actual value using a Replace All() function as below.


298
Channel Specifics : How-To


299
Offer Flows : How-To
In Pega Marketing, there is a one-to-one relation between offers and propositions. .When a strategy selects a proposition for a customer,
the offer flow associated with that proposition is invoked.
Page links:
Email Offer Flows


300
Email Offer Flows
Let us Consider Batch NBA use case for the Creation of Email offer Flows.
 Steps in creating Email offer flow : There are 2 ways to create a new offer flow.
 Step 1: Switch to the PegaMarketing Portal.
Step 2: After Switching ,Select the content tab on left hand side panel and Click on Actions.
Step 3: Click on the Create button , and select Action .
Step 4: Enter the name of the offer flow.
Step 5: Select the issue and Group.
Step 6: Select the Application and Relevant Rule set Version.
Step 7: After performing Step 4,5,6 click on the Create button.
Step 8: Now it will redirect to the Offer Flow Screen.


301
Step 9: On the Details tab Enter the basic details and click on Flow tab .
Step 10: Click on the ‘+’ icon and select the Send Email.


302
Step 11: Connect the StartShape to Send Email shape and Send Email shape to End Shape.
Step 12: Open the send Email shape and Select Specify Treatment and Enter the Email Template.
Step 13: Select Deliver Online and  select Use Subject from Treatment.
Step 14: Go to the Adavnce setting and select Email Account.
Step 15: Select Specify Email Account and Enter the Mailjet as Email Account.
Step 16:  Select  Use Email Account Settings under From/Reply To section .
Enter the Email Template which holds the name of the Email treatment to be sent. If you enable Deliver Online, you must select an
existing Email treatment since it determines the content of the email to be sent.
 System uses these settings when the Deliver Online mode is enabled.


303
Step 17: Click on Save.
Other way to create an offer flow:
We can also create a new offer flow from the existing offer flow. Following are the steps to create an offer flow from existing offer flow.
1. Switch to Pega Marketing Portal as shown above.
2. In the search box,search for the existing offer flow and open it.
3. Click on save as button to create a new copy of the offer flow.
   4. Provide the new offer flow name in the label field and If required,Update the issue and group.
When a new offer flow is created in a particular issue and group,the respective decision data gets updated with the new proposition.
We need to make sure that the decision data is updated correctly.


304
   5. Make sure you’ve selected the correct rule set and version and click on create and open.
   6. Once the offer flow got created,checkout the rule and update the basic details according to the new one.
  7. In the flow tab,You can find that the flow is already created.
  8. Open the properties of Send Email shape and configure the treatment template.


305
     9. Save and Check-in the rule.


306
SMS Offer Flows And SMS Treatment Template
Let us consider ProcessEvent use case for SMS Offer Flow Creation
Steps for Creating SMS Offer Flow: There are two ways to create an offer flow.
Step 1: First Switch to the PegaMarketing Portal.
Step 2: Select the content tab on left hand side panel.
Step 3: Click on the Create button.
Step 4: Enter the name of the offer flow.
Step 5: Select the issue and Group.
Step 6: Select the Application and Relevent Ruleset Version.
Step 7: After perfoming Step 4,5,6 click on the Create button.
Step 8: Now it will redirect to the Offer Flow Screen.
Step 9: On the Details tab Enter the basic details and click on Flow tab .


307
Step 10: Click on the ‘+’ icon and select the Send SMS.
Step 11: Connect the startShape to Send SMS shape and Send SMS  shape to End Shape.
Step 12: Open the send SMS shape and Select Specify Treatment and Enter the SMS Template.
Step 13: Select the Deliver Online and select Use Existing SMS
Step 14: Go to the Adavnce setting and select SMS Account.
Step 15: Select Specify SMS Account and Enter the AOM SMS Account as SMS Account.
Enter SMS Template which holds the name of the SMS treatment to be sent.
The system uses these setting when the Deliver Online mode is enabled.


308
Step 16: Click on Save.

Steps for Creating SMS Treatment Template
Step 1: Click on Content and Treatments.
Step 2: Click on Create button and select SMS.
Step 3: Enter the name of Template.
Step 4: Select the Application and Relevent Ruleset Version.
Step 5: After perfoming Step 3,4 click on the Create and open button.


309
Step 6: Enter the Body of the SMS ,in ProcessEvent use case ,we  will pass SMS Body in a property and use it in the Body section.
Step 7: Click on Save.
Other way to create an offer flow:
We can also create a new offer flow from the existing offer flow. Following are the steps to create an offer flow from existing offer flow.
1. Switch to Pega Marketing Portal as shown above.
2. In the search box,search for the existing offer flow and open it.
3. Click on save as button to create a new copy of the offer flow.
When a new offer flow is created in a particular issue and group,the respective decision data gets updated with the new proposition.
We need to make sure that the decision data is updated correctly.


310
4. Provide the new offer flow name in the label field and If required,Update the issue and group.
5. Make sure you’ve selected the correct rule set and version and click on create and open.
6. Once the offer flow got created, checkout the rule and update the basic details in the details tab.
7. Save & Check-In the rule.

In the flow tab,You can find that the flow is already created. Open the properties of Send SMS shape and verify the SMS account
and Treatment template.


311
App-Push Templates and App-Push Data Tokens
App-Push Templates
Step 1: App-Push Templates are updated in the TreatmentToTreatmentVariation screen in the PmTool.
Step 2: App-Push Templates are updated in below properties in Pm tool screen.
               a)InApp Notification JSON
               b)Inbox Notification JSON
               c)Push Notification JSON

Step 3 : Updates in the TreatmentToTreatmentVariation screen are pushed to the                                     TreatmentToTreatmentVariation
Decision data .


312
Example : {  "HTMLTemplate": {    "template_id": "BASE_TEMPLATE_WH",    "values": {      "background_color": "#E60000",
"button_color": "#FFFFFF",      "text_color": "#FFFFFF",      "title_color": "#FFFFFF",      "button_text_color": "#E60000",      "run_action":
"deep_link_action",      "custom_url": "myvodafone://TARIFF_MIGRATION",      "click_tag_name":
"$[SR.pxInteractionID]_CLICKED_BUTTON",      "template_image":
"https://assets.vodafone.co.uk/cs/groups/public/documents/images/vfcon105149.jpg",      "body_title": "$[SR.FirstName], you're running low
on data this month",      "body_content": "Why not change your plan to avoid running low again? Switch to our $[SR.ProductDescription3]
plan and you'll enjoy $[SR.MobileDataDescription] of data, unlimited minutes and unlimited texts for just £$[SR.RecCostText] a month.

Your contract end date will stay the same and if you change your mind you have 14 days to move back.",      "button_text": "Change
my plan"    }  },  "message": {    "title": "You're running low on data",    "expiry": "$[SR.TreatmentDynamicExpiry]"  }}

App-Push Data Token
Step 1: Let us consider below Example for AppPush Data Tokens which is used for MVP.
Example : {  "HTMLTemplate": {    "template_id": "BASE_TEMPLATE_WH",    "values": {      "background_color": "#E60000",


"button_color": "#FFFFFF",      "text_color": "#FFFFFF",      "title_color": "#FFFFFF",      "button_text_color": "#E60000",      "run_action":
"deep_link_action",      "custom_url": "myvodafone://TARIFF_MIGRATION",      "click_tag_name":
"$[SR.pxInteractionID]_CLICKED_BUTTON",      "template_image":
"https://assets.vodafone.co.uk/cs/groups/public/documents/images/vfcon105149.jpg",      "body_title": "$[SR.FirstName], you're running low
on data this month",      "body_content": "Why not change your plan to avoid running low again? Switch to our $[SR.ProductDescription3]
plan and you'll enjoy $[SR.MobileDataDescription] of data, unlimited minutes and unlimited texts for just £$[SR.RecCostText] a month.

Your contract end date will stay the same and if you change your mind you have 14 days to move back.",      "button_text":
"Change my plan"    }  },  "message": {    "title": "You're running low on data",    "expiry": "$[SR.TreatmentDynamicExpiry]"  }}
Step 2: From the above example below are Data tokens
              a)$[SR.FirstName]
              b)$[SR.ProductDescription3]
              c)$[SR.MobileDataDescription]
              d)$[SR.RecCostText]
Step 3 : We use PopulateOutputPropertiesForAppPushByTrigger strategy to populate data for Data Tokens.


313

Step 4: After populating the Data Tokens we will pass these data to End .
Step 5: Platform Team use above  data and Replace the Data tokens in the Appush Body Text.


314
OBCC Output property mapping & file format :
Output file : Output file is a file that is used to write the output of the extractor case. At the end of every extractor run, an output file gets
generated for each channel (OB CC, DM) and placed in a location specified in the AOMConfig datatype.
                        <<Subchannel>> can be resq/Concentrix/webhelp

This is how the output file looks in the server.OBCC Output Property Mapping: Please Refer the Output Properties: How-To article to map output Properties for all Channels.
File path : AOMConfig → ( Config Type = ExtractorDestinationType ) → ( ConfigName = CCD<<SubChannel>> ) → Config Value
Generally we use p u t t y to view the generated output files. To access the generated output files, one should have access to the folder
in the server. If you don't have  access to view the file, then contact system administrator. To view the output files,we use UNIX
commands as below.
1. cd <location of files> ex: cd mnt/share/aom/outbound/ call_centre/ <subchannel>
2. To decrypt the file use this command: gpg --homedir /mnt/share/aom/.gnupg --passphrase passphrase --yes --batch --output
<FileName to be decrypted> --decrypt <decrypted filename>.
example: gpg --homedir /mnt/share/aom/.gnupg --passphrase passphrase --yes --batch --output
aom_XSL008_Concentrix_20200910084327.zip --decrypt aom_XSL008_Concentrix_20200910084327.zip.gpg
3. To Zip the file Use this command: zip <FileName before zipped>.dsv <FileName after Zipped>.zip


Example: zip account_20190711140258_full_01.dsv account_20190711140258_full_01.dsv.zip
4. To UnZip the file, Use the command : unzip <<FileName before UnZip.zip> <FileName after UnZip.dsv> Example : unzip
account_20190711140258_full_01.dsv.zip account_20190711140258_full_01.dsv


315
The Generated Output file contains the details of the Customer along with the Offer information that is to be delivered to the customer. This
is how it looks when we extract the Output file.


316
DM Output property mapping & file format :
Output file : Output file is a file that is used to write the output of the extractor case. At the end of every extractor run, an output file gets
generated for each channel (OB CC, DM) and placed in a location specified in the AOMConfig datatype.
This is how the output file looks in the server.
The Generated Output file contains the details of the Customer along with the Offer information that is to be delivered to the customer. This
is how it looks when we extract the Output file.DM Output Property Mapping: Please Refer the Output Properties: How-To article for DM Output property mapping
File path : AOMConfig → ( Config Type = ExtractorDestinationType ) → ( ConfigName = DM ) → Config Value
Generally we use p u t t y to view the generated output files. To access the generated output files, one should have access to the folder
in the server. If you don't have access to view the file, then contact system administrator. To view the output files,we use UNIX
commands as below.
1. cd <location of files> ex: cd mnt/share/aom/outbound/ direct_mail/
2. To decrypt the file use this command: gpg --homedir /mnt/share/aom/.gnupg --passphrase passphrase --yes --batch --output
<FileName to be decrypted> --decrypt <decrypted filename>. example: gpg --homedir /mnt/share/aom/.gnupg --passphrase
passphrase --yes --batch --output aom_XSL008_20200910084327.zip --decrypt aom_XSL008_20200910084327.zip.gpg
3. To Zip the file Use this command: zip <FileName before zipped>.dsv <FileName after Zipped>.zip Example: zip


account_20190711140258_full_01.dsv account_20190711140258_full_01.dsv.zip
4. To UnZip the file, Use the command : unzip <<FileName before UnZip.zip> <FileName after UnZip.dsv> Example : unzip
account_20190711140258_full_01.dsv.zip account_20190711140258_full_01.dsv


318
SOAP UI Testing : How-To


319
Text-to-Switch End-To-End Testing:
ProcessEvent Flow:
Whenever Vodafone receives the text message,It will be stored in a file. An Event Loader is configured to run for every 2-3 mins to process
the data from file. Event Loader writes the data from File to a database table called (Event Status) and it triggers the ProcessEvent
Activity,which internally triggers the Process Event Data flow. ProcessEvent Data flow makes the decisioning based on the incoming
request from event Status table and gives an offer to the customer to retain him.
How to Test ProcessEvent flow:
To test any real time functionalities,we use either of these tools - SOAP UI & Post Man.
1. Download and install the SOAP UI/Postman tools.
2. Create a new Rest Project from the file menu.
   3. Configure the application End Point URL as shown below. (For Text-to Switch we use Trigger Event API)Whenever a Customer wants to leave Vodafone , they send a text message to Vodafone saying that he is leaving the Vodafone to
join the other network with the Same number/different number. When the Vodafone receives the request from a customer
(Event),Vodafone executes ProcessEvent flow and gives a best Offer to retain the customer.


320
  4. Provide the Request details as below.
Sample Request Body :
{ "Identifier":{
"ServiceNumber":"447000002133"
},
"Event":{
"Type":"Disconnections",
"SubEventType":"Mobile",
"Channel":"SMS",
"EventTimestamp":"2020-10-07T04: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",
"PAYGBalance":0.0
},
"ErrorDetail":{
"ErrorCode":"BUSINESS ERROR",
"ErrorDescription":"SMS_PAC_STAC_INGRACEPERIOD"


321
}
}
}
 5. Provide the authentication details.
Please find the Auth credentials details for dev-2 Environment.Note : In the End-Point URL make sure you’re hitting the request for the correct environment. dev-2. The URL for dev-2 env -
https://pega.data.dev2.vodafoneaws.co.uk/prweb/PRRestService/aom/v1/triggerevent


322
6. Provide Header details.
7 . Send the Request and check the Response.
Verify the Response :
1. OBCC Channel: verify the response in BestOBTreatments1ForT2s/BestOBTreatments2ForT2S datasets.


323
2. SMS Channel : Verify the Real Time Text to switch campaign output.
3. Interaction History : Connect to the Interaction History table/view and verify whether there are any communications recorded in the
Interaction History for the customer.

verify the Data-Corr-SMS table to find the SMS copy if there is any error in SMS account configuration/wrong phone number.


324
Data Depletion End-to-End Testing:
To test any real time functionalities,we use either of these tools - SOAP UI & Post Man.
1. Download and install the SOAP UI/Postman tools.
2. Create a new Rest Project from the file menu.
3. Configure the application End Point URL as shown below. (For Data Depletion we use Bundle Event API).


325
4. Provide the Request details as below.
 Sample Request Body :
{
"MSISDN": "447770007666",
"NotificationTimestamp": 1545152470,
"NTID": "292",
"BundleID": "FP_VF_MDN",
"BillingDate": "25-11-2020",
"OOBTariff": "500MB",
"OOBSpend": "£36",
"OOBPrice": "£15.50",
"OOBDataUsed": "99",
"RoamCap": false,
"OriginZone": "ROW1",
"AdditionalDerivedAttributes": {
"QueuedBundleFlag": false,
"CommercialProductId": "01297464",
"UOMCode": "ROAMDATA",
"AnonymousSpendControl": "Unrestricted",
"DataCapped": true,
"AccOwnerMSISDN": "447742033006",
"VodafoneAccountOwner": true
},
"BalanceSummary": {
"UsedQuantity": 1048576,
"MaximumQuantity": 2097152,
"AvailableQuantity": 1048576,
"UnlimitedBundle": false
}
}
Note : In the End-Point URL make sure you’re hitting the request for the correct environment. dev-2. The URL for dev-2 env -
https://pega.data.dev2.vodafoneaws.co.uk/prweb/PRRestService/aom/v1/bundleevent


326
5. Provide the authentication details.
6. Provide Header details.


327
Please find the Auth credentials details for dev-2 Environment.

7 . Send the Request and check the Response.


328
Verify the Response :
1. Verify the Response in SOAP UI tool for SMS.
2. For OBCC Channel verify the output in BestOBProcess1/BestOBProcess2 datasets.
3. Interaction History : Connect to the Interaction History table/view and verify whether there are any communications recorded in the
Interaction History for the customer.
 verify the Data-Corr-SMS table to find the SMS copy if there is any error in SMS account configuration/wrong phone number.
1
2
3
4
5
6
7
8
9
10
11
12{
    "Response": "OVERRIDE",
    "Messages": [
        {
            "SocialHours": true,
            "MSISDN": "447094226080",
            "Message": "From Vodafone: Just to let you know - you're running low on minutes for this month, with
            "Channel": "SMS",
            "FromID": "40506"
        }
    ]
}


329
IVR End-To-End Testing:
To test any real time functionalities, we use either of these tools - SOAP UI & Postman.
Step 1: Download and install the Postman tools.
Step 2: Create a new collection.
Step 3: Add a new request.
Step 4: Configure the new request’s End Point URL as shown below (For IVR getnextbestactions API is used).


330
Step 5: Provide the Request details as below.
Sample Request Body:
Step 6: Provide the authentication details.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25{
  "Identifier": {
    "Account": {
      "AccountNumber": "XXXXXXXXXX",
      "Status": "Existing",
      "Type": "Consumer"
    },
    "ServiceNumber": "XXXXXXXXXX"
  },
  "RequestorDetail": {
    "Channel": "IVR",
    "SubChannel": "PostNLCS"
  },
  "Context": {
  "PrimaryContext": "problem-sim",
    "NoOfActions": 1,
    "Detail": [
      {
        "Name": "ConnectionId",
        "Value": "CON_28474_847464"
      }
    ]
  }
}
The URL for dev-1 env - https://pega-realtime.data.dev1.vodafoneaws.co.uk/prweb/PRRestService/aom/v1/getnextbestactions


331
Step 7: Provide Header details.
Step 8: Send the Request and check the Response.


332
Verify the Response
Verify the SMS: Verify if the SMS is generated in Data-Corr-SMS table for PostNLCS calls.
Interaction History: Connect to the Interaction History table/view and verify whether there are any communications recorded in the
Interaction History for the customer.
Verify the Response: Verify the Response Structure, whether it is as per AOM Interface Spec, and verify the data in response.


333
Assisted Upgrade - Product List End-To-End Testing:
Product List service is triggered when one of the tabs in the VADR edit deal screen is selected. Selected list information is provided in the
ProductType attribute of the service request.
To test any real-time functionalities, either of these tools - SOAP UI & Post Man can be used.
1. Download and install the SOAP UI/Postman tools.
2. Create a new Rest Project from the file menu. Full subscription/customer data should be populated by calling GetCustomer API, before making get productlist call.


334
3. Configure the application End Point URL as shown below. (productlist API).
4. Provide the Request details as below. Required attributes for each list varies based on the selected list. The table below shows which
basket items are needed for which list.


335

 {
"OwnerAccountNumber": "XXXXXXXXX",
"SubscriptionId": "XXXXXXXXX",
"AgentId": "53243463",
"Division": "Webchat Saves",
"Channel": "InboundCC",
"SubChannel": "VADR",
"OrderType": "34443",
"CaseId": "U-450043",
"DealId": "1",
"RecommendationId": "U-45004",
"ProductType": "Handset",
"LoanEligibilityStatus": "ELIGIBLE"
}Sample Handset Request:
{
"OwnerAccountNumber": "XXXXXXXX",
"SubscriptionId": "XXXXXXX",
"Division": "Webchat Saves",
"AgentId": "53243463",
"Channel": "InboundCC",
"SubChannel": "VADR",
"OrderType": "34443",
"CaseId": "U-450043",
"RecommendationId": "U-45004",
"ProductType": "Tariff",
"LoanEligibilityStatus": "ELIGIBLE",
"LineItems": [
{
"ProductId": "094406",
"ProductType": "Handset"
}]
}Sample Tariff Request:
{
"OwnerAccountNumber": "XXXXXXXX",
"SubscriptionId": "-XXXXXXXX",
"AgentId": "53243463",
"Division": "Webchat Saves",
"Channel": "InboundCC",
"SubChannel": "VADR",
"OrderType": "34443",Sample Addon Request


336

 "CaseId": "U-450043",
"DealId": "1",
"RecommendationId": "U-45004",
"ProductType": "Addon",
"LoanEligibilityStatus": "ELIGIBLE",
"LineItems": [{
"ProductId": "111719",
"ProductType": "Tariff",
"PriceExcludingVAT": 120,
"PriceIncludingVAT": 100
}]
}
{
"OwnerAccountNumber": "XXXXXXXX",
"SubscriptionId": "-XXXXXXXX",
"Division": "Webchat Saves",
"AgentId": "53243463",
"Channel": "InboundCC",
"SubChannel": "VADR",
"OrderType": "34443",
"CaseId": "U-450043",
"RecommendationId": "U-45004",
"ProductType": "Insurance",
"LoanEligibilityStatus": "ELIGIBLE",
"LineItems": [
{
"ProductId": "094406",
"ProductType": "Handset"
}]
}Sample Insurance List Request
{
"OwnerAccountNumber": "XXXXXXXX",
"SubscriptionId": "-XXXXXXXX",
"Division": "Webchat Saves",
"AgentId": "53243463",
"Channel": "Retail",
"SubChannel": "retail",
"OrderType": "34443",
"CaseId": "U-450043",
"RecommendationId": "U-45004",
"ProductType": "Discount",
"LoanEligibilityStatus": "ELIGIBLE",
"LineItems": [
{Sample Discount List Request


337

5. Provide the authentication details."ProductId": "112176",
"ProductType": "Tariff",
"PriceIncludingVAT": 120,
"PriceExcludingVAT": 100,
"ChildLineItems":[{
"ProductId": "104019",
"ProductType": "Addon",
"PriceExcludingVAT": 5,
"Classification": "Promotion"
},
{
"ProductId": "104015",
"ProductType": "Addon",
"PriceExcludingVAT": 2,
"Classification": "Promotion"
}]
},
{
"ProductId": "111719",
"ProductType": "Insurance",
"PriceExcludingVAT": 50
}]
}
Note : In the End-Point URL make sure you’re hitting the request for the correct environment. dev-1. The URL for dev-1 env -
https://pega.data.dev1.vodafoneaws.co.uk/prweb/PRRestService/aom/v1/productlist


338
6. Provide Header details.
Will we provide password here?
7 . Send the Request and check the Response.


339
Verify the Response :
1. Verify the response in SOAP UI. For each list, related list items (tariffs, devices, etc.) will be listed.
2. To check the errors in the DB you can use the query below. In the error_message and metadata fields you can find the explanation of the
error and the record causing the error.
select * from aom.aom_error
where process_name = 'GetProductList API'
order by error_timestamp desc;


340
Assisted Upgrade - GetRecommendations End-To-End Testing:
Assisted Upgrade – Get Recommendation API End-To-End Testing:
GetRecommendationAPI is triggered to get the top recommendations for the customer.
Customer Data should be populated by calling GetCustomerAPI, before making Get Recommendation call.
Configure SOAP UI:-
To test any real-time functionalities, either of these tools - SOAP UI & Post Man can be used.
Download and install the SOAP UI/Postman tools.
Create a new Rest Project from the file menu.


341
1. Configure the application End Point URL as shown below.
 GetCustomer API:-
 To execute the GetCustomer API, the below request details are required.
After executing the request, the response will have all the customer, GPSL and CRE type details are stored in the SubscriptionXCAR
dataset.
The below is the sample response for the GetCustomerAPI.
{
"Subscriptions": [   {


342
"SubscriptionType": "Mobile Service",
"ProductRoot": [      {
"FulfilmentItemCode": "Mobile Service",
"ProductName": "PAYM",
"BuyoutCost": 74613,
"UpfrontCost": 4900
}],
"ContractStartDate": "20210130T075941.009 GMT",
"ServiceNumber": "447847897469",
"SubscriptionId": "-212978131",
"OriginalConnectionDate": "20200824T075941.009 GMT",
"ContractEndDate": "20220810T075941.009 GMT",
"LastUsedDevice":       {
"RearCameraResolution": "",
"ScreenDisplaySize": "",
"Has5G": false,
"Manufacturer": "PROTO",
"BatteryCapacity": "",
"FrontCameraResolution": "",
"MarketingName": "PROTO"
},
"RetentionEligibility":       {
"AdditionalInformation":          {
"CUST_BASE_INDICATOR": "true",
"MAX_PLAN_DISCOUNT": "10"
},
"Type": "NORMALSIMOFLEX",
"EarlyUpgradeFee":          {
"FeeExcludingVAT": 2000,
"FeeIncludingVAT": 1800
},
"NormalStartDateTime": "20200825T100428.671 GMT",
"EarlyStartDateTime": "20200825T100428.671 GMT",
"Indicator": false,
"Reason": "There is no eligible Retention for any upgrade"
}


343
 GetRecommendationsAPI:-
 Provide the required customer details and execute the request when secondary context=NBA.
Sample Request for RefineBy:}],
"AcccountCreatedDate": "2012-12-12T00:00:00",
"AccountNumber": "094392136"
}
{
"AgentId":"Omni"
,"CaseId":"XXXXXXXXXX"
,"Channel":"InboundCC"
,"Division": "Webchat Saves",
,"LoanEligibilityStatus":"ELIGIBLE"
,"OrderType":"Service"
,"OwnerAccountNumber":"XXXXXXX"
,"PrimaryContext":"Upgrade"
,"pxObjClass":"VFUK-VADR-Int-GR-RequestBody"
,"SecondaryContext":"NBA"
,"SubscriptionId":"XXXXXXX"
,"SubChannel":"VADR"
}Sample  Request:
{
"AgentId":"Omni"
,"CaseId":"447847897469"
,"Channel":"InboundCC"
,"Division":"Webchat Saves"
,"LoanEligibilityStatus":"ELIGIBLE"
,"OrderType":"Service"
,"OwnerAccountNumber":"094392136" ,"PrimaryContext":"Upgrade"
,"pxObjClass":"VFUK-VADR-Int-GR-RequestBody"
,"SecondaryContext":"RefineBy”
,"SubscriptionId":"-212978131"
,"SubChannel":"VADR"
,"HandsetManufacturer":"Apple"
,"HandsetModel":"Apple iPhone 6s Plus 64Gb space grey (Nearly New)"
,"Has5G":"True"
,"NearlyNew":"True"
}


344
Execute the request and the below response will give the recommendations with LineItems(Tariff, Handset with stock), ChildItems
(AddOn,Discount).
 Note : In the End-Point URL make sure you’re hitting the request for the correct environment. dev-1.
 The URL for dev-1 env - https://pega.data.dev1.vodafoneaws.co.uk/prweb/PRRestService/aom/v1/recommendations.
Verify the Response :
Verify the response in SOAP UI. For each recommendation, related line items(tariffs, handsets) and child items(discounts, AddOns)  will be
listed.
To check the errors in the DB you can use the query below. In the error_message and metadata fields you can find the explanation of the
error and the record causing the error.
select * from aom.aom_error
where process_name = 'GetRecommendations API'
order by error_timestamp desc;
-314291028_res …
09 Jul 2021, 01:58 PMnse.xml


345
Email Template
Making a HTML dynamic for email which goes out to customer via PEGA Marketing

Emails sent to customers can be built using HTML. An email goes to customer via PEGA Marketing.
This document talks about using the html code (received from the business) in a PEGA email template so that contents of the email can be
made dynamic.

Document refers to a Vodafone email html used as part of Batch NBA email functionality.
Important points:
HTML is provided by Vodafone via email or uploaded to Jira.
Relevant contents of html are made dynamic, with data coming from sources like Proposition Management tool, Models, DB table etc.
VF provides the info about which elements are to be made dynamic e.g., offer header, description, price, terms & conditions etc.
Html structure, any html tags, CSS, JavaScript are not changed by Adqura. If any needs changing, should go back to Vodafone.

For the purpose of this document, below proposition structure is considered, content of which is driven by the Proposition Management
Tool or the PM Tool.

Offer
MobileAddmobile
AddMobileSIMO
AddTablet
AddMobilewithhandset
AddSmartwatch

Email displaying more than one offer needs PEGA parent child bundling as follows:

Treatment (Email channel)
MobileAddmobile_Email (Parent): Dummy treatment, required for bundling. Needs ‘Send Email’ shape.
AddMobileSIMO_Email (Child)
AddTablet_Email (Child)
AddMobilewithhandset_Email (Child)
AddSmartwatch_Email (Child)

VF propositions are further structured as offer variations, offer to offer variations, treatment variations and treatment to treatment variations.


346
E.g., an offer can have a default variation or more than one variation.
Treatment is a combination of offer and channel.
Treatment variation can be default or more than one variation e.g., a SmartWatch offer email treatment can have two variations to go to the
customer, say one for Apple smart watch, another for Android smart watch.

Email content for a specific treatment variant, that needs to come from PM Tool is stored in ‘Treatment to Treatment Variation’ screen.

Step 1: Creating the Template

VF provides the .html file. If the file is double clicked, it opens up in a web browser.
To see the html code of the file > right click > and open in a text/html editor.

For the above-mentioned proposition structure, the parent email treatment should have an offer flow created.

OR

Search Action: MobileAddmobile_Email (PegaMKT-Work-Offer-CrossSell-Email) > Flow > Send Email shape > Treatment name:
MobileAddmobile_Batch_Email_Template (This is the placeholder for html code).

Clicking
beside the treatment name, will open it or create new with nothing inside it.


347
Then copy the entire html code opened in the html editor to the treatment, like below.

Inspecting the HTML to find a specific element that needs to be made dynamic.

E.g. make the first name dynamic i.e. let the data for first name come from the database table.

After the html code is pasted to PEGA treatment there is no further need of the html editor. It can be closed.

Now, open the HTML file in any web browser. For the purpose of this document, Chrome is used.
To find the html code for a particular area, right click that part and click Inspect.
E.g. as shown below, right click on the first name > Inspect.


348

The browser will then be split in to two windows as shown below. The bottom part will show the code.

In this way, code snippet for first name is located that will replaced by a Pega tag in the next step.


349
Step 2: Make contents of the html dynamic
E.g.
Hello $(TG_FIRSTNAME),

$(TG_FIRSTNAME) is replaced by a pega tag as:
Hello
<pega:reference name=".OfferData.FirstName" format="DisplayAsLiteral"> </pega:reference>,

First name data comes from database table and mapped to the .FirstName attribute in a PEGA strategy like below.

Likewise, suppose the description for the offer in the email should come from PM Tool. In such a case, the description is held in one of the
variables in ‘Treatment to Treatment variation’ screen and mapped in the strategy as above.

Some more information on the .OfferData used in above example to get the first name
Sdf .OfferData is part of PegaMKT-Work-Offer class. Similar to offer data

1. PegaMKT-Data-Customer: Customer class to get the Subscription related data
2. PegaMKT-Work-Offer > .OfferData to get the Offer related data
3. PegaMKT-Work-Offer > .BundleOfferMembers to get child offer data


350
Using a Pega forEach rule
One scenario to refer .BundleOfferMembers inside a template is when the child offers have similar display structure (different data of
course) inside the email.

<%{int counter = 0;%>
<pega:forEach name=".BundleOfferMembers">
<pega:withEmbedded name="$this" >
  <% counter++; %>
<% if(counter<=4){ %>

<img src="<pega:reference name=".OfferData.ImageURL" format="DisplayAsLiteral"></pega:reference>"

<pega:reference name=".OfferData.OfferHeader" format="DisplayAsLiteral"></pega:reference>/>

<pega:reference name=".OfferData.OfferDescription" format="DisplayAsLiteral"></pega:reference>
<pega:reference name=".OfferData.OfferPrice" format="DisplayAsLiteral"></pega:reference>

} %>
</pega:withEmbedded>
</pega:forEach>
<% } %>

Using a Pega When rule
Scenario to use a When rule:
E.g. a sentence in the email should be different based on customer’s data plan e.g. one version for limited plan and another version for
unlimited data plan.

In such a case, before displaying the sentence check customer’s data plan using a when rule like below:

<!-- Limited sentence -->
<pega:when name="CheckForLimitedDataPlan">
<pega:reference name=".OfferData.EmailCopy" format="DisplayAsLiteral"></pega:reference>
</pega:when>

<!-- Unlimited sentence -->
<pega:when name="CheckForUnlimitedDataPlanBatchNBA">


<!-- Unlimited sentence -->
<pega:when name="CheckForUnlimitedDataPlanBatchNBA">
<pega:reference name=".OfferData.EmailCopy1" format="DisplayAsLiteral"></pega:reference>


351
</pega:when>

EmailCopy has the copy for limited data plan.
EmailCopy1 has the copy for unlimited data plan.

A when rule is created in Pega via Records > Decision > When and looks like below:

Dynamic Variables
Like above, offer attributes e.g. offer header, image, description, price etc. can be made dynamic by using dynamic variables that are
present in PM Tool Treatment To Treatment Variations screen.

Step 3: Mapping dynamic variables
E.g for offer image below Pega tag is used in html.


352

<img class="full-width" src="<pega:reference name=".OfferData.ImageURL" format="DisplayAsLiteral"></pega:reference>" width="247"
border="0"/>

In PM Tool, TreatmentDynamicVariable4 holds the image url.
So, TreatmentDynamicVariable4 is mapped to the ImageURL attribute inside a Pega strategy like below:

Strategy: PopulateOutputPropertiesForEmailByBatch

Currently, there are twenty dynamic variables provided in PM tool which means twenty offer attributes can be made dynamic.

Please note that there can be various other sources of data that is displayed in the email, not just PM Tool.
Data can come from Models, database tables etc.
Pega Decisioning logic takes care of retrieving the data and mapping it to the relevant offer attribute.

Once all the steps are completed, a Pega Marketing campaign is required to be created and should be in running state.

Batch NBA at its final stage triggers the campaign and email is sent.

--------------------------- END OF DOCUMENT ---------------------------


353
Batch Testing : How-To
NBA Batch is a framework where all the decisions are made to multiple customers at a time.
There are  2 Cases involved in NBA Batch Framework:
1. Batch NBA Case
2. Extractor Case


354
Batch NBA Case Testing : How-To

Introduction to Batch NBA  Case
Checks before the Case execution
How to Trigger Batch NBA  Case
Checks during/after the Case execution
Introduction to Batch NBA Case
There are 3 data flows involved in Batch NBA Case. They’re:
1. PrepareDataForBatchNBA : The PrepareDataForBAtchNBA Data flow reads the data from all the database tables ( Ex:
Subscription,account,Contact etc..) and  prepares the data required for the decisioning logic, then writes the data to a data set
(SubscriptionDataForBatchNBA).
2. IdentifyCustomerIntents : The IdentifyCustomerIntents Data flow reads the data from SubscriptionDataForBatchNBA data set and
evaluate the Intents for each customer record and then writes the data(along with Intents) to SubscriptionDataForBatchNBA Data set.
3. IdentifyBestOBTreatmentsByBatch : The Data flow IdentifyBestOBTreatmentsByBatch reads the data from
SubscriptionDataForBatchNBA Data set and executes the decisioning logic ( and writes the output to BestOBTreatmentsByBatch Data
set.
Checks before the Case execution
1. To Trigger a new Batch NBA Case, check if the Previous Batch NBA Case Status is Resolved-Completed/Resolved-Cancelled.
       1. Go to App Explorer and Search with V F U K - F W - A O M F W - W o r k - B a t c h N B A class name, click on the
         class record as shown below. It will open all instances of the class. (Here Instances = Case work Items).
      2. Open the latest work item /Case. (If required, Sort work Items based on 'Updated on' date).


355
      3. If the status is not Resolved-Competed,Then Update it to become Resolved-Completed.
          Go To Actions → Change Stage → Select End stage → End/Abort .
2. Check Batch NBA Case configurations: We can see the Batch NBA Case configurations here.
Case ID : ID of the Current Running case/ Previous Case.
Case Status : Status of the Current case/ Previous Case. If the case is running the Status changes to Running or if the case is failed to run,
then status changes to Pending-Investigation.
Case Dependencies: If the dependent Case configured in the Case dependency field is running,Then the Batch NBA case will not start
until the Dependent case is completed.
3. Check if the previous Email and SMS Campaign runs were successful:
If there is a failure in previous Email and SMS Campaign runs,Then that should be resolved before triggering the next Batch NBA case. To
verify the Campaign Status:
   Switch to Pega Marketing Portal → Campaigns → Open Email Campaign/SMS Campaign → Go to
Go To Data explorer → AOM Config Data Type → Search  for Batch NBA .