The header of a sales-incentive program: who participates (memberType Resource, Partner, Branch or Customer, optionally narrowed by memberResourceType or memberResourceGroupId), over which window (periodType generates child IncentivePeriod rows on insert - Yearly, Quarterly, Monthly, Weekly, Bi Weekly, Daily), and what is measured and paid (child IncentiveLine rows pairing IncentiveTarget rows with CompensationSlab payout bands). Participants are enrolled as IncentiveResource rows with per-resource targets in IncentiveResourceTarget. The incentive engine only evaluates plans with Status Approved. Scope fields (branch, member type, partner account/group, period type, member resource type) are locked once transactions exist, and a plan cannot name both a partner account and a partner account group.
Fields
| Field | Label | Type | Required | What it does |
AccountGroupId | Account Group | Lookup → AccountGroup | | |
AccountId | Account | Lookup → Account | | |
BranchId | Branch | Lookup → Branch | | |
BusinessHoursId | Business Hours | Lookup → BusinessHours | | |
CompensationEligibility | Compensation Eligibility | PickList | | Values: Any One Max, Any One Min, Formulae. |
CompensationEligibilityFormula | Compensation Eligibility Formula | Text | | |
CopySourceTargets | Copy Source Targets | Boolean | Yes | Write-and-clear trigger flag: the save handler resets it to false after an update. No first-party code performs a target copy when it is set, so setting it currently has no other effect. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
ExternalId | External | Text | | |
Id | Id | Guid | Yes | |
MemberResourceGroupId | Resource Group | Lookup → ResourceGroup | | |
MemberResourceType | Member Resource Type | PickList | | Optional narrowing of participating resources; only valid when MemberType is Resource - validation rejects it otherwise. Locked once transactions exist. Values: Service Advisor. |
MemberType | Member Type | PickList | | Who participates: Resource, Partner, Branch or Customer. Decides which id on the IncentiveResource enrollment (resourceId, partnerAccountId, branchId or contactId) is matched against PerformanceKPI dimension keys. Locked once the plan has enrolled resources or targets. Values: Partner, Dealer, Branch, Resource, Role. |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountGroupId | Account Group | Lookup → AccountGroup | | Mutually exclusive with PartnerAccountId and with BranchId - validation rejects a plan that sets the group together with either of them. |
PartnerAccountId | Account | Lookup → Account | | |
PeriodEndDate | Period End Date | Date | Yes | |
PeriodStartDate | Period Start Date | Date | Yes | |
PeriodType | Period Type | PickList | Yes | Yearly, Quarterly, Monthly, Weekly, Bi Weekly or Daily - drives the IncentivePeriod rows generated on insert. Daily, Weekly and Bi Weekly plans may span at most one year. Locked once transactions exist. Values: Weekly, Monthly, Yearly. |
RecordTypeId | Record Type | Guid, hidden | | |
SourceIncentivePlanId | Incentive Plan | Lookup → IncentivePlan | | Self-reference linking a plan derived from another plan back to its source; the source lists its derived plans. |
Status | Status | PickList | | The incentive engine only evaluates lines of plans with Status Approved; any other status leaves compensation lines unprocessed. Values: Draft, Pending Approval, Approved. |
SupplierAccountId | Account | Lookup → Account | | |
UIProps | UI Props | Text | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
CreateCompensationSlab | Create Compensation Slab | ServerAction (CreateCompensationSlab) | Seeded as a server action but no server handler implements it - executing it saves the record and performs no other work (the rewards designer creates CompensationSlab rows directly through the data API instead). Only a tenant automation script bound to this action name would give it behavior. |
CreateIncentiveLine | Create Incentive Line | ServerAction (CreateIncentiveLine) | Seeded as a server action but no server handler implements it - executing it saves the record and performs no other work (the rewards designer creates IncentiveLine rows directly through the data API instead). Only a tenant automation script bound to this action name would give it behavior. |
CreateIncentiveTarget | Create Incentive Target | ServerAction (CreateIncentiveTarget) | Seeded as a server action but no server handler implements it - executing it saves the record and performs no other work (the rewards designer creates IncentiveTarget rows directly through the data API instead). Only a tenant automation script bound to this action name would give it behavior. |
New | New | New | New |