Table of Contents |
---|
What are Hidden Tab Rules in Campaign Builder
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.Imagine these rules as a behind-the-scenes script that guides the system. They determine things like
Tip |
---|
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. |
Info |
---|
You can find these rules in the campaignBuilderConfigs.js file under the TAB_RULES section. |
...
List of Hidden Tab Rules
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.
...
with applyRuleInChildItem: true
: If it match matches with a parent record, then apply the following changes in its child records:
...
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/code
Code Block | ||
---|---|---|
| ||
{ 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" ] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the 3 conditions are met:
...
with applyRuleInChildItem: false
: If it match matches with a parent record, then apply the following changes in the parent record:
...
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/code
Code Block | ||
---|---|---|
| ||
{ 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" ] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the 3 conditions are met:
...
with applyRuleInChildItem: true
: If it match matches 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/code
Code Block | ||
---|---|---|
| ||
{ 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" ] } |
...
If the rule matches with an Individual item (parent), then it’ll make read-only a field in child records and also it will also set an action as hidden.
Definition
...
with logicalConnector AND
(all condition conditions should be met):
when the 4 conditions are met:
...
hide the following action:
delete
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ 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"] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the 3 conditions are met:
...
with sublogicalConnector AND
(all condition conditions should be met):
when 1 condition are is met:
advendio__componentoptional__c
!=
true
If it match matches 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/code
Code Block | ||
---|---|---|
| ||
{ 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"] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the 3 conditions are met:
...
advendio__ratediscount3abs__c
advendio__thirdpartycommissionabs__c
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ 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" ] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the 3 conditions are met:
...
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/code
Code Block | ||
---|---|---|
| ||
{ 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" ] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the conditions are met:
...
with applyRuleInChildItem: false
: If it match matches with a parent record, then apply the following changes:
hide the actions:
delete
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ name: "ADvendio Rules - Connected item", logicalConnector: "AND", conditions: [ { fieldpath: "advendio__connecteditem__c", operator: "!=", value: "null" } ], applyRuleInChildItem: false, hiddenActions: ["delete"] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the conditions are met:
...
with subLogicalConnector AND
(all condition conditions should be met):
when the subConditions are met:
...
with applyRuleInChildItem: true
: If it match matches with a parent record, then apply the following changes in child records:
hide the actions:
delete
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ 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"] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the conditions are met:
...
with applyRuleInChildItem: false
: If it match matches with a parent record, then apply the following changes in the parent record:
hide the actions:
split
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ name: "ADvendio Rules - Disabled Split Action (Parent)", logicalConnector: "AND", conditions: [ { fieldpath: "recordtype.developername", operator: "==", value: "Packet" } ], applyRuleInChildItem: false, hiddenActions: ["split"] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the conditions are met:
...
with applyRuleInChildItem: true
: If it match matches with a parent record, then apply the following changes in child records:
hide the actions:
split
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ name: "ADvendio Rules - Disabled Split Action (Child)", logicalConnector: "AND", conditions: [ { fieldpath: "recordtype.developername", operator: "==", value: "Packet" } ], applyRuleInChildItem: true, hiddenActions: ["split"] } |
...
with applyRuleInChildItem: false
: If it match matches with a parent record, then apply the following changes in the parent record:
make hidden the following fields:
advendio__targetnet__c
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ 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 conditions should be met):
when the conditions are met:
...
with applyRuleInChildItem: false
: If it match matches with a parent record, then apply the following changes in the parent record:
...
"ADvendio__DistributionUnit__c"
Technical definition/code
Code Block | ||
---|---|---|
| ||
{ 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 condition 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.
...
ADvendio Rules - With a selected rebate in kind condition applied, the special discount is read-only
:
with logicalConnector OR
(any condition could be met):
...
"ADvendio__Rate_Discount_4__c"
Technical definition/code
Code Block |
---|
{ 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 condition that is rebate in kind (as a related record), then it’ll make the fields ADvendio__Quantity__c
readOnly in that record.
...
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 conditions should be met):
when the conditions are met:
...
make read only the following fields:
"ADvendio__Quantity__c"
Technical definition/code
Code Block |
---|
{ 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 condition that is rebate in kind (as a field), then it’ll make the fields ADvendio__Quantity__c
readOnly in that record.
...
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 conditions should be met):
when the conditions are met:
...
make read only the following fields:
"ADvendio__Quantity__c"
Technical definition/code
Code Block |
---|
{ 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" ] } |
...
with logicalConnector AND
(all condition conditions should be met):
when the conditions are met:
...
"ADvendio__RateCalculationQuantity__c"
Technical definition/code
Code Block |
---|
{
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"]
} |
Rule 18: "ADvendio Rules - Set Ad Price and Media Campaign as read-only - Parent"
Always make the fields ADvendio__Ad_Price__c
, ADvendio__Media_Campaign__c
and CurrencyIsoCode
read-only for Child Items
Definition
ADvendio Rules - Set Ad Price and Media Campaign as read-only - Child
:
with logicalConnector AND
(all conditions should be met):
when the conditions are met:
user.isactive == true
make read only the following fields:
"ADvendio__Ad_Price__c"
"ADvendio__Media_Campaign__c"
"CurrencyIsoCode"
Technical definition/code
Code Block |
---|
{
name: "ADvendio Rules - Set Ad Price and Media Campaign as read only - Child",
logicalConnector: "AND",
conditions: [
{
fieldpath: "user.isactive",
operator: "==",
value: "true"
}
],
applyRuleInChildItem: true,
readonlyFields: ["ADvendio__Ad_Price__c", "ADvendio__Media_Campaign__c", "CurrencyIsoCode"]
} |