Hidden Tab Rules in Campaign Builder refer to a set of predefined instructions that control how various elements behave within a campaign management system. These instructions are vital for maintaining data accuracy and consistency, especially when dealing with packages and individual items.
Hidden Tab Rules determine which fields can't be changed, which actions are hidden, or how child records behave based on specific criteria to ensure a smooth and controlled operation.
You can find these rules in the campaignBuilderConfigs.js file under the TAB_RULES section.
Rule 1: "ADvendio Rules - Linear packages (Child)"
If the rule matches with a Linear item (Parent), then it’ll set some fields of its child records as read-only.
Definition
ADvendio Rules - Linear packages (Child)
:
with logicalConnector AND
(all conditions should be met):
when the 3 conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername
==
Packet
advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix
==
ADvendio
advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c
==
Linear
with applyRuleInChildItem: true
: If it match with a parent record, then apply the following changes in its child records:
make read-only the following fields:
from_until
advendio__from_date__c
advendio__until_date__c
advendio__quantity__c
advendio__sales_price__c
advendio__guaranteed_ai__c
advendio__frequency__c
advendio__clickrate__c
advendio__ac__c
advendio__rate_discount_2_custom__c
advendio__rate_discount_3_custom__c
advendio__rate_discount_4__c
advendio__surchargesalesprice__c
advendio__surchargeb3__c
advendio__surchargeb3abs__c
advendio__surchargeb2__c
advendio__surchargeb2abs__c
advendio__agency_commission__c
advendio__thirdpartycommissioncustom__c
advendio__quantity_discount_custom__c
advendio__targetnet__c
advendio__budgetn2__c
Technical definition
{ name: "ADvendio Rules - Linear packages (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Linear" } ], applyRuleInChildItem: true, readonlyFields: [ "from_until", "advendio__from_date__c", "advendio__until_date__c", "advendio__quantity__c", "advendio__sales_price__c", "advendio__guaranteed_ai__c", "advendio__frequency__c", "advendio__clickrate__c", "advendio__ac__c", "advendio__rate_discount_2_custom__c", "advendio__rate_discount_3_custom__c", "advendio__rate_discount_4__c", "advendio__surchargesalesprice__c", "advendio__surchargeb3__c", "advendio__surchargeb3abs__c", "advendio__surchargeb2__c", "advendio__surchargeb2abs__c", "advendio__agency_commission__c", "advendio__thirdpartycommissioncustom__c", "advendio__quantity_discount_custom__c", "advendio__targetnet__c", "advendio__budgetn2__c" ] }
Rule 2: "ADvendio Rules - Individual packages (Parent)"
If the rule matches with an Individual item (parent), then it’ll make read-only and hide some fields in that record.
Definition
ADvendio Rules - Individual packages (Parent)
:
with logicalConnector AND
(all condition should be met):
when the 3 conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername
==
Packet
advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix
==
ADvendio
advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c
==
Individual
with applyRuleInChildItem: false
: If it match with a parent record, then apply the following changes in the parent record:
make read-only the following fields:
from_until
advendio__from_date__c
advendio__until_date__c
advendio__quantity__c
advendio__sales_price__c
advendio__guaranteed_ai__c
advendio__frequency__c
advendio__clickrate__c
advendio__rate_discount_2_custom__c
advendio__rate_discount_3_custom__c
advendio__rate_discount_4__c
advendio__rate_discount_1__c
advendio__quantity_discount_custom__c
advendio__surchargesalesprice__c
advendio__surchargeb3__c
advendio__surchargeb3abs__c
advendio__surchargeb2__c
advendio__surchargeb2abs__c
advendio__thirdpartycommissioncustom__c
advendio__targetnet__c
advendio__budgetn2__c
Technical definition
{ name: "ADvendio Rules - Individual packages (Parent)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Individual" } ], applyRuleInChildItem: false, readonlyFields: [ "from_until", "advendio__from_date__c", "advendio__until_date__c", "advendio__quantity__c", "advendio__sales_price__c", "advendio__guaranteed_ai__c", "advendio__frequency__c", "advendio__clickrate__c", "advendio__rate_discount_2_custom__c", "advendio__rate_discount_3_custom__c", "advendio__rate_discount_4__c", "advendio__rate_discount_1__c", "advendio__quantity_discount_custom__c", "advendio__surchargesalesprice__c", "advendio__surchargeb3__c", "advendio__surchargeb3abs__c", "advendio__surchargeb2__c", "advendio__surchargeb2abs__c", "advendio__thirdpartycommissioncustom__c", "advendio__targetnet__c", "advendio__budgetn2__c" ] }
Rule 3: "ADvendio Rules - Individual packages (Child) - 1"
If the rule matches with an Individual item (parent), then it’ll make read-only some fields in child records.
Definition
ADvendio Rules - Individual packages (Child) - 1
:
with logicalConnector AND
(all condition should be met):
when the 3 conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername
==
Packet
advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix
==
ADvendio
advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c
==
Individual
with applyRuleInChildItem: true
: If it match with a parent record, then apply the following changes in child records:
make read-only the following fields:advendio__rate_discount_1__c
advendio__agency_commission__c
advendio__ac__c
Technical definition
{ name: "ADvendio Rules - Individual packages (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Individual" } ], applyRuleInChildItem: true, readonlyFields: [ "advendio__rate_discount_1__c", "advendio__agency_commission__c", "advendio__ac__c" ] }
Rule 4: "ADvendio Rules - Individual packages (Child) - 2"
If the rule matches with an Individual item (parent), then it’ll make read-only a field in child records and also it will set an action as hidden.
Definition
ADvendio Rules - Individual packages (Child) - 2
:
with logicalConnector AND
(all condition should be met):
when the 4 conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername
==
Packet
advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix
==
ADvendio
advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c
==
Individual
advendio__ad_price__r.advendio__ad_Spec__r.advendio__fixedquantitypackage__c
==
true
with applyRuleInChildItem: true
: If it match with a parent record, then apply the following changes in child records:
make read-only the following field:
advendio__quantity__c
hide the following action:
delete
Technical definition
{ name: "ADvendio Rules - Individual packages (Child) - 2", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Individual" }, { fieldpath: "advendio__ad_price__r.advendio__ad_Spec__r.advendio__fixedquantitypackage__c", operator: "==", value: "true" } ], applyRuleInChildItem: true, readonlyFields: ["advendio__quantity__c"], hiddenActions: ["delete"] }
Rule 5: "ADvendio Rules - Individual packages (Child) - 3"
If the rule matches with an Individual item (parent), then it’ll set an action as hidden.
Definition
ADvendio Rules - Individual packages (Child) - 2
:
with logicalConnector AND
(all condition should be met):
when the 3 conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername
==
Packet
advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix
==
ADvendio
advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c
==
Individual
with applyRuleInChildItem: true
and
with sublogicalConnector AND
(all condition should be met):
when 1 condition are met:
advendio__componentoptional__c
!=
true
If it match with a parent record and child record at the same time, then apply the following changes in child records:
hide the actions:
delete
copy
Technical definition
{ name: "ADvendio Rules - Individual packages (Child) - 3", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Individual" } ], subLogicalConnector: "AND", subConditions: [ { fieldpath: "advendio__componentoptional__c", operator: "!=", value: "true" } ], applyRuleInChildItem: true, hiddenActions: ["delete", "copy"] }
Rule 6: "ADvendio Rules - Prorated packages (Parent)"
If the rule matches with a Prorated item (parent), then it’ll make read-only some fields in that record.
Definition
ADvendio Rules - Prorated packages (Parent)
:
with logicalConnector AND
(all condition should be met):
when the 3 conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername
==
Packet
advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix
==
ADvendio
advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c
==
Prorated
with applyRuleInChildItem: false
: If it match with a parent record, then apply the following changes in the parent record:
make read-only the following fields:
advendio__ratediscount3abs__c
advendio__thirdpartycommissionabs__c
Technical definition
{ name: "ADvendio Rules - Prorated packages (Parent)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Prorated" } ], applyRuleInChildItem: false, readonlyFields: [ "advendio__ratediscount3abs__c", "advendio__thirdpartycommissionabs__c" ] }
Rule 7: "ADvendio Rules - Prorated packages (Child)"
If the rule matches with a Prorated item (parent), then it’ll make read-only and hide some fields in child records.
Definition
ADvendio Rules - Prorated packages (Child)
:
with logicalConnector AND
(all condition should be met):
when the 3 conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername
==
Packet
advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix
==
ADvendio
advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c
==
Prorated
with applyRuleInChildItem: true
: If it match with a parent record, then apply the following changes in child records:
make read-only the following field:
from_until
advendio__from_date__c
advendio__until_date__c
advendio__quantity__c
advendio__sales_price__c
advendio__guaranteed_ai__c
advendio__frequency__c
advendio__clickrate__c
advendio__ratediscount1abscustom__c
advendio__ratediscount2abscustom__c
advendio__ratediscount3abscustom__c
advendio__ratediscount4abscustom__c
advendio__quantity_discount_custom__c
advendio__surchargeb3abs__c
advendio__surchargeb2abs__c
advendio__thirdpartycommissioncustom__c
advendio__thirdpartycommissioncustom__c
advendio__agency_commission__c
advendio__ac__c
advendio__ratediscount3abs__c
advendio__thirdpartycommissionabs__c
advendio__targetnet__c
advendio__budgetn2__c
Technical definition
{ name: "ADvendio Rules - Prorated packages (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername", operator: "==", value: "Packet" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.recordtype.namespaceprefix", operator: "==", value: "ADvendio" }, { fieldpath: "advendio__ad_price__r.advendio__ad_spec__r.advendio__distribution__c", operator: "==", value: "Prorated" } ], applyRuleInChildItem: true, readonlyFields: [ "from_until", "advendio__from_date__c", "advendio__until_date__c", "advendio__quantity__c", "advendio__sales_price__c", "advendio__guaranteed_ai__c", "advendio__frequency__c", "advendio__clickrate__c", "advendio__ratediscount1abscustom__c", "advendio__ratediscount2abscustom__c", "advendio__ratediscount3abscustom__c", "advendio__ratediscount4abscustom__c", "advendio__quantity_discount_custom__c", "advendio__surchargeb3abs__c", "advendio__surchargeb2abs__c", "advendio__thirdpartycommissioncustom__c", "advendio__thirdpartycommissioncustom__c", "advendio__agency_commission__c", "advendio__ac__c", "advendio__ratediscount3abs__c", "advendio__thirdpartycommissionabs__c", "advendio__targetnet__c", "advendio__budgetn2__c" ] }
Rule 8: "ADvendio Rules - Connected item"
If the rule matches with an Individual item (parent), then it’ll set an action as hidden.
Definition
ADvendio Rules - Connected item
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
advendio__connecteditem__c
!=
NULL
with applyRuleInChildItem: false
: If it match with a parent record, then apply the following changes:
hide the actions:
delete
Technical definition
{ name: "ADvendio Rules - Connected item", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__connecteditem__c", operator: "!=", value: "null" } ], applyRuleInChildItem: false, hiddenActions: ["delete"] }
Rule 9: "ADvendio Rules - Connected item (Child)"
If the rule matches with an Individual item (parent), then it’ll set an action as hidden in the child records.
Definition
ADvendio Rules - Connected item (Child)
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
user.isactive
==
TRUE
with subLogicalConnector AND
(all condition should be met):
when the subConditions are met:
advendio__connecteditem__c
!=
NULL
with applyRuleInChildItem: true
: If it match with a parent record, then apply the following changes in child records:
hide the actions:
delete
Technical definition
{ name: "ADvendio Rules - Connected item (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "user.isactive", operator: "==", value: "true" } ], subLogicalConnector: "AND", subConditions: [ { fieldpath: "advendio__connecteditem__c", operator: "!=", value: "null" } ], applyRuleInChildItem: true, hiddenActions: ["delete"] }
Rule 10: "ADvendio Rules - Disabled Split Action (Parent)"
If the rule matches with a Package item (parent), then it’ll set an action as hidden in the record.
Definition
ADvendio Rules - Disabled Split Action (Parent)
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet
with applyRuleInChildItem: false
: If it match with a parent record, then apply the following changes in the parent record:
hide the actions:
split
Technical definition
{ name: "ADvendio Rules - Disabled Split Action (Parent)", logicalConnector: "AND", conditions: [ { fieldpath: "recordtype.developername", operator: "==", value: "Packet" } ], applyRuleInChildItem: false, hiddenActions: ["split"] }
Rule 11: "ADvendio Rules - Disabled Split Action (Child)"
If the rule matches with a Package item (parent), then it’ll set an action as hidden in the child records.
Definition
ADvendio Rules - Disabled Split Action (Child)
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
advendio__ad_price__r.advendio__ad_spec__r.recordtype.developername == Packet
with applyRuleInChildItem: true
: If it match with a parent record, then apply the following changes in child records:
hide the actions:
split
Technical definition
{ name: "ADvendio Rules - Disabled Split Action (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "recordtype.developername", operator: "==", value: "Packet" } ], applyRuleInChildItem: true, hiddenActions: ["split"] }
Rule 12: "ADvendio Rules - Net Calculation Hide Target Net - 1"
If the rule matches with an Item (parent or child in a package or not a package item), then it’ll make the field advendio__targetnet__c
hidden in that record.
Definition
ADvendio Rules - Net Calculation Hide Target Net - 1
:
with logicalConnector OR
(any condition could be met):
when any of the conditions are met:
advendio__billing_category__c == Fixed Price
advendio__billing_category__c == CPD
advendio__billing_category__c == CPW
advendio__billing_category__c == CPMo
advendio__billing_category__c == CPY
with applyRuleInChildItem: false
: If it match with a parent record, then apply the following changes in the parent record:
make hidden the following fields:
advendio__targetnet__c
Technical definition
{ name: "ADvendio Rules - Net Calculation Hide Target Net - 1", logicalConnector: "OR", conditions: [ { fieldpath: "advendio__billing_category__c", operator: "==", value: "Fixed Price" }, { fieldpath: "advendio__billing_category__c", operator: "==", value: "CPD" }, { fieldpath: "advendio__billing_category__c", operator: "==", value: "CPW" }, { fieldpath: "advendio__billing_category__c", operator: "==", value: "CPMo" }, { fieldpath: "advendio__billing_category__c", operator: "==", value: "CPY" } ], applyRuleInChildItem: false, hiddenFields: ["advendio__targetnet__c"] }
Rule 13: "ADvendio Rules - Read only fields for Budget Billing Category"
If the billing category is Budget
, then it’ll make the fields ADvendio__Quantity__c
and ADvendio__DistributionUnit__c
hidden in that record.
Definition
ADvendio Rules - Read only fields for Budget Billing Category
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
advendio__billing_category__c == Budget
with applyRuleInChildItem: false
: If it match with a parent record, then apply the following changes in the parent record:
make hidden the following fields:
"ADvendio__Quantity__c"
"ADvendio__DistributionUnit__c"
Technical definition
{ name: "ADvendio Rules - Read only fields for Budget Billing Category", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__billing_category__c", operator: "==", value: "Budget" } ], applyRuleInChildItem: false, readonlyFields: [ "ADvendio__Quantity__c", "ADvendio__DistributionUnit__c" ] }
Rule 14: "With a selected rebate in kind condition applied, the special discount is read only"
If the item has an applied commitment conditions that is rebate in kind (as a field or a related record) , then it’ll make the fields ADvendio__Rate_Discount_4__c
readOnly in that record.
Definition
ADvendio Rules - With a selected rebate in kind condition applied, the special discount is read only
:
with logicalConnector OR
(any condition could be met):
when the conditions are met:
advendio__rebateinkindcondition__c != NULL
ISREBATEINKIND()
make read only the following fields:
"ADvendio__Rate_Discount_4__c"
Technical definition
{ name: "ADvendio Rules - With a selected rebate in kind condition applied, the special discount is read only", logicalConnector: "OR", conditions: [ { fieldpath: "advendio__appliedcommitmentconditions__r", operator: "ISREBATEINKIND", value: 'true' }, { fieldpath: "advendio__rebateinkindcondition__c", operator: "!=", value: 'NULL' } ], readonlyFields: [ "advendio__rate_discount_4__c" ] }
Rule 15: "For not new items with a selected rebate in kind condition applied (new structure), the quantity is read only"
If the item is new and has an applied commitment conditions that is rebate in kind (as a related record), then it’ll make the fields ADvendio__Quantity__c
readOnly in that record.
Definition
ADvendio Rules - For not new items with a selected rebate in kind condition applied (new structure) , the quantity is read only
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
record.isNew == TRUE
ISREBATEINKIND()
make read only the following fields:
"ADvendio__Quantity__c"
Technical definition
{ name: "ADvendio Rules - For not new items with a selected rebate in kind condition applied, the quantity is read only", logicalConnector: "AND", conditions: [ { fieldpath: "record.isNew", operator: "!=", value: 'true' }, { fieldpath: "advendio__appliedcommitmentconditions__r", operator: "ISREBATEINKIND", value: 'true' } ], readonlyFields: [ "advendio__quantity__c" ] }
Rule 16: "For not new items with a selected rebate in kind condition applied (old structure), the quantity is read only"
If the item is new and has an applied commitment conditions that is rebate in kind (as a field), then it’ll make the fields ADvendio__Quantity__c
readOnly in that record.
Definition
ADvendio Rules - For not new items with a selected rebate in kind condition applied (old structure) , the quantity is read only
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
record.isNew == TRUE
advendio__rebateinkindcondition__c != NULL
make read only the following fields:
"ADvendio__Quantity__c"
Technical definition
{ name: "ADvendio Rules - For not new items with a selected rebate in kind condition applied, the quantity is read only", logicalConnector: "AND", conditions: [ { fieldpath: "record.isNew", operator: "!=", value: 'true' }, { fieldpath: "advendio__appliedcommitmentconditions__r", operator: "ISREBATEINKIND", value: 'true' } ], readonlyFields: [ "advendio__quantity__c" ] }
Rule 17: "For items without Rate Steps, Rate Calculation Quantity is hidden - 1"
If the ad price assigned to the item doesn’t have any applicable rate step (advendio__ad_price__r.advendio__totalapplicableratesteps__c
= 0), then it’ll hide the field ADvendio__RateCalculationQuantity__c
for that record.
Definition
ADvendio Rules - For items without Rate Steps, Rate Calculation Quantity is hidden - 1
:
with logicalConnector AND
(all condition should be met):
when the conditions are met:
advendio__ad_price__r.advendio__totalapplicableratesteps__c == 0
hide the following field:
"ADvendio__RateCalculationQuantity__c"
Technical definition
{ name: "ADvendio Rules - For items without Rate Steps, Rate Calculation Quantity is hidden - 1", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__ad_price__r.advendio__totalapplicableratesteps__c", operator: "==", value: "0" } ], applyRuleInChildItem: false, hiddenFields: ["ADvendio__RateCalculationQuantity__c"] }