Sales Cookie offers many advanced capabilities via its web interface - including draws, splits, overrides, etc. However, some additional (even more) advanced options can also be set on incentive plans using a text-based representation. Advanced options can be set on the Calculations tab of your plan.
========== Deduction-Related Options ==========
NoDeductions=1
This option disables automatic deductions associated with overlapping calculations.
By default, when running a calculation, we automatically find if there are overlapping calculations:
- Associated with the same plan
- Whose rewards have already been released
- Whose start date is the same as the current calculation
- Whose end date is earlier than the current calculation
We then apply deductions to avoid double-payment of commissions for the same sales transactions. This advanced option disables the deduction logic described above.
CumulativeQuarterly=1
This option overrides the deduction logic described above, and enables automatic deductions for all previous calculations within the same quarter.
When this option is enabled, we find if there are other calculations:
- Associated with the same plan
- Whose rewards have been released
- Whose start date is within the same quarter
- Whose end date is earlier than the current calculation
If so, we will apply a deduction to each beneficiary. This is useful if, for example, your sales transaction data for each month is always incremental (ex: total revenue quarter-to-date).
CumulativeSixMonths=1
This option overrides the deduction logic described above, and enables automatic deductions for all previous calculations within the same half-year period.
When this option is enabled, we find if there are other calculations:
- Associated with the same plan
- Whose rewards have been released
- Whose start date is within the same half-year
- Whose end date is earlier than the current calculation
If so, we will apply a deduction to each beneficiary. This is useful if, for example, your sales transaction data for each month is always incremental (ex: total revenue half-year-to-date).
CumulativeYearly=1
This option overrides the deduction logic described above, and enables automatic deductions for all previous calculations within the same calendar year.
When this option is enabled, we find if there are other calculations:
- Associated with the same plan
- Whose rewards have been released
- Whose start date is within the same calendar year
- Whose end date is earlier than the current calculation
If so, we will apply a deduction to each beneficiary. This is useful if, for example, your sales transaction data for each month is always incremental (ex: total revenue YTD).
CumulativeDate=<date>
This option overrides the deduction logic described above, and enables automatic deductions for all previous calculations at or after the specified date.
When this option is enabled, we find if there are other calculations:
- Associated with the same plan
- Whose rewards have been released
- Whose start date is at or after the specified date
- Whose end date is earlier than the current calculation
If so, we will apply a deduction to each beneficiary. This is useful if, for example, your sales transaction data for each month is always incremental (ex: total revenue from a reference date).
CumulativeFrom=<@@CustomVariable>
This option is identical to be above one but allows you to customize the reference date via a user custom variable.
DeductAlways=1
This option enables deductions even if prior or overlapping calculations have not been released.
========== Crediting-Related Options ==========
CreditingOverrideUser=<name>
This option allows calculations to ignore "Owner / Sold By" crediting fields, and always credit a specific user.
For example, if you use CreditingOverrideUser=Joe, all transactions will be credited to any single user whose aliases matches "Joe".
CreditingOverrideUser=@@targets
This option allows calculations to ignore "Owner / Sold By" crediting fields, and credit all target users.
For example, if you use CreditingOverrideUser=@targets, all transactions will be credited to reps who are a target of this plan.
CreditingOverrideTeam=<name>
This option enables calculations to ignore "Team / Territory" crediting fields, and always credit a specific team.
For example, if you use CreditingOverrideTeam=California, all transactions will be credited to any single team whose aliases match "California".
CreditingOverrideTeam=@@targets
This option enables calculations to ignore "Team / Territory" crediting fields, and always credit all target teams.
For example, if you use CreditingOverrideTeam=@targets, all transactions will be credited to teams who are a target of this plan.
CreditsNotZero=1
This option discards credits with a zero value (ex: on incentive dashboards, in calculation details, etc.).
By default, each calculation record all transaction credits, even when the credited value is zero. This can happen if:
- The crediting metric (ex: revenue) present in sales transactions was zero (ex: revenue was 0)
- The crediting metric (ex: score) was zero as calculated (ex: the calculated score was 0)
This advanced option causes credits with a credited value of zero not to be tracked. This can be useful if, for example, you calculate a score, and don't want to show transactions whose calculated score was zero on personal incentive dashboards.
CreditingCarryOver=<threshold>
This option causes previous credits (credits from a prior released calculation) above a threshold to roll over to the current calculation.
For example, if you use CreditingCarryOver=10000,revenue above 10000 could be rolled over to the next calculation period. This advanced option can be useful if you want to carry over credits in excess of a certain value between calculation periods.
CreditingAlertOnAnyMismatch=1
This option warns you if there are multiple credited users / teams, but only some are valid plan targets. This is useful if you split commissions. You may want to be alerted if one of the specified party cannot be credited.
========== Rewards-Related Options ==========
RewardsNotZero=1
This option discards rewards with a zero value (ex: on incentive dashboards, in calculation details, etc.).
By default, each calculation records all beneficiary rewards, even when the reward value is zero. This can happen if:
- You added a reward of type "no rewards" to incentive tiers
- A reward's calculated value was 0
This advanced option causes rewards with a reward value of zero not to be tracked.
ActualRewardsNotZero=1
This option discards actual rewards with a zero value (ex: on incentive dashboards, in calculation details, etc.).
By default, each calculation records all actual beneficiary rewards, even when the actual reward value is zero.
This option causes actual rewards with a reward value of zero not to be tracked.
EstimatedRewardsNotZero=1
This option discards estimated rewards with a zero value (ex: on incentive dashboards, in calculation details, etc.).
By default, each calculation records all estimated beneficiary rewards, even when the estimated reward value is zero.
This option causes estimated rewards with a reward value of zero not to be tracked.
RewardsAttainmentDivisor=<value>
This option divides attainments by the specified value. This can be useful, for example, if you are calculating revenue over multiple months, and want to average results.
RewardsQueryAll=1
This option allows querying of all rewards (instead of just rewards assigned to each beneficiary) within a query-based reward.
RewardsQuerySelf=1
This option allows querying of rewards including those associated with the current calculation (the default is to exclude rewards for the current calculation). This can be useful, for example, if you need to deduct commissions paid to all reps.
RewardsCloneFrom=<planId>
This option clones rewards and commissions from other plans whose calculation date matches the current calculation. This advanced option is uncommon.
SqlFormulaUseRelativeDates=1
Allows SQL queries running against transactions whose date fields are then specified using relative (not UTC) time. This advanced option is uncommon.
========== Calculations-Related Options ==========
StartDate=<date>
This option overrides the date from which we scan sales transactions when running a calculation.
The date can take different formats such as:
- 2019-06-01 (specific date)
- -3M (3 month earlier than the calculation's start date)
- +7d (7 days later than the calculation's start date)
- TwoWeeksStart (the start of a 2 week period)
- MonthStart (the start of the month)
- QuarterStart (the start of the quarter)
- SixMonthsStart (the start of the half-year)
- YearStart (the start of the year)
This can be useful if, for example, you have recurring transactions. For example, let's say you have monthly recurring transactions (MRR) over a 1 year duration. Let's also pay that you pay commissions monthly. When you run a calculation for June, we will by default process transactions from June 1st to June 30. However, if you set advanced option "StartDate=-11M", we will also include transactions 11 months prior to the calculation's start date (June 1st). This will ensure we process transactions over 12 months (11 months prior to June + the month of June) and pay some commission over those.
EndDate=<date>
This option overrides the date up to which we scan sales transactions when running a calculation.
The date can take different formats such as:
- 2019-06-30 (specific date)
- -3M (3 month earlier than the calculation's end date)
- +7d (7 days later than the calculation's end date)
- TwoWeeksEnd (the end of a 2 week period)
- MonthEnd (the end of the month)
- QuarterEnd (the end of the quarter)
- SixMonthsEnd (the end of the half-year)
- YearEnd (the end of the year)
RefDate=<date>
By default, the effective date used to lookup custom variables is the calculation end date. This options forces all custom variable evaluations and lookups (without a date specified) to use the specified date instead.
RefDate=TransactionDate
By default, the effective date used to lookup custom variables is the calculation end date. This options forces per-transaction custom variable evaluations and lookups (without a date specified) to use each transaction's date instead. Also refer to CurrencyUseTransactionDate=1 to ensure currencies are converted using the transaction date as the effective date.
PreventAutoRun=1
This option prevents auto-running of the plan when you've globally enabled auto-run.
AutoRunHours=<hour>
This option specifies on which hour of the day (in UTC time) it is best to re-run daily calculations. There is no strict guarantee calculations will auto-run at the specified time and it is only a preference.
DependsOn=<planId>
This option allows automation to correctly sequence calculations based on dependencies.
SortTransactionsBy=<field>
Allows second-order sorting of credited transactions (after sorting by credited date). For example, if you want to sort by date then by invoice ID (when dates are equal), you would specify your invoice ID field.
SortTransactionsDesc=1
This option makes the second-order sorting descending (instead of a default of ascending). See option above for details.
CurrencyUseTransactionDate=1
By default, the effective date used to lookup exchange rates is the calculation end date. This option forces currency conversions to use each transaction's date instead. Also refer to RefDate=TransactionDate to ensure custom properties are looked up using each transaction's date as the effective date.
SplitIntoQuarters=1
This option allows a calculation to run for say an entire year, but measure attainment based on each quarter's goals. The engine will split up the calculation period into quarterly period, and aggregate credits and rewards.
DeleteCommissionsZeroCommission=1
This option deletes commissions whose sum is zero at the end of the calculation.
DeleteCreditsZeroCommission=1
This option deletes credits (and commissions) whose sum is zero at the end of the calculation.
AutoReleaseCredits=1
This option auto-releases credits.
AutoReleaseRewards=1
This option auto-releases rewards using the end date as the release date.
CommissionsQueryAll=1
When calling functions such as GetCommissions(), only calculations whose end date is before or equal to the current calculation's end date are taken into account. This flag eliminates this restriction.
CommissionsQueryBefore=1
When calling functions such as GetCommissions(), only calculations whose end date is before or equal to the current calculation's end date are taken into account. This flag restricts to only calculations whose end date is strictly before the current calculation.
CommissionsQueryLatest=1
When calling functions such as GetCommissions(), commissions are summed. When calling functions such as GetCommissionRate(), commission rates are averaged. For example, if 2 commissions were given on the same transaction, GetCommission() will return the sum of commissions, and GetCommissionRate() will return the average rate. This flag restricts to only the most recent non-zero commission.
CommissionsAmountQueryLatest=1
When calling functions such as GetCommission(), amounts are summed. For example, if 2 commissions were given on the same transaction, GetCommission() will return the sum of commissions. This flag restricts to only the most recent non-zero commission.
CommissionsRateQueryLatest=1
When calling functions such as GetCommissionRate(), rates are averaged. For example, if 2 commissions were given on the same transaction, GetCommissionRate() will return the average rate. This flag restricts to only the most recent non-zero commission.
CommissionsBeneficiaryQueryLatest=1
When calling functions such as CommissionsBeneficiary(), all beneficiaries are included. For example, if 2 commissions were given on the same transaction, GetCommissionBeneficiaries() will return all beneficiaries. This flag restricts to only the most recent non-zero commission.
CommissionsQueryExcludePlan=<planId>
When calling functions such as GetCommissions(), this option excludes commissions to those from specific plans. This option can be specified multiple times.
CommissionsQueryIncludePlan=<planId>
When calling functions such as GetCommissions(), this option restricts commissions to those from specific plans. This option can be specified multiple times.
CommissionsQueryLookbackDays=<days>
When calling functions such as GetCommissions(), all calculations whose end date is before or equal to the current calculation's end date are taken into account. This option can reduce the cost of lookups by limiting how far back the commission is examined.
CommissionsQueryTransactionIdsOnly=1
When calling functions such as GetCommissions(), we will assume transaction IDs will always be passed (never order IDs). This option can reduce the cost of lookups by limiting the amount of data queried.
CustomVariableAlertOnMissing=1
Alerts when a formula loads a custom variable which is unspecified on the target. This can avoid checking manually if a value was specified or not. Note that if a value is specified but is zero or an empty string (''), it is considered as specified and no alert will fire.
ThresholdAlertOnDuplicates=1
Alerts when two tiers have equal thresholds. For example, if a quota is set to zero, and tiers are at 100% and 150% attainment, the alert will fire because both tiers have a threshold of zero.
========== Logging-Related Options ==========
LogInclude=<expression>
This option determines which messages get logged. Detailed logs matching the specified regular expression will be kept. Only the body of the message is taken into account.
LogExclude=<expression>
This option determines which messages get logged. Detailed logs matching the specified regular expression will be excluded. Only the body of the message is taken into account.
FilteringLogFilterDetails=1
This option enables logging of details when filtering transactions using a dynamic filtering formula. Filtering details are available when exporting credits to CSV format.
CreditingLogCreditDetails=1
This option enables logging of details when crediting users or teams using a dynamic crediting formula. Crediting details are available when exporting credits to CSV format.
CreditingLogScoreDetails=1
This option enables logging of details when calculating a score using a scoring formula. Scoring details are available when exporting credits to CSV format.
ParallelizePerTransactionRewards=1
Suppose that 100 users were credited with different transactions. We will always calculate commissions for those 100 credited users in parallel. However, now suppose that one of those users has 10K transactions credited, with a per-transaction reward for each. To also parallelize calculation of commissions within each credited user, enable this option.
SqlCacheQuery=<CacheTableName>={{Advanced SQL Statement}}
This option pre-loads data, allowing advanced SQL statements to be executed against a local cache. See
this article for more information ("
Pre-Loading Data").
========== Join Options ==========
JoinOn=<LeftJoinField>=<RightJoinField>
This option enables a join between 2 transactions. When processing transactions, we will find if there is another transaction whose <RightJoinField> is equal to the current transaction's <LeftJoinField>. This option should be used with the JoinField= option (see below). You can specify multiple JoinOn= options if multiple fields should match (all must then match).
JoinField=<QueryField>=<Nickname>
This option loads field <QueryField> from the joined transaction (see above). You can specify multiple JoinField= options to retrieve multiple fields from the joined transaction. You can access the value using [Transaction].[Nickname]. This option should be used with the JoinOn= option (see above).
========== Incentive Dashboard Options ==========
CreditingDetailsHide=1
This option hides credit details on incentive dashboards.
CreditingDetailsHomeHide=1
This option hides credit details on the main page of incentive dashboards.
CreditingFieldHide=<name>|<tag>
This option hides a specific crediting field for users having the specified tag on incentive dashboards.
CreditingFieldShow=<name>
This option shows a specific crediting field stored using StoreTransaction() on incentive dashboards.
CreditingNoCommissionsHide=1
This option hides credit details on incentive dashboards when there is no actual commission and no estimated commission.
CreditingNoActualCommissionsHide=1
This option hides credit details on incentive dashboards when there is no actual commission.
CreditingNoEstimatedCommissionsHide=1
This option hides credit details on incentive dashboards when there is no actual commission.
AttainmentHide=1
This option hides attainment details on incentive dashboards.
HideAttainmentNoCredits=1
This option hides attainment details on incentive dashboards where there are no credited transactions.
RewardsHide=1
This option hides rewards from incentive dashboards.
PlanLabelHide=1
This option hides plans from incentive dashboards. Normally, you would mark a plan as completed, and it will show as such on incentive dashboards. However, you can use this advanced option to hide plans instead. Payees can still access their historical statements from hidden plans. To completely hide a plan, move it to the archived status.
CompletedPlanLabelHide=1
This option hides completed plans from incentive dashboards. Normally, you would mark a plan as completed, and it will show as such on incentive dashboards. However, you can use this advanced option to hide plans instead. Payees can still access their historical statements from hidden plans. To completely hide a plan, move it to the archived status.
PlanNoRewardsHide=1
This option hides plans from incentive dashboards when there is no calculated payout. Normally, we show all plans users are eligible for (regardless of whether they have already earned a commission). This option allows you to hide plans until a reward is earned.
InactivePlanLabelHide=1
This option hides plans from incentive dashboards. This only applies to payees who were, but no longer are, beneficiaries - for example:
- A user was originally on a plan, but no longer is on this plan
- You cannot archive, pause, or complete this plan
- For example, because other users are still assigned to the plan
- You want to hide plan statements from this user
- Because this user is no longer on this plan
RewardsActualTotalHide=1
This option hides actual reward totals from incentive dashboards.
RewardsEstimatedTotalHide=1
This option hides estimated reward totals from incentive dashboards.
RewardsMoreDetailsHide=1
This option hides "more details" on the rewards page of incentive dashboards (period statements).
PerformanceMetric=<name>
This option shows a performance metric which either:
- Was stored for the payee using a StoreCalculation() function call - example:
- You stored a value of 28 using StoreCalculation(), passing name "Avg" and the beneficiary ID
- You specify PerformanceMetric=Avg in advanced options of your plan
- Incentive dashboards will show a tile with a name of "Avg" and a value of 28
- Is available as a custom variable on the payee - example:
- You defined a custom variable called @@Goal with 100 for the payee
- You specify PerformanceMetric=Goal=@@Goal in advanced options of your plan
- Incentive dashboards will show a tile with a name of Goal and a value of 100
- Can be computed using simple slugs - example:
- You defined a custom variable called @@Goal with 100 for the payee
- You specify PerformanceMetric=Goal={{@@Goal + 100}} in advanced options of your plan
- Incentive dashboards will show a tile with a name of Goal and a value of 200
PerformanceMetric=<name>|color
Same as the above, but with a chosen color:
- The color argument is optional and can be a value such as "orange", "purple", "#f5f5f5", etc.
- Separate with a | character
RewardMetric=<name>
Same as the above - except that the metric is shown on the Rewards tab instead of the Credits tab.
RewardMetric=<name>|color
Same as the above, but with a chosen color:
- The color argument is optional and can be a value such as "orange", "purple", "#f5f5f5", etc.
- Separate with a | character
HidePerformanceQuota=1
This option hides the goal and attainment % from incentive dashboards.
HidePerformanceAttained=1
This option hides the attained value from incentive dashboards.
MaxIssueCount=<value>
Specifies the maximum number of issues (by alert type) to log during processing. This can also be adjusted via global advanced settings.
Terminology=<value>|<replacement>
Replaces <value> by <replacement> within incentive dashboards (this is in addition to terminology replacements defined within incentive dashboard settings).
CreditingBarHide=1
Hide horizontal bars showing / comparing crediting totals.
CreditingDetailsIncludeUsersAll=1
In crediting details, include all users.
CreditingBarIncludeUsersAll=1
In horizontal bars showing / comparing crediting totals, include all users.
CreditingDetailsIncludeUsersInAccessibleTeams=1
In crediting details, include users within teams the user can view credits for.
CreditingBarIncludeUsersInAccessibleTeams=1
In horizontal bars showing / comparing crediting totals, include users within teams the user can view credits for.
PlanOrder=<value>
Sorts plans in the specific order (alphabetic ascending) when displayed on incentive dashboards. For example, a value of 001 will be displayed before a value of 002.
ShowCalculationDates=1
Show calculation dates instead of period names on incentive dashboards.
ShowReleaseDate=1
Show the release date on incentive dashboards.
========== Manager Dashboard Options ==========
ManagerAttainmentHide=1
This option hides attainment details on manager dashboards.
========== Withholding-Related Options ==========
WithholdingRepeatEstimates=1
Normally, withheld transactions are those whose sum of actual commissions is less than the sum of estimated commission. However, if you keep re-estimating commissions, you would need to use the latest estimate instead of the sum.
WithholdingThisCalculation=1
Normally, withheld transactions are determined by comparing across all calculations of dependent plans. If this option is enabled, only the current calculation is used.
WithholdingOnlyUnpaid=1
Normally, withheld transactions are those whose sum of actual commissions is strictly less than estimated. If this option is enabled, only commissions with zero actual commissions are considered. In other words, even if only a portion of the estimated amount was paid in actual commissions, the withholding disappears. Withholdings are only shown for transactions having received no actual commission.
WithholdingIncludeNegative=1
Normally, withheld transactions are those whose sum of actual commissions is strictly less than estimated. Also, the estimated amount must be positive. If this option is enabled, we also include transactions whose estimated amount is negative. To disappear from withholdings, a transaction actual commission must be equal to (or less than) the negative estimated amount. In other words, as long as the full negative estimated commission has not been delivered in actual commissions, a withholding will be shown.
WithholdingActualExplanation=<explanation>
Only take into account actual commissions whose explanation is set to <explanation> when checking if all estimated commissions have been paid.
WithholdingStartDate=<date>
Only show withheld transactions for commissions whose crediting date is after the specified date.
WithholdingFieldHide=<name>|<tag>
This option hides a specific crediting field for users having the specified tag in withholdings.
========== Recoverable Reward Options ==========
BalanceHide=1
This options hides the balance widget.
BalanceHideNoChanges=1
This options hides the balance widget if there were no changes to the balance.
========== Pay Once Reward Options ==========
PayOnceMinDate=<date>
When a payee qualifies for a "pay once" reward, we check if the payee already received this reward in the past. This option defines a new "reset" date after which the payout can be paid again. For example, if you set this value to 2020-01-01, then we will not check for past rewards from calculations before this date.
The date can take different formats such as:
- 2019-06-01 (specific date)
- TwoWeeksStart (the start of a 2 week period)
- MonthStart (the start of the month)
- QuarterStart (the start of the quarter)
- SixMonthsStart (the start of the half-year)
- YearStart (the start of the year)
PayOnceMinAmount=<amount>
When a payee qualifies for a "pay once" reward, we check if the payee already received this reward in the past. This option defines a minimum amount to determine which past rewards are eligible. For example, if you set this value to 0, previous zero-value rewards do not count when checking if already paid.
========== Add Transactions Options ==========
TransactionRenameField=<Old Name>=<New Name>
This option must be set in Advanced > Settings.
This option renames a field during transaction import from a connected system.
The <Old Name> should be what is currently in the data source.
The <New Name> should be what you want it to be in Sales Cookie.
Make sure to reset transaction synchronization if older records must be updated.
Two scenarios:
A field was previously imported it as X to Sales Cookie. It's has been renamed as Y at the data source, but you want to keep name X in Sales Cookie, so you don't need to update formulas.
Use TransactionRenameField=Y=X
To rename Y in the data source back to its original X
A field is named X at the data source, but you would like a more user-friendly name Y in Sales Cookie.
Use TransactionRenameField=X=Y
To rename X in the data source to more user-friendly Y
Consider also using Terminology replacement if all you want to do is change the field's display name
========== QuickBooks Options ==========
QuickBooksOnlineRetrieveCustomers=1
This option must be set in Advanced > Settings.
This option retrieves customer details in addition to invoices, sales receipts, etc.
QuickBooksOnlineRetrieveDiscountsAsLineItems=1
This option must be set in Advanced > Settings.
This option materializes invoice-level discount line items as separate line items.
QuickBooksOnlineExpandGroupLineItems=1
This option must be set in Advanced > Settings.
This option expands grouped line items into separate line items.
QuickBooksOnlineProcessExpenseLineItems=1
This option must be set in Advanced > Settings.
This option allows processing of expense line items (by default, expense line items are processed only when they come from purchase orders).
========== Stripe Options ==========
StripeInvoiceLookbackDays=<days>
This option must be set in Advanced > Settings.
This option limits how far back invoices are synchronized.
For example, if the value is 30, then invoices created in the last 30 days are synchronized.
StripeRefundLookbackDays=<days>
This option must be set in Advanced > Settings.
This option limits how far back refunds are synchronized.
For example, if the value is 30, then refunds created in the last 30 days are synchronized.
StripeChargeLookbackDays=<days>
This option must be set in Advanced > Settings.
This option limits how far back charges are synchronized.
For example, if the value is 30, then charges created in the last 30 days are synchronized.
========== SalesForce Options ==========
SfdcReportIncremental=1
This option must be set in Advanced > Settings.
SalesForce reports are limited to 2K records.
This option attempts to retrieve data incrementally.
However, this only works for specific reports.
Contact support for additional information.
SfdcReportIncrementalLastUpdateField=<field>
This option must be set in Advanced > Settings.
SalesForce reports are limited to 2K records.
This option attempts to retrieve data incrementally.
This allows us to specify the last modified field to use.
========== HubSpot Options ==========
HubSpotIncludeContacts=1
This option must be set in Advanced > Settings.
This option includes contact information linked to each deal.
By default, only account information linked to each deal is is included.
HubSpotIncludeStageHistory=1
This option must be set in Advanced > Settings.
This option includes the history of stage assignment.
For example, you may see properties such as "Date Entered Stage Qualified" or "Date Entered Stage Closed Won".
HubSpotIncludeDealSplits=1
This option must be set in Advanced > Settings.
This option sets a property called [Deal Split Owners] with splits in this format: "Rep 1[weight 1]|Rep 2[weight 2]|Rep3 [weight 3]|etc.", where weight is a value from 0 to 1.
This property is set to the single deal owner if there is no split.
========== Xero Options ==========
XeroRetrieveCustomers=1
This option must be set in Advanced > Settings.
This option retrieves customer details in addition to invoices, sales receipts, etc.
XeroInvoiceLookbackDays=<days>
This option must be set in Advanced > Settings.
This option limits how far back invoices are synchronized. For example, if the value is 30, then invoices updated in the last 30 days are synchronized.
XeroPaymentLookbackDays=<days>
This option must be set in Advanced > Settings.
This option limits how far back payments are synchronized. For example, if the value is 30, then payments updated in the last 30 days are synchronized.
XeroRetrieveInvoiceHistory=1
This option must be set in Advanced > Settings.
This option retrieves the invoice's change history.
XeroRevealStockMovements=1
This option must be set in Advanced > Settings.
When synchronizing just invoices (not invoice line items), stock movement journal entries appear as invoices.
Those invoices all have an amount of zero, because they include compensating positive and negative line items.
This option allows to record the sum of positive line items as the invoice total.
This makes it easy to see the amount associated with the stock movement (instead of just zero).
XeroSetPaymentDateWhenAmountDueZero=1
This option must be set in Advanced > Settings.
Xero can have invoices marked as paid, with zero balance remaining to be paid, but the fully paid date remains empty.
This can happen if, for example, a discount is applied when creating the invoice, making the invoice total zero.
The invoice is paid but no fully paid date is recorded.
This option sets the fully paid date to the transaction date.