Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.
Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.
Changing a rule updates a draft of the campaign. The new setting is used only after the campaign is published. If the campaign has not launched yet, publishing happens when you take it live; if it is already live, contact your CSM to publish the change.Rules apply to events as they arrive, so publishing a change affects new events only. Extole does not re-score events that were already processed, and an event held by a rule you have since turned off stays held.
Each event has three components: Quality Rules, Approval Workflow, and Rewards. To best understand how Extole works, it’s helpful to consider these concepts in the following order:
Quality Rules - When an event occurs, Extole applies event-specific quality rules to determine if the event meets all of the terms of the program. Extole marks an event as suspicious if any rule fails and marks an event passing if all rules succeed.
Approval Workflow - Events (other than the advocate share) trigger rewards but only when the events are approved. Approvals happen through a workflow, which approves or declines passing events. After a specified period of time, the workflow settings move events to approved or declined. Event approval can also occur through API, through file upload, and manually in the Extole customer support screens.
Rewards - Once an event is approved, Extole applies reward rules to see if the event meets reward criteria and to determine whether the friend or the advocate earns the reward for that event.
To learn how to find event statuses for specific events and to understand more about passing & suspicious and approved & declined, please read this help center article: Look Up and Understanding Your Program Event Statuses.
The following quality rules are applied to all events. Please note, if you have an older campaign, this section may not appear. If you have any questions, please contact your CSM.
Quality Rule
Description
Best Practices
Blocked Countries List
Events originating from the IP address by countries specified here are marked as suspicious.
Extole recommends blocking OFAC countries as well as countries that originate spam. Extole includes LB, BY, LR, AF, IR, YE, SD, ID, UA, CN, MM, SY, CI, BZ, RU, ML, VE, ZW, KP, SO, CF, LY, PH, IQ, CU by default.
Permitted Countries List
Events originating from the IP address by countries specified here will be approved.
NA
Blocked Email Domains
Participants with email domains that appear on the block list cannot share or receive shares.
Extole has a comprehensive email domain block list built-in, which includes disposable email domains.
Blacklisted Site Domains
Events originating from blacklisted site domains are invalid.
Extole has a comprehensive site domain block list built-in, which you may add to if desired.
Blocked
Block events if the actions or participants(s) leading to the event are blocked.
NA
Extole Global Block
Block events if Extole has identified the participant as fraudulent across the platform.
NA
Block Person by IP
Block any specified IP addresses from being able to participate in the program.
For the advocate share event, you may configure the following rules. When a share fails a quality rule, Extole will not send a share email. Social posts, however, will still be permitted. Please note, if you have an older campaign, some of these rules may look different. If you have any questions, please contact your CSM.
Quality Rule
Description
Best Practices
Rate Limit Emails
A friend can only receive a certain rate of emails over a period of time.
NA
Prevent Mass Shares
A share count of over the specified limit during a time period is invalid.
NA
Minimum / Maximum Shares
A share count under or over the specified minimum and maximum limits are invalid. This rule can be set to count all shares as unique, even if sent to the same person.
NA
Spam Messages
Block advocate email shares when the Extole system suspects they are spam by checking the content of the personalized message for spam triggers.
By default, this rule is enabled.
Valid Emails Only
Block events associated with invalid emails.
NA
Specified Participant
The participant can only share if their Extole profile has a specified property with a specified value. For example, if you only want to reward a particular segment of your customer base, you could add a specific parameter to those customers’ profiles and only reward those whose parameter matches a certain value (i.e., “parameter called employee with a value of true”).
The following rules can be configured for both click events and sign up events. Please note, if you have an older campaign, these rules may be referred to as “friend visit” and “friend registration.” If you have any questions, please contact your CSM.
Quality Rule
Description
Best Practice
Bot Multi-Click Prevention
A second click or sign up by the same person within 30 seconds of one that already scored high quality is invalid. Someone who opens two different share links in quick succession trips this rule, even when nothing about the traffic is automated.
Internally configured. The 30 second window is fixed; the rule can only be turned on or off.
Is First Friend Click
Internally configured.
New Customer Rule
Events with an email that appears on the existing person list are invalid. Most friends visit anonymously and this rule cannot be applied.
Internally configured.
Clicked Too Quickly
Events that occur quickly after a share may be suspicious.
By default, events that occur within 5 seconds after the share event are invalid.
Recognition Lookback Window
Only treat friend events as high quality if the most recent referral happened within a specified time period.
By default, the time period is set to one year.
Block Self Referral by IP
Events with a friend IP address the same as the advocate IP address are invalid.
NA
Block Self Referral
Guard against self referral based on email address. The email check compares the two local parts after removing dots and any + suffix, and drops the digits when at least three letters remain, so jane.doe@example.com and jane.doe+friend@example.com match. You can also guard against self referral based on browser ID.
By default, guarding against self referral based on browser ID is enabled.
Similar Email Address
Events with a similar advocate or friend email address are invalid. For example if there is already a friend at “julio.friend@gmail.com” then “julio.friend+1@gmail.com” would be considered a similar friend.
NA
Valid Emails Only
Block events associated with invalid emails.
NA
Specified Participant
The participant can only share if their Extole profile has a specified property with a specified value. For example, if you only want to reward a particular segment of your customer base, you could add a specific parameter to those customers’ profiles and only reward those whose parameter matches a certain value (i.e., “parameter called employee with a value of true”).
For the friend conversion event, you may configure the following rules.
Quality Rule
Description
Best Practice
Clicked Too Quickly
Events that occur quickly after a share may be suspicious.
By default, events that occur within 5 seconds after the share event are invalid.
Advocate Conversion Limits
An advocate can only drive a certain number of events in a certain number of days.
By default, this rule is set to one event per day.
New Customers Only
Events with an advocate or friend email that appears on the existing customer list are invalid.
NA
Recognition Lookback Window
Only treat friend events as high quality if the most recent referral happened within a specified time period.
By default, the time period is set to one year.
Block Self Referral by IP
Events with a friend IP address the same as the advocate IP address are invalid.
NA
Block Self Referral
Guard against self referral based on email address. The email check compares the two local parts after removing dots and any + suffix, and drops the digits when at least three letters remain, so jane.doe@example.com and jane.doe+friend@example.com match. You can also guard against self referral based on browser ID.
By default, this rule is enabled and guarding against self referral based on browser ID is enabled.
Similar Email Address
Events with a similar advocate or friend email address are invalid. For example if there is already a friend at “julio.friend@gmail.com” then “julio.friend+1@gmail.com” would be considered a similar friend.
By default, this rule is enabled.
Valid Emails Only
Block events associated with invalid emails.
By default, this rule is enabled.
Specified Participant
The participant can only share if their Extole profile has a specified property with a specified value. For example, if you only want to reward a particular segment of your customer base, you could add a specific parameter to those customers’ profiles and only reward those whose parameter matches a certain value (i.e., “parameter called employee with a value of true”).
The Approval Workflow moves events to the approved or declined state after a specified period of time. Event approval can also occur via API, through file upload, or manually in Extole’s customer support screens.Most of the programs automatically approve and decline passing and suspicious events quickly. Shares, visits, and registrations should generally be automatically approved or declined within 0 days (instantly).For conversions or transactions, you might want to include a delay to prevent a high volume of rewards. On average, settings are between 7-14 days to approve or decline all conversions. Keep in mind that the more moments of quick delight you can give to your customers, the more likely they are to continue to refer and the less likely they are to call customer support. Therefore, we suggest you keep this delay to a minimum.Conversion or transaction event workflow best practices by vertical:
Retail referral programs will typically auto-approve conversions within 3-7 days. You may use this pending time to send Extole a cancellation by API/file if the purchase is canceled.
Subscription referral programs will typically auto-approve conversions after the free trial period of 14-30 days and send Extole any trial cancellations by API/file.
LeadGen and Consumer Financial programs will typically auto-approve conversions after 1-day.
Who gets the reward (e.g., the advocate or the friend)
What reward they receive
Which rules must be met in order to receive the reward
The rules page gives you control over the following reward rules:
Rule
Description
Best Practice
Their cart value is at least $(0).
Set the minimum cart value required in order to issue a reward. The cart value of a conversion is passed to Extole in the conversion tag, conversion API, or conversion file.
Your company’s AOV. For example, the friend’s purchase must be at least $75 for the advocate to be rewarded. If you enable this rule on an event that doesn’t pass cart value, no rewards will be issued.
The rewardee has an email address.
This rule ensures reward are only attempted to be sent to people with email addresses.
Because in most cases email is how we deliver a reward, this is enabled by default.
The rewardee should be rewarded every “(N)th” qualifying transaction.
You can create a second bonus reward on every nth transaction. For example, you could give an advocate a bonus reward for every five unique friends they drive to purchase.
NA
The rewardee identified by their email has earned fewer than (0) rewards… since the last month of (0) (1-12 map to Jan-Dec)… and in the past (0) day(s).
Use this rule to restrict the number of rewards an advocate or friend may earn and to restrict the time period under which the rule applies. Both of these date filters will run and people will only be rewarded when both filters pass. Most commonly this can be used to limit the number of rewards earned in a month or year.
Because we allow for an approval buffer period to catch fraudulent events, we recommend not restricting the number of rewards an advocate can obtain. Instead, use Extole to track these people and create a separate super-advocate or influencer campaign for these users.
The rewardee identified by their email has received less than $(0)… since the last month of (0) (1-12 map to Jan-Dec)… and in the past (0) day(s).
Use this rule to restrict the total value of rewards an advocate or friend may earn and to restrict the time period under which the rule applies. Both of these date filters will run and people will only be rewarded when both filters pass. Most commonly this can be used to limit the dollar/currency amount of rewards earned in a month or year.
This rule is usually enabled for cash rewards to keep earned rewards under the tax-reporting amount.Please note that max reward limits apply to all rewards that are configured. If you run a burst campaign, test, or new program, these limits will still apply and not reset.
The rewardee has not been awarded for the same relationship before.
Use this rule to ensure that rewards are only being sent to people who have not yet been rewarded for this relationship.
By default, this rule is enabled to prevent advocates from being rewarded for the same friend twice.
Allow other person in relationship to refer rewardee.
Enable this rule to allow advocates and friends to refer each other and receive rewards.
By default, this rule is disabled so that friends cannot refer the advocates that referred them.
If the parameter named ____ has the value ____ OR matches the regex ____.
This rule allows you to reward based on attributes that are passed Extole on the event. For example, if you only wanted to reward for certain product types, you could pass “product_type” in the conversion tag and if the value is “car” then reward $1000. That means that if the “product_type” passed is not “car” Extole will not trigger a reward. In more sophisticated cases, you can do a regex to support a variety of product IDs, versus just one value. For example: “reward if product_id matches the regex (. ,)?123(,.)” will support the product IDs that support that pattern.
In addition to standard Reward Rules, Extole Support can help you write custom reward rules as JavaScript or SpEL expressions or reward groups.For example, rather than a reward rule that dictates “Advocates can only earn $500,” an advanced reward rule could say “Advocates whose profile identifies them as based in the US can only earn $500.”
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Extole Documentation","description":"Guides, product documentation, and API reference for the Extole platform.","colors":{"primary":"#ee0049","light":"#ee0049","dark":"#ee0049"},"logo":{"light":"https://mintcdn.com/extole/qEcOgc0BuXrP2LAU/extole-logo.png?fit=max\u0026auto=format\u0026n=qEcOgc0BuXrP2LAU\u0026q=85\u0026s=d7152863dcc1c598d4fac27f91b3658e","dark":"https://mintcdn.com/extole/qEcOgc0BuXrP2LAU/extole-logo.png?fit=max\u0026auto=format\u0026n=qEcOgc0BuXrP2LAU\u0026q=85\u0026s=d7152863dcc1c598d4fac27f91b3658e","href":"/"},"favicon":{"light":"https://mintcdn.com/extole/qEcOgc0BuXrP2LAU/Extole-icon-bug.svg?fit=max\u0026auto=format\u0026n=qEcOgc0BuXrP2LAU\u0026q=85\u0026s=963cb7a87707b61559c35c47c8d7fd14","dark":"https://mintcdn.com/extole/qEcOgc0BuXrP2LAU/Extole-icon-bug.svg?fit=max\u0026auto=format\u0026n=qEcOgc0BuXrP2LAU\u0026q=85\u0026s=963cb7a87707b61559c35c47c8d7fd14"},"api":{"url":"full"},"navbar":{"links":[{"href":"https://github.com/extole","label":"GitHub"},{"href":"https://my.extole.com","label":"My Extole"},{"href":"#request-sandbox","label":"Request Sandbox"}]},"footer":{"socials":{"github":"https://github.com/extole"}},"integrations":{"ga4":{"measurementId":"G-7QCR5R4J61"}},"contextual":{"options":["copy","assistant","download-spec","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"extole","hasAudioNarration":false,"actualSubdomain":"extole","customDomains":["docs.extole.com"],"gitSource":{"type":"github","owner":"extole","repo":"product-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"agentFeedback":true,"thumbs":true,"issues":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af238b8df0682813ec0c847","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API Reference","count":447},{"language":"default","tag":"Management API","count":310},{"language":"default","tag":"Guides","count":253},{"language":"default","tag":"Technical Docs","count":130},{"language":"default","tag":"Server to Extole API","count":72},{"language":"default","tag":"Programs \u0026 Campaigns","count":58},{"language":"default","tag":"Dashboards and Reporting","count":57},{"language":"default","tag":"Product Docs","count":56},{"language":"default","tag":"Components","count":49},{"language":"default","tag":"Product Overview","count":40}],"searchSettings":{"maxResults":20,"showContentSnippets":true,"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"public/style.css","content":":root{--extole-coral: #ee0049;--extole-navy: #0b123d;--extole-primary-fill: #ee0049;--extole-icon-navy-bg: #0b123d;--extole-slate: #7d90a4;--extole-ink: #151a2d;--extole-muted: #4f5c6d;--extole-page-bg: #faf9f7;--extole-card-bg: #faf9f7;--extole-surface: #ffffff;--extole-surface-muted: rgba(255, 255, 255, 0.45);--extole-logo-bg: #ffffff;--extole-secondary-bg: #ffffff;--extole-border: #e2e2e0;--extole-border-strong: #d0dae6;--extole-shadow: 0 16px 44px rgba(11, 18, 61, 0.08);--extole-hero-shadow: 0 10px 32px rgba(11, 18, 61, 0.06);--extole-radius: 16px;--extole-heading-font: \"PaperMono\", \"Space Mono\", \"SFMono-Regular\", Menlo, Monaco, Consolas, monospace}html,body{background:var(--extole-page-bg)}html:not(.dark):not([data-theme=\"dark\"]):not([data-color-mode=\"dark\"]) #background-color{background-color:var(--extole-page-bg)!important}body{color:var(--extole-ink);font-family:\"Inter\", \"Poppins\", \"Montserrat\", \"Segoe UI\", sans-serif}.dark body,html.dark body,body.dark,:root[data-theme=\"dark\"] body,[data-theme=\"dark\"] body,[data-color-mode=\"dark\"] body{background:#0f1526}.nav-logo{height:24px!important;max-width:84px!important;object-fit:contain}.extole-home{color:var(--extole-ink);color-scheme:light;max-width:1440px;margin:0 auto;padding:16px 16px 96px;width:100%}.dark .extole-home,html.dark .extole-home,body.dark .extole-home,:root[data-theme=\"dark\"] .extole-home,[data-theme=\"dark\"] .extole-home,[data-color-mode=\"dark\"] .extole-home,body[data-theme=\"dark\"] .extole-home,html[data-theme=\"dark\"] .extole-home{--extole-coral: #ee0049;--extole-navy: #f3f6ff;--extole-primary-fill: #ee0049;--extole-icon-navy-bg: #263455;--extole-slate: #9cacbf;--extole-ink: #e5ebf7;--extole-muted: #b4bfd2;--extole-card-bg: #151c31;--extole-surface: #1d263d;--extole-surface-muted: rgba(255, 255, 255, 0.06);--extole-logo-bg: rgba(248, 250, 255, 0.96);--extole-secondary-bg: rgba(255, 255, 255, 0.03);--extole-border: rgba(178, 191, 216, 0.16);--extole-border-strong: rgba(205, 218, 242, 0.28);--extole-shadow: 0 20px 48px rgba(0, 0, 0, 0.36);--extole-hero-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);color-scheme:dark}.extole-hero{display:grid;grid-template-columns:minmax(0, 1.12fr) minmax(420px, 0.88fr);gap:28px;align-items:stretch}.extole-hero-copy,.extole-code-panel{border:1px solid var(--extole-border);border-radius:24px;box-shadow:var(--extole-hero-shadow)}.extole-hero-copy{min-height:0;padding:46px 43px;background:var(--extole-card-bg)}.extole-kicker,.extole-code-kicker{margin:0 0 18px;color:var(--extole-coral);font-size:13px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase}.extole-hero h1,.extole-section h2{color:var(--extole-navy);font-family:var(--extole-heading-font);font-weight:700;letter-spacing:-0.01em}.extole-hero h1{max-width:720px;margin:0 0 17px;font-size:clamp(1.9rem, 3vw, 2.7rem);line-height:1.15}.extole-lede{max-width:58ch;margin:0;color:var(--extole-muted);font-size:1.04rem;line-height:1.65}.extole-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:31px}.extole-btn{display:inline-flex;min-height:48px;min-width:178px;align-items:center;justify-content:center;border-radius:12px;padding:0 20px;font-family:var(--extole-heading-font);font-size:15px;font-weight:600;text-decoration:none!important;transition:transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease}.extole-btn:hover{transform:translateY(-1px)}.extole-btn-primary{background:var(--extole-primary-fill);color:#ffffff!important;box-shadow:0 10px 22px rgba(11, 18, 61, 0.22)}.extole-btn-secondary{border:1px solid var(--extole-border-strong);background:var(--extole-secondary-bg);color:var(--extole-navy)!important}.extole-sandbox{margin-top:30px;color:var(--extole-muted);font-size:0.92rem}.extole-sandbox a{color:var(--extole-navy);font-weight:600}.extole-code-panel{max-height:500px;min-width:0;overflow:hidden;padding:30px 26px;background:radial-gradient(circle at 90% 0%, rgba(224, 0, 73, 0.36), transparent 38%),\n linear-gradient(160deg, #131a47 0%, #0b123d 56%, #070c28 100%);color:#ffffff}.extole-code-kicker{color:#93a4d2}.extole-code-panel [class*=\"codeblock\"],.extole-code-panel pre,.extole-code-panel code{font-family:\"PaperMono\", \"SFMono-Regular\", Consolas, monospace!important}.extole-code-panel pre{background:transparent!important;color:#d4d4d4;font-size:0.84rem;line-height:1.65;margin:0;max-height:365px;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(160, 173, 205, 0.3) rgba(8, 14, 39, 0.28);scrollbar-width:thin;text-align:left;white-space:pre;word-break:normal}.extole-code-panel .line{display:block;min-height:1.65em}.extole-code-panel .tok-comment{color:#6a9955}.extole-code-panel .tok-keyword,.extole-code-panel .tok-tag{color:#569cd6}.extole-code-panel .tok-attr,.extole-code-panel .tok-property,.extole-code-panel .tok-variable{color:#9cdcfe}.extole-code-panel .tok-string{color:#ce9178}.extole-code-panel .tok-function{color:#dcdcaa}.extole-code-panel .tok-number{color:#b5cea8}.extole-code-panel .tok-type{color:#4ec9b0}.extole-code-panel pre::-webkit-scrollbar{width:8px}.extole-code-panel pre::-webkit-scrollbar-track{background:rgba(8, 14, 39, 0.28);border-radius:10px}.extole-code-panel pre::-webkit-scrollbar-thumb{background:rgba(160, 173, 205, 0.3);border-radius:10px}.extole-code-tabs{display:flex;gap:18px;margin-bottom:18px;border-bottom:1px solid rgba(138, 156, 201, 0.24)}.extole-code-tab{display:inline-flex;padding-bottom:10px;color:#9fb0dd;cursor:pointer;font-family:var(--extole-heading-font);font-size:0.78rem}.extole-tab-radio{block-size:1px;inline-size:1px;margin:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute}.extole-code-block{display:none}#extole-code-tab-js:checked~.extole-code-tabs .extole-code-tab[for=\"extole-code-tab-js\"],#extole-code-tab-react-native:checked~.extole-code-tabs .extole-code-tab[for=\"extole-code-tab-react-native\"],#extole-code-tab-ios:checked~.extole-code-tabs .extole-code-tab[for=\"extole-code-tab-ios\"],#extole-code-tab-android:checked~.extole-code-tabs .extole-code-tab[for=\"extole-code-tab-android\"]{border-bottom:2px solid #f5e7a5;color:#f4f8ff}#extole-code-tab-js:checked~.extole-code-block-js,#extole-code-tab-react-native:checked~.extole-code-block-react-native,#extole-code-tab-ios:checked~.extole-code-block-ios,#extole-code-tab-android:checked~.extole-code-block-android{display:block}.extole-link-strip{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));margin-top:42px;overflow:hidden;border:1px solid var(--extole-border);border-radius:24px;background:var(--extole-card-bg)}.extole-link-strip a{display:flex;min-height:78px;align-items:center;gap:14px;padding:18px 24px;color:var(--extole-ink);text-decoration:none!important}.extole-link-strip a+a{border-left:1px solid var(--extole-border)}.extole-link-strip strong{font-family:\"PaperMono\", \"SFMono-Regular\", Consolas, monospace;font-family:var(--extole-heading-font);font-size:15px;letter-spacing:0}.extole-icon{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;border-radius:11px;color:#fff;font-size:13px;font-weight:800}.extole-icon svg,.extole-support-icon svg{display:block;height:22px;width:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.extole-icon span{line-height:1}.extole-icon-navy{background:var(--extole-icon-navy-bg)}.extole-icon-gray{background:#7c8191}.extole-icon-pink{background:var(--extole-coral)}.extole-icon-blue{background:#a7d8eb}.extole-icon-yellow{background:#fee64b;color:var(--extole-ink)}.extole-icon-react{background:#0b1748;color:#61dafb}.extole-icon-black{background:#171717}.extole-icon-green{background:#9fcb4a}.extole-section{margin-top:50px;padding:50px 0}.extole-section h2{margin:0;font-size:clamp(1.35rem, 2vw, 1.9rem);line-height:1.2}.extole-section>p:not(.extole-kicker){max-width:720px;margin:16px 0 28px;color:var(--extole-muted);font-size:17px}.extole-pattern-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:18px}.extole-stack-layout{display:grid;gap:14px}.extole-stack-pattern{background:var(--extole-card-bg);border:1px solid var(--extole-border);border-radius:var(--extole-radius);display:grid;gap:20px;grid-template-columns:minmax(0, 30%) minmax(0, 70%);padding:24px}.extole-stack-pattern-head h3{color:var(--extole-navy);font-family:var(--extole-heading-font);margin:0 0 10px}.extole-stack-pattern-head p{color:var(--extole-muted);font-size:0.9rem;line-height:1.55;margin:0}.extole-stack-pattern-groups{display:grid;gap:12px;grid-template-columns:repeat(2, minmax(0, 1fr))}.extole-stack-group{background:var(--extole-surface);border:1px solid var(--extole-border);border-radius:12px;padding:12px 14px}.extole-stack-group-title{color:var(--extole-muted);font-family:var(--extole-heading-font);font-size:0.68rem;font-weight:600;letter-spacing:0.08em;line-height:1.2;margin:0 0 9px;text-transform:uppercase}.extole-stack-group ul{list-style:none!important;margin:0;padding:0!important}.extole-stack-group li+li{border-top:1px solid var(--extole-border);margin-top:7px;padding-top:7px}.extole-stack-group a,.extole-devhub a:not(.extole-btn):not(.extole-partner-item):not(.extole-pattern-card){color:var(--extole-navy);font-weight:600;text-decoration:underline;text-decoration-color:rgba(11, 18, 61, 0.35);text-decoration-thickness:1px;text-underline-offset:2px}.extole-stack-group a:hover,.extole-devhub a:not(.extole-btn):not(.extole-partner-item):not(.extole-pattern-card):hover{color:var(--extole-coral);text-decoration-color:rgba(238, 0, 73, 0.65)}.extole-partner-filter-layout{align-items:start;display:grid;gap:20px;grid-template-columns:minmax(220px, 260px) minmax(0, 1fr)}.extole-partner-filter-panel{display:grid;gap:10px}.extole-partner-filter-title{color:var(--extole-navy);font-family:var(--extole-heading-font);font-size:0.9rem;margin:0}.extole-partner-filter-copy{color:var(--extole-muted);font-size:0.86rem;line-height:1.45;margin:-2px 0 4px}.extole-partner-filter-option{align-items:self-end;color:var(--extole-muted);column-gap:10px;cursor:pointer;display:grid;grid-template-columns:16px minmax(0, 1fr);line-height:1.35}.extole-partner-filter-option span{font-family:var(--extole-heading-font);font-size:0.74rem;line-height:1.25}.extole-partner-filter-input{accent-color:var(--extole-coral);height:16px;margin:2px 0 0;width:16px}.extole-partner-filter-option:has(.extole-partner-filter-input:checked){color:var(--extole-navy);font-weight:600}.extole-partner-surface{background:var(--extole-card-bg);border:1px solid var(--extole-border);border-radius:var(--extole-radius);padding:4px}.extole-partner-grid{display:grid;gap:8px;grid-template-columns:repeat(4, minmax(0, 1fr))}.extole-partner-item{border-radius:12px;color:var(--extole-navy);display:block;min-height:178px;padding:14px 16px;text-decoration:none!important;transition:background-color 0.2s ease, box-shadow 0.2s ease}.extole-partner-item:hover{background:var(--extole-surface-muted);box-shadow:0 8px 18px rgba(11, 18, 61, 0.08)}.extole-partner-logo{align-items:center;background:var(--extole-logo-bg);border:1px solid var(--extole-border);border-radius:10px;display:inline-flex;height:44px;justify-content:center;margin:0 0 12px;padding:8px 12px}.extole-partner-logo img{display:block;height:100%;max-width:120px;object-fit:contain;width:auto}.extole-partner-item h3{color:var(--extole-navy);font-family:var(--extole-heading-font);font-size:0.94rem;line-height:1.35;margin:0 0 8px}.extole-partner-item p{color:var(--extole-muted);font-size:0.82rem;line-height:1.45;margin:0}.extole-partner-filter-layout:has(#partner-filter-cep:checked) .extole-partner-item:not(.partner-cat-cep),.extole-partner-filter-layout:has(#partner-filter-ecommerce:checked) .extole-partner-item:not(.partner-cat-ecommerce),.extole-partner-filter-layout:has(#partner-filter-banking:checked) .extole-partner-item:not(.partner-cat-banking),.extole-partner-filter-layout:has(#partner-filter-cdp:checked) .extole-partner-item:not(.partner-cat-cdp),.extole-partner-filter-layout:has(#partner-filter-crm:checked) .extole-partner-item:not(.partner-cat-crm),.extole-partner-filter-layout:has(#partner-filter-rewards:checked) .extole-partner-item:not(.partner-cat-rewards),.extole-partner-filter-layout:has(#partner-filter-analytics:checked) .extole-partner-item:not(.partner-cat-analytics),.extole-partner-filter-layout:has(#partner-filter-tag:checked) .extole-partner-item:not(.partner-cat-tag),.extole-partner-filter-layout:has(#partner-filter-automation:checked) .extole-partner-item:not(.partner-cat-automation){display:none}.extole-support-grid{background:var(--extole-card-bg);border:1px solid var(--extole-border);border-radius:var(--extole-radius);display:grid;gap:18px;grid-template-columns:repeat(3, minmax(0, 1fr));margin-top:28px;padding:24px}.extole-pattern-card{display:block;min-height:100%;padding:24px;border:1px solid var(--extole-border);border-radius:var(--extole-radius);background:var(--extole-card-bg);box-shadow:0 8px 24px rgba(11, 18, 61, 0.05);color:var(--extole-ink);text-decoration:none!important}.extole-support-icon{align-items:center;border-radius:14px;color:#ffffff;display:inline-flex;height:44px;justify-content:center;margin-bottom:18px;width:44px}.extole-support-icon-help{background:var(--extole-coral)}.extole-support-icon-ticket{background:#3c4260}.extole-support-icon-status{background:#47b881}.extole-pattern-card h3{margin:0 0 12px;color:var(--extole-navy);font-family:var(--extole-heading-font);font-size:1.02rem}.extole-pattern-card p{margin:0;color:var(--extole-muted);font-size:0.93rem;line-height:1.6}.extole-card-cta{display:inline-flex;margin-top:16px;color:var(--extole-navy);font-family:var(--extole-heading-font);font-size:0.88rem;font-weight:600;text-decoration:underline;text-decoration-color:rgba(11, 18, 61, 0.35);text-decoration-thickness:1px;text-underline-offset:2px}@media (max-width: 1100px){.extole-hero{grid-template-columns:1fr}.extole-hero-copy{min-height:auto}}@media (max-width: 1024px){.extole-partner-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}.extole-partner-filter-layout{grid-template-columns:minmax(190px, 230px) minmax(0, 1fr)}.extole-stack-pattern{gap:14px;grid-template-columns:1fr}}@media (max-width: 900px){.extole-stack-pattern-groups{grid-template-columns:1fr}.extole-partner-filter-layout{gap:14px;grid-template-columns:1fr}.extole-partner-filter-panel{grid-template-columns:repeat(2, minmax(0, 1fr))}.extole-partner-filter-title,.extole-partner-filter-copy{grid-column:1 / -1}}@media (max-width: 820px){.extole-home{padding:12px 14px 64px}.extole-hero-copy,.extole-code-panel{border-radius:18px;padding:28px 22px}.extole-link-strip,.extole-pattern-grid,.extole-support-grid{grid-template-columns:1fr}.extole-link-strip a+a{border-left:0;border-top:1px solid var(--extole-border)}}@media (max-width: 640px){.extole-section{margin-top:20px;padding:20px 0}.extole-partner-surface{padding:0}.extole-partner-grid{grid-template-columns:1fr}.extole-partner-filter-panel{display:none}.extole-partner-filter-layout{grid-template-columns:1fr}.extole-stack-pattern{padding:20px}.extole-stack-group{padding:11px 12px}.extole-btn{min-width:100%;width:100%}.extole-actions{flex-direction:column}}"},{"filePath":"style.css","content":".object-param-field [data-component-part=\"tabs-list\"]{display:none!important}[role=\"dialog\"] [data-component-part=\"tabs-list\"]:has([data-component-part=\"tab\"]:nth-child(2)),[role=\"dialog\"] [data-component-part=\"tabs-list\"]:has([role=\"tab\"]:nth-child(2)){position:absolute!important;left:0!important;top:0!important;width:1px!important;min-width:0!important;max-width:1px!important;height:1px!important;min-height:0!important;max-height:1px!important;padding:0!important;margin:0!important;overflow:hidden!important;clip:rect(0, 0, 0, 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}[role=\"dialog\"] [data-testid=\"api-input-type\"].extole-type-field-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0, 0, 0, 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}.extole-type-combo{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;margin:0 0 0.75rem}.extole-type-combo label{font-size:0.75rem;font-weight:600;color:#78716c}html.dark .extole-type-combo label,html.dark .extole-type-combo-meta,html.dark .extole-type-combo-empty{color:#a8a29e}.extole-type-combo-wrap{position:relative;flex:1 1 16rem;min-width:16rem;cursor:pointer}.extole-type-combo-wrap input{box-sizing:border-box;width:100%;min-width:16rem;margin:0;padding:0.5rem 2rem 0.5rem 0.75rem;border:1px solid #d6d3d1;border-radius:0.5rem;background:#fff;color:inherit;font:inherit;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:0.8125rem;line-height:1.25rem;cursor:pointer}.extole-type-combo-wrap input:focus{cursor:text;outline:2px solid rgb(238 0 73 / 0.35);outline-offset:1px}html.dark .extole-type-combo-wrap input{border-color:#44403c;background:#1c1917}.extole-type-combo-wrap::after{content:\"\";position:absolute;top:50%;right:0.85rem;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #78716c;transform:translateY(-50%);pointer-events:none}.extole-type-combo-menu{position:absolute;z-index:40;top:calc(100% + 0.25rem);left:0;right:0;max-height:18rem;overflow:auto;border:1px solid #d6d3d1;border-radius:0.5rem;background:#fff;box-shadow:0 10px 30px rgb(0 0 0 / 0.12)}html.dark .extole-type-combo-menu{border-color:#44403c;background:#1c1917}.extole-type-combo-menu button{display:block;width:100%;margin:0;padding:0.5rem 0.75rem;border:0;background:transparent;color:inherit;font:inherit;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:0.75rem;text-align:left;cursor:pointer}.extole-type-combo-menu button:hover,.extole-type-combo-menu button[aria-selected=\"true\"]{background:rgb(28 25 23 / 0.06);color:var(--api-ink)}html.dark .extole-type-combo-menu button:hover,html.dark .extole-type-combo-menu button[aria-selected=\"true\"]{background:rgb(255 255 255 / 0.08);color:var(--api-ink)}.extole-type-combo-empty{padding:0.75rem;font-size:0.75rem;color:#78716c}.extole-type-combo-meta{font-size:0.75rem;color:#78716c;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:12ch}.extole-eval-combo{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;margin:0 0 0.75rem}.extole-eval-combo-wrap{position:relative;flex:1 1 16rem;min-width:16rem}.extole-eval-combo-select{box-sizing:border-box;width:100%;min-width:16rem;margin:0;padding:0.5rem 2rem 0.5rem 0.75rem;border:1px solid #d6d3d1;border-radius:0.5rem;background:#fff;color:inherit;font:inherit;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:0.8125rem;line-height:1.25rem;appearance:none;cursor:pointer}.extole-eval-combo-select:focus{outline:2px solid rgb(238 0 73 / 0.35);outline-offset:1px}html.dark .extole-eval-combo-select{border-color:#44403c;background:#1c1917}.extole-eval-combo-wrap::after{content:\"\";position:absolute;top:50%;right:0.85rem;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #78716c;transform:translateY(-50%);pointer-events:none}.extole-eval-map{margin:0.35rem 0 0.5rem}.extole-eval-map-list{display:flex;flex-direction:column;gap:0.5rem}.extole-eval-map-row{display:flex;flex-wrap:wrap;gap:0.4rem;align-items:center}.extole-eval-map-key,.extole-eval-map-type,.extole-eval-map-input{box-sizing:border-box;margin:0;padding:0.45rem 0.7rem;border:1px solid #d6d3d1;border-radius:0.5rem;background:#fff;color:inherit;font:inherit;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:0.8125rem;line-height:1.25rem}.extole-eval-map-key{width:7.5rem}.extole-eval-map-type{width:13.5rem;padding-right:1.6rem;appearance:auto;cursor:pointer}.extole-eval-map-val{display:flex;flex:1 1 12rem;min-width:10rem;align-items:center;border:1px solid #d6d3d1;border-radius:0.5rem;background:#fff}.extole-eval-map-val.is-invalid{border-color:#ee0049}.extole-eval-map-prefix{flex:0 0 auto;padding:0 0 0 0.65rem;color:#78716c;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:0.7rem;white-space:nowrap}.extole-eval-map-val .extole-eval-map-input{flex:1 1 auto;min-width:0;border:0;background:transparent}html.dark .extole-eval-map-key,html.dark .extole-eval-map-type,html.dark .extole-eval-map-val,html.dark .extole-eval-map-input{border-color:#44403c;background:#1c1917}html.dark .extole-eval-map-val .extole-eval-map-input{background:transparent}html.dark .extole-eval-map-remove{border-color:#44403c;color:#a8a29e}.extole-eval-map-key:focus,.extole-eval-map-type:focus,.extole-eval-map-val:focus-within{outline:2px solid rgb(238 0 73 / 0.35);outline-offset:1px}.extole-eval-map-hint{flex:1 0 100%;margin:0;font-size:0.75rem;color:#ee0049}.extole-eval-map-remove{width:2rem;height:2rem;padding:0;border:1px solid #d6d3d1;border-radius:0.5rem;background:transparent;color:#78716c;cursor:pointer;font-size:1rem;line-height:1}.extole-eval-map-add{margin:0.15rem 0 0;padding:0;border:0;background:transparent;color:#ee0049;font-size:0.8125rem;cursor:pointer}[data-testid=\"api-input-values\"].extole-eval-map-on>.grid{display:none!important}html[data-extole-driving] [role=\"menu\"]{display:none!important}select.extole-eval-native-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0, 0, 0, 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}:root{--api-ink: #1c1917;--api-body: #44403c;--api-meta: #57534e;--api-faint: #a8a29e;--api-accent: #b3003a;--api-warn: #b45309;--api-rule: #ded9d1;--api-rule-soft: #ebe7e1;--api-panel: transparent;--api-row: transparent;--api-wash: rgb(179 0 58 / 0.07);--api-row-pad: 0.625rem;--api-gap: 0.375rem}html.dark{--api-ink: #f5f3f1;--api-body: #d6d3d1;--api-meta: #a8a29e;--api-faint: #78716c;--api-accent: #ff7096;--api-warn: #fcd34d;--api-rule: #46403d;--api-rule-soft: #2f2a28;--api-panel: rgb(255 255 255 / 0.04);--api-row: rgb(255 255 255 / 0.022);--api-wash: rgb(255 112 150 / 0.10)}.primitive-param-field>.py-6,.object-param-field>.py-6,.array-param-field>.py-6{padding-block:var(--api-row-pad)}@supports selector(:has(*)){div:has(>.param-head){padding-block:var(--api-row-pad)}}.param-head>div{padding-block:0;margin-right:0}.param-head>div>div{row-gap:0.125rem;column-gap:0.5rem}.param-head [data-component-part=\"field-meta\"]>div{line-height:20px}.param-head~div:not(:empty){margin-top:var(--api-gap)}.param-head~div:not(:empty)>*{margin-top:0}.param-head~div:not(:empty)>*+*{margin-top:var(--api-gap)}.primitive-param-field,.object-param-field,.array-param-field{border-color:var(--api-rule-soft)}.api-section-heading>div{border-bottom:0}@supports selector(:has(*)){div:has(>.method-pill){border:0}}@supports selector(:has(*)){.object-param-field:not(:has(>.py-6)):has(.param-head){margin-block:var(--api-gap);border:1px solid var(--api-rule);border-radius:0.5rem;padding:0.5rem;background:var(--api-panel)}}@supports selector(:has(*)){.primitive-param-field:has(>.py-6),.array-param-field:has(>.py-6),.object-param-field:has(>.py-6){margin-block:var(--api-gap);border:1px solid var(--api-rule);border-radius:0.375rem;padding-inline:0.75rem;background:var(--api-row)}}.param-head [data-component-part=\"field-name\"]{color:var(--api-ink);font-weight:600;letter-spacing:-0.006em}.param-head{word-break:normal;overflow-wrap:anywhere}.param-head [data-component-part=\"field-required-pill\"]{padding:0;border:0;border-radius:0;background:none;color:var(--api-meta);font-weight:500}.param-head [data-component-part=\"field-info-pill\"]+[data-component-part=\"field-required-pill\"]::before{content:\"\\00B7\";margin-right:0.35em;color:var(--api-faint)}.param-head[id^=\"response-\"] [data-component-part=\"field-required-pill\"]{display:none}.param-head [data-component-part=\"field-info-pill\"]{padding:0;border-radius:0;background:none;color:var(--api-meta);font-weight:500}.param-head [data-component-part=\"field-info-pill\"]+[data-component-part=\"field-info-pill\"]::before{content:\"\\00B7\";margin-right:0.35em;color:var(--api-faint)}.param-head [data-component-part=\"field-meta\"]>:last-child{margin-right:0}.param-head [data-component-part=\"field-meta-pre\"],.param-head [data-component-part=\"field-meta-post\"]{font-weight:400}.param-head [data-component-part=\"field-deprecated-pill\"]{padding:0;border-radius:0;background:none;color:var(--api-warn);font-size:0.6875rem;font-weight:500}.param-head~div .prose{color:var(--api-body)}.param-head~div .prose p{margin:0;font-size:0.875rem;line-height:1.55}.param-head~div .prose>*+*{margin-top:0.5rem}.param-head~div .prose code{color:var(--api-ink)}.param-head~div .prose-sm:not(.prose){color:var(--api-meta);font-size:0.75rem;line-height:1.45}.param-head~div .prose-sm:not(.prose) code{color:var(--api-body)}@supports selector(:has(*)){.primitive-param-field:not(:has(.param-head)) .prose-sm:not(.prose),.object-param-field:not(:has(.param-head)) .prose-sm:not(.prose),.array-param-field:not(:has(.param-head)) .prose-sm:not(.prose){margin-top:var(--api-gap)}}.param-head~div [data-component-part=\"expandable\"]{margin-top:0.5rem;border:0;border-radius:0}.param-head~div [data-component-part=\"expandable-button\"]{width:auto;padding:0.125rem 0;border-radius:0;color:var(--api-meta);font-size:0.75rem;font-weight:500}.param-head~div [data-component-part=\"expandable-button\"]:hover{background:none;color:var(--api-ink)}.param-head~div [data-component-part=\"expandable-content\"]{margin:0.25rem 0 0;padding:0 0 0 0.875rem;border-top:0;border-left:1px solid var(--api-rule)}.api-section-heading{gap:0.5rem}.api-section-heading-title{color:var(--api-meta);font-size:0.6875rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase}@supports selector(:has(*)){div:has(>.api-section){margin-bottom:2rem}}@supports selector(:has(*)){div:has(>.param-head:target){border-radius:2px;background:var(--api-wash);box-shadow:10px 0 0 var(--api-wash), -10px 0 0 var(--api-wash)}}.newsletter-container .lead{max-width:60ch;color:var(--api-body)}.nl-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5rem;margin-top:1.5rem}.nl-head h2{margin:0 0 0.75rem;padding-bottom:0.5rem;border-bottom:1px solid var(--api-rule);font-size:1.125rem}.nl-list{margin:0;padding:0;list-style:none!important}.nl-list>li::before{content:none!important;display:none!important}.nl-item{margin-bottom:0.75rem;padding:0.875rem;border:1px solid var(--api-rule);border-radius:0.5rem;background:var(--api-panel)}.nl-item__head{display:flex;gap:0.75rem;align-items:flex-start;justify-content:space-between}.nl-month{margin:0;color:var(--api-ink);font-size:0.9375rem;font-weight:600;line-height:1.4}.nl-item .actions{flex:0 0 auto}.nl-item .btn{display:inline-flex;align-items:center;padding:0.25rem 0.75rem;border:1px solid var(--api-rule);border-radius:0.375rem;color:var(--api-ink)!important;font-size:0.75rem;font-weight:600;text-decoration:none!important;white-space:nowrap}.nl-item .btn:hover{border-color:var(--api-meta)}.nl-item [data-component-part=\"accordion\"]{margin-top:0.625rem}.nl-item [data-component-part=\"accordion-content\"] ul{margin:0;color:var(--api-body);font-size:0.8125rem;line-height:1.55}@media (max-width: 820px){.nl-grid{grid-template-columns:1fr}}a[href=\"#request-sandbox\"]{align-items:center;background:#000!important;border-radius:999px;color:#fff!important;display:inline-flex;font-family:\"Poppins\", \"Inter\", sans-serif;font-size:0.8125rem;font-weight:600;justify-content:center;line-height:1;min-height:2.25rem;padding:0.625rem 0.875rem;text-decoration:none!important;transition:background-color 160ms ease, transform 160ms ease}a[href=\"#request-sandbox\"]:hover{background:#27272a!important;transform:translateY(-1px)}a[href=\"#request-sandbox\"]:focus-visible,.extole-sandbox-modal button:focus-visible{outline:3px solid #ee0049;outline-offset:3px}.extole-sandbox-open{overflow:hidden}.extole-sandbox-modal{align-items:center;background:rgb(11 18 61 / 0.64);display:flex;inset:0;justify-content:center;padding:1.5rem;position:fixed;z-index:10000}.extole-sandbox-modal[hidden]{display:none}.extole-sandbox-dialog{background:#fff;border-radius:1.25rem;box-shadow:0 24px 64px rgb(11 18 61 / 0.3);color:#151a2d;max-height:calc(100vh - 3rem);max-width:36rem;overflow:auto;padding:2rem;position:relative;width:100%}.extole-sandbox-dialog h2{color:#151a2d;font-family:\"Poppins\", \"Inter\", sans-serif;font-size:1.75rem;line-height:1.15;margin:0 2.5rem 0.5rem 0}.extole-sandbox-dialog p{color:#4f5c6d;font-family:\"Poppins\", \"Inter\", sans-serif;line-height:1.5;margin:0}.extole-sandbox-close{align-items:center;background:transparent;border:0;border-radius:999px;color:#151a2d;cursor:pointer;display:inline-flex;font-size:1.5rem;height:2.25rem;justify-content:center;padding:0;position:absolute;right:1.25rem;top:1.25rem;width:2.25rem}.extole-sandbox-close:hover{background:#f1f1f1}.extole-sandbox-form{display:grid;gap:1rem;grid-template-columns:repeat(2, minmax(0, 1fr));margin-top:1.5rem}.extole-sandbox-field{display:grid;gap:0.5rem}.extole-sandbox-field-full{grid-column:1 / -1}.extole-sandbox-privacy{color:#383848;font-family:\"Poppins\", \"Inter\", sans-serif;font-size:0.8em;grid-column:1 / -1;line-height:1.5;margin:0}.extole-sandbox-privacy a{color:#151a2d;font-size:inherit;font-weight:600;text-decoration:underline;text-underline-offset:0.125em}.extole-sandbox-captcha{grid-column:1 / -1}.extole-sandbox-error{color:#9f1239;font-size:0.875rem;grid-column:1 / -1;margin:0}.extole-sandbox-field label{color:#383848;font-family:\"Poppins\", \"Inter\", sans-serif;font-size:0.875rem;font-weight:600}.extole-sandbox-field input,.extole-sandbox-field textarea{background:#fff;border:1px solid #c7c7c7;border-radius:0.25rem;box-sizing:border-box;color:#000;font-family:\"Poppins\", \"Inter\", sans-serif;font-size:1rem;min-height:2.75rem;padding:0.5rem 0.75rem;width:100%}.extole-sandbox-field input:focus-visible,.extole-sandbox-field textarea:focus-visible{border-color:#ee0049;outline:0}.extole-sandbox-field textarea{min-height:7.5rem;resize:vertical}.extole-sandbox-field input::placeholder,.extole-sandbox-field textarea::placeholder{color:#777}.extole-sandbox-submit{background:#383848;border:0;border-radius:999px;color:#fff;cursor:pointer;font-family:\"Poppins\", \"Inter\", sans-serif;font-size:0.875rem;font-weight:600;grid-column:1 / -1;justify-self:start;margin-top:0.5rem;padding:0.75rem 1.25rem}.extole-sandbox-submit:hover{background:#000}.extole-sandbox-submit:disabled{cursor:wait;opacity:0.7}.extole-sandbox-success{display:grid;gap:1.25rem;margin-top:1.5rem}.extole-sandbox-success-icon{align-items:center;background:#e8f5ed;border-radius:999px;color:#187344;display:inline-flex;font-size:1.25rem;font-weight:700;height:2.75rem;justify-content:center;width:2.75rem}.extole-sandbox-success-copy{display:grid;gap:0.5rem}.extole-sandbox-success h3{color:#151a2d;font-family:\"Poppins\", \"Inter\", sans-serif;font-size:1rem;margin:0}.extole-sandbox-success[hidden],.extole-sandbox-form[hidden]{display:none}@media (max-width: 40rem){.extole-sandbox-dialog{border-radius:1rem;padding:1.5rem}.extole-sandbox-form{grid-template-columns:1fr}.extole-sandbox-submit{width:100%}}"}],"page":{"pagePath":"guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program","slug":"/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program","pageMetadata":{"title":"Configuring the Rules of Your Program","description":"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.","href":"/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.`}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:`Changing a rule updates a draft of the campaign. The new setting is used only after the campaign is published. If the campaign has not launched yet, publishing happens when you take it live; if it is already live, contact your CSM to publish the change.`}),_jsx(_components.p,{children:`Rules apply to events as they arrive, so publishing a change affects new events only. Extole does not re-score events that were already processed, and an event held by a rule you have since turned off stays held.`})]}),`\n`,_jsx(_components.p,{children:`Each event has three components: Quality Rules, Approval Workflow, and Rewards. To best understand how Extole works, it’s helpful to consider these concepts in the following order:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quality Rules`}),` - When an event occurs, Extole applies event-specific quality rules to determine if the event meets all of the terms of the program. Extole marks an event as suspicious if any rule fails and marks an event passing if all rules succeed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Approval Workflow`}),` - Events (other than the advocate share) trigger rewards but only when the events are approved. Approvals happen through a workflow, which approves or declines passing events. After a specified period of time, the workflow settings move events to approved or declined. Event approval can also occur through API, through file upload, and manually in the Extole customer support screens.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rewards`}),` - Once an event is approved, Extole applies reward rules to see if the event meets reward criteria and to determine whether the friend or the advocate earns the reward for that event.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`To learn how to find event statuses for specific events and to understand more about passing \u0026 suspicious and approved \u0026 declined, please read this help center article: `,_jsx(_components.a,{href:`/guides/rewards-management/reward-fulfillment/look-up-and-understand-your-program-event-statuses`,children:`Look Up and Understanding Your Program Event Statuses`}),`.`]}),`\n`,_jsx(Heading,{level:`1`,id:`every-event-quality-rules`,children:`Every Event Quality Rules`}),`\n`,_jsx(_components.p,{children:`The following quality rules are applied to all events. Please note, if you have an older campaign, this section may not appear. If you have any questions, please contact your CSM.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Quality Rule`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Best Practices`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blocked Countries List`}),_jsx(_components.td,{children:`Events originating from the IP address by countries specified here are marked as suspicious.`}),_jsx(_components.td,{children:`Extole recommends blocking OFAC countries as well as countries that originate spam. Extole includes LB, BY, LR, AF, IR, YE, SD, ID, UA, CN, MM, SY, CI, BZ, RU, ML, VE, ZW, KP, SO, CF, LY, PH, IQ, CU by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Permitted Countries List`}),_jsx(_components.td,{children:`Events originating from the IP address by countries specified here will be approved.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blocked Email Domains`}),_jsx(_components.td,{children:`Participants with email domains that appear on the block list cannot share or receive shares.`}),_jsx(_components.td,{children:`Extole has a comprehensive email domain block list built-in, which includes disposable email domains.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blacklisted Site Domains`}),_jsx(_components.td,{children:`Events originating from blacklisted site domains are invalid.`}),_jsx(_components.td,{children:`Extole has a comprehensive site domain block list built-in, which you may add to if desired.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blocked`}),_jsx(_components.td,{children:`Block events if the actions or participants(s) leading to the event are blocked.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Extole Global Block`}),_jsx(_components.td,{children:`Block events if Extole has identified the participant as fraudulent across the platform.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Block Person by IP`}),_jsx(_components.td,{children:`Block any specified IP addresses from being able to participate in the program.`}),_jsx(_components.td,{children:`NA`})]})]})]}),`\n`,_jsx(Heading,{level:`1`,id:`advocate-share-quality-rules`,children:`Advocate Share Quality Rules`}),`\n`,_jsx(_components.p,{children:`For the advocate share event, you may configure the following rules. When a share fails a quality rule, Extole will not send a share email. Social posts, however, will still be permitted. Please note, if you have an older campaign, some of these rules may look different. If you have any questions, please contact your CSM.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Quality Rule`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Best Practices`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Rate Limit Emails`}),_jsx(_components.td,{children:`A friend can only receive a certain rate of emails over a period of time.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Prevent Mass Shares`}),_jsx(_components.td,{children:`A share count of over the specified limit during a time period is invalid.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Minimum / Maximum Shares`}),_jsx(_components.td,{children:`A share count under or over the specified minimum and maximum limits are invalid. This rule can be set to count all shares as unique, even if sent to the same person.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Spam Messages`}),_jsx(_components.td,{children:`Block advocate email shares when the Extole system suspects they are spam by checking the content of the personalized message for spam triggers.`}),_jsx(_components.td,{children:`By default, this rule is enabled.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Valid Emails Only`}),_jsx(_components.td,{children:`Block events associated with invalid emails.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Specified Participant`}),_jsxs(_components.td,{children:[`The participant can only share if their Extole profile has a specified property with a specified value. For example, if you only want to reward a particular segment of your customer base, you could add a specific parameter to those customers’ profiles and only reward those whose parameter matches a certain value (i.e., “parameter called `,_jsx(_components.code,{children:`employee`}),` with a value of `,_jsx(_components.code,{children:`true`}),`”).`]}),_jsx(_components.td,{children:`NA`})]})]})]}),`\n`,_jsx(Heading,{level:`1`,id:`clicked-\u0026-signed-up-quality-rules`,children:`Clicked \u0026 Signed Up Quality Rules`}),`\n`,_jsx(_components.p,{children:`The following rules can be configured for both click events and sign up events. Please note, if you have an older campaign, these rules may be referred to as “friend visit” and “friend registration.” If you have any questions, please contact your CSM.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Quality Rule`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Best Practice`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Bot Multi-Click Prevention`}),_jsx(_components.td,{children:`A second click or sign up by the same person within 30 seconds of one that already scored high quality is invalid. Someone who opens two different share links in quick succession trips this rule, even when nothing about the traffic is automated.`}),_jsx(_components.td,{children:`Internally configured. The 30 second window is fixed; the rule can only be turned on or off.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Is First Friend Click`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Internally configured.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`New Customer Rule`}),_jsx(_components.td,{children:`Events with an email that appears on the existing person list are invalid. Most friends visit anonymously and this rule cannot be applied.`}),_jsx(_components.td,{children:`Internally configured.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Clicked Too Quickly`}),_jsx(_components.td,{children:`Events that occur quickly after a share may be suspicious.`}),_jsx(_components.td,{children:`By default, events that occur within 5 seconds after the share event are invalid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Recognition Lookback Window`}),_jsx(_components.td,{children:`Only treat friend events as high quality if the most recent referral happened within a specified time period.`}),_jsx(_components.td,{children:`By default, the time period is set to one year.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Block Self Referral by IP`}),_jsx(_components.td,{children:`Events with a friend IP address the same as the advocate IP address are invalid.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Block Self Referral`}),_jsxs(_components.td,{children:[`Guard against self referral based on email address. The email check compares the two local parts after removing dots and any `,_jsx(_components.code,{children:`+`}),` suffix, and drops the digits when at least three letters remain, so `,_jsx(_components.code,{children:`jane.doe@example.com`}),` and `,_jsx(_components.code,{children:`jane.doe+friend@example.com`}),` match. You can also guard against self referral based on browser ID.`]}),_jsx(_components.td,{children:`By default, guarding against self referral based on browser ID is enabled.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Similar Email Address`}),_jsxs(_components.td,{children:[`Events with a similar advocate or friend email address are invalid. For example if there is already a friend at “`,_jsx(_components.a,{href:`mailto:julio.friend@gmail.com`,children:`julio.friend@gmail.com`}),_jsx(_components.a,{href:`mailto:julio.friend@gmail.com`}),`” then “`,_jsx(_components.a,{href:`mailto:julio.friend+1@gmail.com`,children:`julio.friend+1@gmail.com`}),_jsx(_components.a,{href:`mailto:julio.friend+1@gmail.com`}),`” would be considered a similar friend.`]}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Valid Emails Only`}),_jsx(_components.td,{children:`Block events associated with invalid emails.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Specified Participant`}),_jsxs(_components.td,{children:[`The participant can only share if their Extole profile has a specified property with a specified value. For example, if you only want to reward a particular segment of your customer base, you could add a specific parameter to those customers’ profiles and only reward those whose parameter matches a certain value (i.e., “parameter called `,_jsx(_components.code,{children:`employee`}),` with a value of `,_jsx(_components.code,{children:`true`}),`”).`]}),_jsx(_components.td,{children:`NA`})]})]})]}),`\n`,_jsx(Heading,{level:`1`,id:`friend-conversion-quality-rules`,children:`Friend Conversion Quality Rules`}),`\n`,_jsx(_components.p,{children:`For the friend conversion event, you may configure the following rules.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Quality Rule`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Best Practice`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Clicked Too Quickly`}),_jsx(_components.td,{children:`Events that occur quickly after a share may be suspicious.`}),_jsx(_components.td,{children:`By default, events that occur within 5 seconds after the share event are invalid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Advocate Conversion Limits`}),_jsx(_components.td,{children:`An advocate can only drive a certain number of events in a certain number of days.`}),_jsx(_components.td,{children:`By default, this rule is set to one event per day.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`New Customers Only`}),_jsx(_components.td,{children:`Events with an advocate or friend email that appears on the existing customer list are invalid.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Recognition Lookback Window`}),_jsx(_components.td,{children:`Only treat friend events as high quality if the most recent referral happened within a specified time period.`}),_jsx(_components.td,{children:`By default, the time period is set to one year.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Block Self Referral by IP`}),_jsx(_components.td,{children:`Events with a friend IP address the same as the advocate IP address are invalid.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Block Self Referral`}),_jsxs(_components.td,{children:[`Guard against self referral based on email address. The email check compares the two local parts after removing dots and any `,_jsx(_components.code,{children:`+`}),` suffix, and drops the digits when at least three letters remain, so `,_jsx(_components.code,{children:`jane.doe@example.com`}),` and `,_jsx(_components.code,{children:`jane.doe+friend@example.com`}),` match. You can also guard against self referral based on browser ID.`]}),_jsx(_components.td,{children:`By default, this rule is enabled and guarding against self referral based on browser ID is enabled.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Similar Email Address`}),_jsxs(_components.td,{children:[`Events with a similar advocate or friend email address are invalid. For example if there is already a friend at “`,_jsx(_components.a,{href:`mailto:julio.friend@gmail.com`,children:`julio.friend@gmail.com`}),_jsx(_components.a,{href:`mailto:julio.friend@gmail.com`}),`” then “`,_jsx(_components.a,{href:`mailto:julio.friend+1@gmail.com`,children:`julio.friend+1@gmail.com`}),_jsx(_components.a,{href:`mailto:julio.friend+1@gmail.com`}),`” would be considered a similar friend.`]}),_jsx(_components.td,{children:`By default, this rule is enabled.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Valid Emails Only`}),_jsx(_components.td,{children:`Block events associated with invalid emails.`}),_jsx(_components.td,{children:`By default, this rule is enabled.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Specified Participant`}),_jsxs(_components.td,{children:[`The participant can only share if their Extole profile has a specified property with a specified value. For example, if you only want to reward a particular segment of your customer base, you could add a specific parameter to those customers’ profiles and only reward those whose parameter matches a certain value (i.e., “parameter called `,_jsx(_components.code,{children:`employee`}),` with a value of `,_jsx(_components.code,{children:`true`}),`”).`]}),_jsx(_components.td,{children:`NA`})]})]})]}),`\n`,_jsx(Heading,{level:`1`,id:`approval-workflow-configuration`,children:`Approval Workflow Configuration`}),`\n`,_jsx(_components.p,{children:`The Approval Workflow moves events to the approved or declined state after a specified period of time. Event approval can also occur via API, through file upload, or manually in Extole’s customer support screens.`}),`\n`,_jsx(_components.p,{children:`Most of the programs automatically approve and decline passing and suspicious events quickly. Shares, visits, and registrations should generally be automatically approved or declined within 0 days (instantly).`}),`\n`,_jsx(_components.p,{children:`For conversions or transactions, you might want to include a delay to prevent a high volume of rewards. On average, settings are between 7-14 days to approve or decline all conversions. Keep in mind that the more moments of quick delight you can give to your customers, the more likely they are to continue to refer and the less likely they are to call customer support. Therefore, we suggest you keep this delay to a minimum.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Conversion or transaction event workflow best practices by vertical`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Retail referral programs will typically auto-approve conversions within 3-7 days. You may use this pending time to send Extole a cancellation by API/file if the purchase is canceled.`}),`\n`,_jsx(_components.li,{children:`Subscription referral programs will typically auto-approve conversions after the free trial period of 14-30 days and send Extole any trial cancellations by API/file.`}),`\n`,_jsx(_components.li,{children:`LeadGen and Consumer Financial programs will typically auto-approve conversions after 1-day.`}),`\n`]}),`\n`,_jsx(Heading,{level:`1`,id:`reward-settings-\u0026-rules`,children:`Reward Settings \u0026 Rules`}),`\n`,_jsx(_components.p,{children:`To configure a reward, you must specify:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Who gets the reward (e.g., the advocate or the friend)`}),`\n`,_jsx(_components.li,{children:`What reward they receive`}),`\n`,_jsx(_components.li,{children:`Which rules must be met in order to receive the reward`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The rules page gives you control over the following reward rules:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Rule`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Best Practice`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Their cart value is at least $(0).`}),_jsx(_components.td,{children:`Set the minimum cart value required in order to issue a reward. The cart value of a conversion is passed to Extole in the conversion tag, conversion API, or conversion file.`}),_jsx(_components.td,{children:`Your company’s AOV. For example, the friend’s purchase must be at least $75 for the advocate to be rewarded. If you enable this rule on an event that doesn’t pass cart value, no rewards will be issued.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The rewardee has an email address.`}),_jsx(_components.td,{children:`This rule ensures reward are only attempted to be sent to people with email addresses.`}),_jsx(_components.td,{children:`Because in most cases email is how we deliver a reward, this is enabled by default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The rewardee should be rewarded every “(N)th” qualifying transaction.`}),_jsx(_components.td,{children:`You can create a second bonus reward on every nth transaction. For example, you could give an advocate a bonus reward for every five unique friends they drive to purchase.`}),_jsx(_components.td,{children:`NA`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The rewardee identified by their email has earned fewer than (0) rewards… since the last month of (0) (1-12 map to Jan-Dec)… and in the past (0) day(s).`}),_jsx(_components.td,{children:`Use this rule to restrict the number of rewards an advocate or friend may earn and to restrict the time period under which the rule applies. Both of these date filters will run and people will only be rewarded when both filters pass. Most commonly this can be used to limit the number of rewards earned in a month or year.`}),_jsx(_components.td,{children:`Because we allow for an approval buffer period to catch fraudulent events, we recommend not restricting the number of rewards an advocate can obtain. Instead, use Extole to track these people and create a separate super-advocate or influencer campaign for these users.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The rewardee identified by their email has received less than $(0)… since the last month of (0) (1-12 map to Jan-Dec)… and in the past (0) day(s).`}),_jsx(_components.td,{children:`Use this rule to restrict the total value of rewards an advocate or friend may earn and to restrict the time period under which the rule applies. Both of these date filters will run and people will only be rewarded when both filters pass. Most commonly this can be used to limit the dollar/currency amount of rewards earned in a month or year.`}),_jsx(_components.td,{children:`This rule is usually enabled for cash rewards to keep earned rewards under the tax-reporting amount.Please note that max reward limits apply to all rewards that are configured. If you run a burst campaign, test, or new program, these limits will still apply and not reset.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The rewardee has not been awarded for the same relationship before.`}),_jsx(_components.td,{children:`Use this rule to ensure that rewards are only being sent to people who have not yet been rewarded for this relationship.`}),_jsx(_components.td,{children:`By default, this rule is enabled to prevent advocates from being rewarded for the same friend twice.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Allow other person in relationship to refer rewardee.`}),_jsx(_components.td,{children:`Enable this rule to allow advocates and friends to refer each other and receive rewards.`}),_jsx(_components.td,{children:`By default, this rule is disabled so that friends cannot refer the advocates that referred them.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`If the parameter named ____ has the value ____ OR matches the regex ____.`}),_jsxs(_components.td,{children:[`This rule allows you to reward based on attributes that are passed Extole on the event. For example, if you only wanted to reward for certain product types, you could pass “product_type” in the conversion tag and if the value is “car” then reward $1000. That means that if the “product_type” passed is not “car” Extole will not trigger a reward. In more sophisticated cases, you can do a regex to support a variety of product IDs, versus just one value. For example: “reward if product_id matches the regex (. `,_jsx(_components.em,{children:`,)?123(,.`}),`)” will support the product IDs that support that pattern.`]}),_jsx(_components.td,{children:`NA`})]})]})]}),`\n`,_jsx(Heading,{level:`1`,id:`advanced-reward-rule-configurations`,children:`Advanced Reward Rule Configurations`}),`\n`,_jsx(_components.p,{children:`In addition to standard Reward Rules, Extole Support can help you write custom reward rules as JavaScript or SpEL expressions or reward groups.`}),`\n`,_jsx(_components.p,{children:`For example, rather than a reward rule that dictates “Advocates can only earn $500,” an advanced reward rule could say “Advocates whose profile identifies them as based in the US can only earn $500.”`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Configuring the Rules of Your Program","description":"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.","href":"/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":1,"children":[]},{"title":"Every Event Quality Rules","slug":"every-event-quality-rules","depth":1,"children":[]},{"title":"Advocate Share Quality Rules","slug":"advocate-share-quality-rules","depth":1,"children":[]},{"title":"Clicked \u0026 Signed Up Quality Rules","slug":"clicked-\u0026-signed-up-quality-rules","depth":1,"children":[]},{"title":"Friend Conversion Quality Rules","slug":"friend-conversion-quality-rules","depth":1,"children":[]},{"title":"Approval Workflow Configuration","slug":"approval-workflow-configuration","depth":1,"children":[]},{"title":"Reward Settings \u0026 Rules","slug":"reward-settings-\u0026-rules","depth":1,"children":[]},{"title":"Advanced Reward Rule Configurations","slug":"advanced-reward-rule-configurations","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/extole/f41fea9c3aac4d55/type-combobox.js","/_mintlify/custom/extole/83546dbecca8dd1c/evaluatable-map.js","/_mintlify/custom/extole/8a8483f8fc226986/evaluatable-selector.js","/_mintlify/custom/extole/83812e823faa6683/request-sandbox.js"],"subdomain":"extole","siteName":"Extole Documentation","title":"Configuring the Rules of Your Program - Extole Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-01T14:23:38.438Z","originalFileLocation":"guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Extole Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configuring the Rules of Your Program - Extole Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Extole Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://extole.mintlify.site/_mintlify/api/og/v2?division=Rules+Configuration\u0026amp;title=Configuring+the+Rules+of+Your+Program\u0026amp;description=Quality+and+reward+rules+are+applied+to+all+key+events+that+occur+within+your+Extole+programs.+These+rules+can+be+configured+in+the+My+Extole+Campaign+Editor+un\u0026amp;theme=1484b4628d2fbfb7ddbdf997\u0026amp;signature=1839111ab7616ca056d708775772f27ac8120a740688cd7ed012d6f0f9ed5efa\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Configuring the Rules of Your Program - Extole Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://extole.mintlify.site/_mintlify/api/og/v2?division=Rules+Configuration\u0026amp;title=Configuring+the+Rules+of+Your+Program\u0026amp;description=Quality+and+reward+rules+are+applied+to+all+key+events+that+occur+within+your+Extole+programs.+These+rules+can+be+configured+in+the+My+Extole+Campaign+Editor+un\u0026amp;theme=1484b4628d2fbfb7ddbdf997\u0026amp;signature=1839111ab7616ca056d708775772f27ac8120a740688cd7ed012d6f0f9ed5efa\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/extole/fqJbsSkQuI9X8tIY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Extole Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ee0049\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.extole.com/#organization\",\"name\":\"Extole Documentation\",\"url\":\"https://docs.extole.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/extole/qEcOgc0BuXrP2LAU/extole-logo.png?fit=max\u0026auto=format\u0026n=qEcOgc0BuXrP2LAU\u0026q=85\u0026s=d7152863dcc1c598d4fac27f91b3658e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.extole.com#website\",\"name\":\"Extole Documentation\",\"url\":\"https://docs.extole.com\",\"publisher\":{\"@id\":\"https://docs.extole.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program#webpage\",\"url\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program\",\"name\":\"Configuring the Rules of Your Program\",\"description\":\"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.\",\"dateModified\":\"2026-11-01T14:23:38.438Z\",\"isPartOf\":{\"@id\":\"https://docs.extole.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Extole Documentation\",\"item\":\"https://docs.extole.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configuring the Rules of Your Program\",\"item\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program#article\",\"headline\":\"Configuring the Rules of Your Program\",\"name\":\"Configuring the Rules of Your Program\",\"description\":\"Quality and reward rules are applied to all key events that occur within your Extole programs. These rules can be configured in the My Extole Campaign Editor under the Rules tab.\",\"url\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program\",\"mainEntityOfPage\":{\"@id\":\"https://docs.extole.com/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program#webpage\"},\"dateModified\":\"2026-11-01T14:23:38.438Z\",\"publisher\":{\"@id\":\"https://docs.extole.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.extole.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Extole Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Extole Documentation","nav":{"global":null,"tabs":[{"tab":"Product Docs","pages":[{"title":"Product Docs","href":"/product/extole-overview/what-is-extole"}]},{"tab":"Technical Docs","pages":[{"title":"Technical Docs","href":"/technical/integration-overview/integrating-with-extole"}]},{"tab":"Guides","groups":[{"group":"Platform Overview","pages":[{"group":"Extole Chat","pages":[{"title":"Troubleshooting Extole Chat","href":"/guides/platform-overview/extole-chat/troubleshooting"}]},{"group":"Key Concepts","pages":[{"title":"Understanding Participation Rate","href":"/guides/platform-overview/key-concepts/understanding-participation-rate"},{"title":"Acquisition Rate","href":"/guides/platform-overview/key-concepts/acquisition-rate"},{"title":"What is the Value that Extole Delivers?","href":"/guides/platform-overview/key-concepts/what-is-the-value-that-extole-delivers"},{"title":"How Does Extole Recognize Advocates?","href":"/guides/platform-overview/key-concepts/how-does-extole-recognize-advocates"},{"title":"Referral Marketing Glossary","href":"/guides/platform-overview/key-concepts/referral-marketing-glossary"}]},{"group":"Implementing your Referral Program","pages":[{"title":"Program and Campaign Flows","href":"/guides/platform-overview/implementing-your-referral-program/program-and-campaign-flows"},{"group":"Creating CTAs","pages":[{"title":"Marketing Tags for Marketers","href":"/guides/platform-overview/implementing-your-referral-program/creating-ctas/marketing-tags-for-marketers"},{"title":"How to Create a Promo Link","href":"/guides/platform-overview/implementing-your-referral-program/creating-ctas/how-to-create-a-promo-link"},{"title":"How to Host Your Own Call-to-Action","href":"/guides/platform-overview/implementing-your-referral-program/creating-ctas/how-to-host-your-own-call-to-action"}]},{"group":"Technical Items","pages":[{"title":"Webhooks","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/webhooks"},{"title":"Passing all Events to Extole","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/passing-all-events-to-extole"},{"title":"How to Track Referral Revenue Generated by Your Program","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/how-to-track-referral-revenue-generated-by-your-program"},{"title":"Delivering Share Messages","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/delivering-share-messages"},{"title":"Program Domain Setup","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/program-domain-setup"},{"title":"Managing Your Branded URLs","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/managing-your-branded-urls"},{"title":"Migrating to a New Program Domain","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/migrating-to-a-new-program-domain"},{"title":"Mobile App Sharing","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/mobile-app-sharing"},{"title":"Tracking Conversions with a Mobile App","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/tracking-conversions-with-a-mobile-app"},{"title":"Technical Requirements","href":"/guides/platform-overview/implementing-your-referral-program/technical-items/technical-requirements"}]}]},{"title":"Getting Started with Extole","href":"/guides/platform-overview/getting-started-with-extole"},{"title":"Go-Live QA Checklist","href":"/guides/platform-overview/go-live-qa-checklist"},{"title":"Introducing My Extole","href":"/guides/platform-overview/introducing-my-extole"},{"title":"Preparing Your Support Team for Extole","href":"/guides/platform-overview/inform-your-support-team-about-your-extole-program"},{"title":"Leveraging User Support Pages","href":"/guides/platform-overview/leveraging-user-support-pages"},{"title":"Meet Cate: Your 24/7 Program Assistance Chatbot","href":"/guides/platform-overview/meet-cate-your-24-7-program-assistance-chatbot"},{"title":"Programs vs. Campaigns","href":"/guides/platform-overview/programs-vs-campaigns"},{"title":"Creating a Program","href":"/guides/platform-overview/creating-a-program"},{"title":"Referral Program QA Guide for Marketers","href":"/guides/platform-overview/referral-program-qa-guide-for-marketers"},{"title":"Exploring the Programs Page","href":"/guides/platform-overview/exploring-the-programs-page"},{"title":"Exploring the Reports Page","href":"/guides/platform-overview/exploring-the-reports-page"},{"title":"Add a Promotion (Onsite Call-to-Action or Marketing Email)","href":"/guides/platform-overview/add-a-promotion-onsite-call-to-action-or-marketing-email"},{"title":"Extole Opt-In/Opt-Out Sync Guide","href":"/guides/platform-overview/extole-opt-in-opt-out-sync-guide"},{"title":"Manually Uploading Events to Extole","href":"/guides/platform-overview/manually-uploading-events-to-extole"},{"title":"Program and Campaign Dashboards","href":"/guides/platform-overview/program-and-campaign-dashboards"},{"title":"Set Up Dynamic Eligible Audience Files","href":"/guides/platform-overview/set-up-dynamic-eligible-audience-files"},{"title":"Tracking Referrals via Tags vs. Email Capture","href":"/guides/platform-overview/tracking-referrals-via-tags-vs-email-capture"},{"title":"Uploading an Eligibility Audience File via SFTP","href":"/guides/platform-overview/uploading-an-eligibility-audience-file-via-sftp"},{"title":"Targeting","href":"/guides/platform-overview/targeting"}]},{"group":"Programs \u0026 Campaigns","pages":[{"group":"Campaign Creation \u0026 Editing","pages":[{"title":"Quick Start a Referral Campaign","href":"/guides/programs-and-campaigns/campaign-creation-and-editing/quick-start-a-referral-campaign"},{"title":"Using Extole's Campaign Editor","href":"/guides/programs-and-campaigns/campaign-creation-and-editing/using-extole-s-campaign-editor"},{"title":"Enable Friend Email Capture for Opt Ins","href":"/guides/programs-and-campaigns/campaign-creation-and-editing/enable-friend-email-capture-for-opt-ins"},{"title":"How Do I Clone an Existing Campaign?","href":"/guides/programs-and-campaigns/campaign-creation-and-editing/how-do-i-clone-an-existing-campaign"},{"title":"Implement Fonts Across Your Creatives","href":"/guides/programs-and-campaigns/campaign-creation-and-editing/implement-fonts-across-your-creatives"},{"title":"Creative Customizations","href":"/guides/programs-and-campaigns/campaign-creation-and-editing/creative-customizations"}]},{"group":"Asset Guides","pages":[{"title":"Social Media Share Creative Elements","href":"/guides/programs-and-campaigns/asset-guides/social-media-share-creative-elements"},{"title":"Creative Image Asset Guide","href":"/guides/programs-and-campaigns/asset-guides/creative-image-asset-guide"},{"title":"Drop a Hint Asset Guide","href":"/guides/programs-and-campaigns/asset-guides/drop-a-hint-asset-guide"},{"title":"Nomination Asset Guide","href":"/guides/programs-and-campaigns/asset-guides/nomination-asset-guide"},{"title":"Sweepstakes Asset Guide","href":"/guides/programs-and-campaigns/asset-guides/sweepstakes-asset-guide"},{"title":"Welcome Offer Asset Guide","href":"/guides/programs-and-campaigns/asset-guides/welcome-offer-asset-guide"},{"title":"Friends \u0026 Family Asset Guide","href":"/guides/programs-and-campaigns/asset-guides/friends-family-asset-guide"},{"title":"Advocate Invite Email","href":"/guides/programs-and-campaigns/asset-guides/advocate-invite-email-asset-guide"},{"title":"Advocate Stats Email","href":"/guides/programs-and-campaigns/asset-guides/advocate-stats-email-asset-guide"},{"title":"Earned Reward Emails","href":"/guides/programs-and-campaigns/asset-guides/earned-reward-emails-asset-guide"},{"title":"Friend Landing Experience","href":"/guides/programs-and-campaigns/asset-guides/friend-landing-experience-asset-guide"},{"title":"Pending Reward Email","href":"/guides/programs-and-campaigns/asset-guides/pending-reward-email-asset-guide"},{"title":"Share Email \u0026 Reminder","href":"/guides/programs-and-campaigns/asset-guides/share-email-reminder-asset-guide"},{"title":"Share Experience","href":"/guides/programs-and-campaigns/asset-guides/share-experience-asset-guide"},{"title":"Welcome Email","href":"/guides/programs-and-campaigns/asset-guides/welcome-email-asset-guide"}]},{"group":"International Programs","pages":[{"title":"Adding Languages to International Programs","href":"/guides/programs-and-campaigns/international-programs/adding-languages-to-international-programs"},{"title":"International Programs","href":"/guides/programs-and-campaigns/international-programs/international-programs"},{"title":"Configuring an International Program","href":"/guides/programs-and-campaigns/international-programs/configuring-an-international-program"}]},{"group":"Other Acquisition and Engagement Programs","pages":[{"title":"Sweepstakes Program","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/sweepstakes-program"},{"title":"Launch a Credit Union Welcome Offer","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/launch-a-credit-union-welcome-offer"},{"title":"Launch an MDU Referral Program","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/launch-an-mdu-referral-program"},{"title":"Agent Programs","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/agent-programs"},{"title":"Run Targeted Super Advocate Programs","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/run-targeted-super-advocate-programs"},{"title":"How to Approve Pending Ambassadors","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/how-to-approve-pending-ambassadors"},{"title":"Campaigns for Selected Audiences","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/campaigns-for-selected-audiences"},{"title":"Welcome Offer Program","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/welcome-offer-program"},{"title":"Launch a Sweepstakes / Giveaway","href":"/guides/programs-and-campaigns/other-acquisition-and-engagement-programs/launch-a-sweepstakes-giveaway"}]},{"group":"Managing Campaigns","pages":[{"title":"Pausing, Ending, and Scheduling Campaigns","href":"/guides/programs-and-campaigns/managing-campaigns/pausing-ending-and-scheduling-campaigns"},{"title":"What Happens When a Campaign Is Paused","href":"/guides/programs-and-campaigns/managing-campaigns/what-happens-when-a-campaign-is-paused"},{"title":"How to Run A Burst","href":"/guides/programs-and-campaigns/managing-campaigns/how-to-run-a-burst"},{"title":"Share Link and Promote Link Behavior","href":"/guides/programs-and-campaigns/managing-campaigns/share-link-and-promote-link-behavior"},{"title":"How to Push Your Test Campaign Live","href":"/guides/programs-and-campaigns/managing-campaigns/how-to-push-your-test-campaign-live"},{"title":"How to QA Your Referral Program","href":"/guides/programs-and-campaigns/managing-campaigns/how-to-qa-your-referral-program"},{"title":"Making Updates to your Campaigns","href":"/guides/programs-and-campaigns/managing-campaigns/making-updates-to-your-campaigns"},{"title":"Compare a Component Across Campaign Versions","href":"/guides/programs-and-campaigns/managing-campaigns/compare-a-component-across-campaign-versions"},{"title":"How to Rebrand Your Program","href":"/guides/programs-and-campaigns/managing-campaigns/how-to-rebrand-your-program"}]},{"title":"Add an Advocate Stats Dashboard","href":"/guides/programs-and-campaigns/add-an-advocate-stats-dashboard"},{"title":"Adding and Removing Share Channels","href":"/guides/programs-and-campaigns/adding-and-removing-share-channels"},{"title":"Advocate Share Experience","href":"/guides/programs-and-campaigns/advocate-share-experience"},{"title":"Call-to-Action Creative Elements","href":"/guides/programs-and-campaigns/call-to-action-creative-elements"},{"title":"Choosing Your Advocate Sharing Experience","href":"/guides/programs-and-campaigns/choosing-your-advocate-sharing-experience"},{"title":"Common HTML Tags for Basic Campaign Editing","href":"/guides/programs-and-campaigns/common-html-tags-for-basic-campaign-editing"},{"title":"Editing the Advocate Microsite and Share Experience","href":"/guides/programs-and-campaigns/editing-the-advocate-microsite-and-share-experience"},{"title":"Go Extole App Login Guide","href":"/guides/programs-and-campaigns/go-extole-app-login-guide"},{"title":"How to Set Up a Loyalty Program","href":"/guides/programs-and-campaigns/how-to-set-up-a-loyalty-program"},{"title":"How to Set Up a Reward for Action Offer Program","href":"/guides/programs-and-campaigns/how-to-set-up-a-reward-for-action-offer-program"},{"title":"How to Upload Terms \u0026 Conditions","href":"/guides/programs-and-campaigns/how-to-upload-terms-conditions"},{"title":"My Account Settings","href":"/guides/programs-and-campaigns/my-account-settings"},{"title":"Overlay Creative Elements","href":"/guides/programs-and-campaigns/overlay-creative-elements"},{"title":"Overlay CTAs and How to Optimize Them for Sharing","href":"/guides/programs-and-campaigns/overlay-ctas-and-how-to-optimize-them-for-sharing"},{"title":"Reward Bank Redemption Experience","href":"/guides/programs-and-campaigns/reward-bank-redemption-experience"},{"title":"Tango Reward Email","href":"/guides/programs-and-campaigns/tango-reward-email"}]},{"group":"Dashboards and Reporting","root":{"title":"Dashboards and Reporting","href":"/guides/dashboards-and-reporting/index"},"pages":[{"group":"Extole Dashboards \u0026 Metrics","root":{"title":"Extole Dashboards \u0026 Metrics","href":"/guides/dashboards-and-reporting/extole-dashboards-and-metrics/index"},"pages":[{"title":"How to Measure and Benchmark Your Referral Program Success","href":"/guides/dashboards-and-reporting/extole-dashboards-and-metrics/how-to-measure-and-benchmark-your-referral-program-success"},{"title":"The Influencer Program Page","href":"/guides/dashboards-and-reporting/extole-dashboards-and-metrics/the-influencer-program-page"},{"title":"How Do I Prevent Testing Data from Appearing in my Analytics Dashboard?","href":"/guides/dashboards-and-reporting/extole-dashboards-and-metrics/how-do-i-prevent-testing-data-from-appearing-in-my-analytics-dashboard"},{"title":"Downloadable Reports on Program and Campaign Dashboards","href":"/guides/dashboards-and-reporting/extole-dashboards-and-metrics/downloadable-reports-on-program-and-campaign-dashboards"},{"title":"Using My Timeline Dates","href":"/guides/dashboards-and-reporting/extole-dashboards-and-metrics/using-my-timeline-dates"},{"title":"Account Dashboard","href":"/guides/dashboards-and-reporting/extole-dashboards-and-metrics/account-dashboard"}]},{"group":"Integrating Reports","pages":[{"title":"SFTP and Batch File Conventions","href":"/guides/dashboards-and-reporting/integrating-reports/sftp-and-batch-file-conventions"},{"title":"Using Extole's SFTP Server","href":"/guides/dashboards-and-reporting/integrating-reports/using-extole-s-sftp-server"},{"title":"Integrating Extole with Web Analytics","href":"/guides/dashboards-and-reporting/integrating-reports/integrating-extole-with-web-analytics"},{"title":"Sending Reports to an External SFTP","href":"/guides/dashboards-and-reporting/integrating-reports/sending-reports-to-an-external-sftp"},{"title":"How to Use the Extole Asynchronous Reporting API","href":"/guides/dashboards-and-reporting/integrating-reports/how-to-use-the-extole-asynchronous-reporting-api"}]},{"group":"Configuring Reports","pages":[{"title":"Choosing the Right Report","href":"/guides/dashboards-and-reporting/configuring-reports/choosing-the-right-report"},{"title":"Advanced Report Configuration","href":"/guides/dashboards-and-reporting/configuring-reports/advanced-report-configuration"},{"title":"Scheduled Reports","href":"/guides/dashboards-and-reporting/configuring-reports/scheduled-reports"},{"title":"Aggregated Reports","href":"/guides/dashboards-and-reporting/configuring-reports/aggregated-reports"},{"title":"Understanding How Extole Counts People","href":"/guides/dashboards-and-reporting/configuring-reports/understanding-how-extole-counts-people"},{"title":"Configurable Report Types and Their Entities","href":"/guides/dashboards-and-reporting/configuring-reports/configurable-report-types-and-their-entities"},{"title":"Custom Data Queries using Extole Reports","href":"/guides/dashboards-and-reporting/configuring-reports/custom-data-queries-using-extole-reports"},{"title":"Entities and Context Available in Extole's Configurable Reporting System","href":"/guides/dashboards-and-reporting/configuring-reports/entities-and-context-available-in-extole-s-configurable-reporting-system"}]},{"group":"Report Types","root":{"title":"Report Types","href":"/guides/dashboards-and-reporting/report-types/index"},"pages":[{"group":"Recommended Reports","pages":[{"title":"Participation Rate Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/participation-rate-report"},{"title":"Events Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/events-report"},{"title":"Metrics Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/metrics-report"},{"title":"Successful Advocates Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/successful-advocates-report"},{"title":"Top Promotion Sources Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/top-promotion-sources-report"},{"title":"Email Stats Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/email-stats-report"},{"title":"Acquisition Rate Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/acquisition-rate-report"},{"title":"Rewards Reporting","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/rewards-reporting"},{"title":"Fulfilled Rewards Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/fulfilled-rewards-report"},{"title":"Person Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/person-report"},{"title":"People Who Took a Specific Action Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/people-who-took-a-specific-action-report"},{"title":"Referral Funnel Performance Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/referral-funnel-performance-report"},{"title":"Visited Events Report","href":"/guides/dashboards-and-reporting/report-types/recommended-reports/visited-events-report"}]},{"group":"Audience Reports","root":{"title":"Audience Reports","href":"/guides/dashboards-and-reporting/report-types/audience-reports/index"},"pages":[{"title":"Unique Share Messages Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/unique-share-messages-report"},{"title":"Referred Friends Who Advocate Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/referred-friends-who-advocate-report"},{"title":"Inactive Advocates Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/inactive-advocates-report"},{"title":"Advocate Opt-in Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/advocate-opt-in-report"},{"title":"Active Advocates Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/active-advocates-report"},{"title":"Influencer Stats Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/influencer-stats-report"},{"title":"Count of Successful Advocates Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/count-of-successful-advocates-report"},{"title":"Reports Based on Locale and Country","href":"/guides/dashboards-and-reporting/report-types/audience-reports/reports-based-on-locale-and-country"},{"title":"Count of Active Advocates Report","href":"/guides/dashboards-and-reporting/report-types/audience-reports/count-of-active-advocates-report"}]},{"group":"Rewards Reports","pages":[{"title":"Nominations Report","href":"/guides/dashboards-and-reporting/report-types/rewards-reports/nominations-report"},{"title":"Reward Transitions Report","href":"/guides/dashboards-and-reporting/report-types/rewards-reports/reward-transitions-report"},{"title":"Failed Rewards Report","href":"/guides/dashboards-and-reporting/report-types/rewards-reports/failed-rewards-report"},{"title":"Earned Rewards Report","href":"/guides/dashboards-and-reporting/report-types/rewards-reports/earned-rewards-report"},{"title":"Friend Conversion Report","href":"/guides/dashboards-and-reporting/report-types/rewards-reports/friend-conversion-report"},{"title":"Revenue Contribution Report","href":"/guides/dashboards-and-reporting/report-types/rewards-reports/revenue-contribution-report"},{"title":"Reward Bank Reports","href":"/guides/dashboards-and-reporting/report-types/rewards-reports/reward-bank-reports"}]}]},{"title":"How to Run a Report","href":"/guides/dashboards-and-reporting/how-to-run-a-report"},{"title":"CSV Encoding","href":"/guides/dashboards-and-reporting/csv-encoding"},{"title":"New Customer Contribution Rate Report","href":"/guides/dashboards-and-reporting/new-customer-contribution-rate-report"},{"title":"Paused Reports","href":"/guides/dashboards-and-reporting/paused-reports"},{"title":"Person vs. Related Person Columns in Reports","href":"/guides/dashboards-and-reporting/person-vs-related-person-columns-in-reports"},{"title":"Recommended Reports","href":"/guides/dashboards-and-reporting/recommended-reports"},{"title":"Understand Extole Journeys and How to Use Them in Reports","href":"/guides/dashboards-and-reporting/understanding-extole-journeys-extended-reference-for-reporting"},{"title":"Understanding the “Direct” Promotion Source","href":"/guides/dashboards-and-reporting/understanding-the-direct-promotion-source"},{"title":"Visit Type and Quality","href":"/guides/dashboards-and-reporting/visit-type-and-quality"}]},{"group":"Audiences \u0026 Segmentation","pages":[{"group":"Audience Management","pages":[{"title":"Existing Customer List Management","href":"/guides/audiences-and-segmentation/audience-management/existing-customer-list-management"},{"title":"Eligibility Files","href":"/guides/audiences-and-segmentation/audience-management/eligibility-files"}]},{"group":"My Audiences","pages":[{"title":"How to Send a Promotional Email to an Audience","href":"/guides/audiences-and-segmentation/my-audiences/how-to-send-a-promotional-email-to-an-audience"},{"title":"Interpreting the Network Graph","href":"/guides/audiences-and-segmentation/my-audiences/interpreting-the-network-graph"},{"title":"Upload and Email an Audience","href":"/guides/audiences-and-segmentation/my-audiences/upload-and-email-an-audience"}]},{"group":"Segmentation","pages":[{"title":"Turning Friends Into Advocates","href":"/guides/audiences-and-segmentation/segmentation/turning-friends-into-advocates"},{"title":"Using Refer-a-Friend Data Beyond Refer-a-Friend","href":"/guides/audiences-and-segmentation/segmentation/using-refer-a-friend-data-beyond-refer-a-friend"},{"title":"Advocacy Customer Segments","href":"/guides/audiences-and-segmentation/segmentation/advocacy-customer-segments"},{"title":"Dive into People - Find Your Super Advocates and Discover Who's New","href":"/guides/audiences-and-segmentation/segmentation/dive-into-people-find-your-super-advocates-and-discover-who-s-new"},{"title":"Converting Advocates to Influencers","href":"/guides/audiences-and-segmentation/segmentation/converting-advocates-to-influencers"}]},{"title":"Advocate Tiers","description":"You may think of the advocates that participate in your customer engagement programs as a single, unified group. However, our data gives us the power to create meaningful segments within the advocate group so that each segment can be treate…","href":"/guides/audiences-and-segmentation/advocate-tiers"}]},{"group":"Rewards Management","pages":[{"group":"Rules Configuration","pages":[{"title":"Configuring the Rules of Your Program","href":"/guides/rewards-management/rules-configuration/configuring-the-rules-of-your-program"},{"title":"Fraud and Anti-gaming Protection","description":"Extole employs a sophisticated, AI-powered tool to detect and prevent fraudulent activity from bad actors and broader gaming attempts on your programs.","href":"/guides/rewards-management/rules-configuration/fraud-and-anti-gaming-protection"},{"title":"Preventing Fraud and Best Practices for Campaign Rules","href":"/guides/rewards-management/rules-configuration/preventing-fraud-and-best-practices-for-campaign-rules"},{"title":"New Customer Rule","href":"/guides/rewards-management/rules-configuration/new-customer-rule"}]},{"group":"Reward Fulfillment","pages":[{"title":"WISMR 101: Understanding Missing Reward Requests","href":"/guides/rewards-management/reward-fulfillment/wismr-101-understanding-customer-reward-inquiries"},{"title":"Investigating Missing Rewards and Attribution","href":"/guides/rewards-management/reward-fulfillment/how-to-investigate-a-wismr-request"},{"title":"How to Resend a Reward","href":"/guides/rewards-management/reward-fulfillment/how-to-resend-a-reward"},{"title":"How to Change a Person's Email","href":"/guides/rewards-management/reward-fulfillment/how-to-change-a-persons-email"},{"title":"How to Resend Tango Rewards","href":"/guides/rewards-management/reward-fulfillment/how-to-resend-tango-rewards"},{"title":"Look Up and Understand Your Program Event Statuses","href":"/guides/rewards-management/reward-fulfillment/look-up-and-understand-your-program-event-statuses"},{"title":"Approving and Declining Events Workflow","href":"/guides/rewards-management/reward-fulfillment/approving-and-declining-events-workflow"},{"title":"How to Manually Create a Referral or other Event","href":"/guides/rewards-management/reward-fulfillment/how-to-manually-create-a-referral-or-other-event"},{"title":"How to Block Users and Decline Shares","href":"/guides/rewards-management/reward-fulfillment/how-to-block-users-and-decline-shares"},{"title":"Troubleshooting a Friend's Referral Discount Not Applying","href":"/guides/rewards-management/reward-fulfillment/troubleshooting-friend-referral-discount-not-applying"},{"title":"Managing Member Points","href":"/guides/rewards-management/reward-fulfillment/managing-member-points"}]},{"group":"Setting up your Rewards","pages":[{"title":"How to Reward with Tango Gift Cards","href":"/guides/rewards-management/setting-up-your-rewards/how-to-reward-with-tango-gift-cards"},{"title":"How to Reward with Salesforce Commerce Cloud","href":"/guides/rewards-management/setting-up-your-rewards/how-to-reward-with-salesforce-commerce-cloud"},{"title":"How to Reward with Account Credits","href":"/guides/rewards-management/setting-up-your-rewards/how-to-reward-with-account-credits"},{"title":"How to Reward with Coupons","href":"/guides/rewards-management/setting-up-your-rewards/how-to-reward-with-coupons"},{"title":"Offer Advocates Multiple Gift Card Options","href":"/guides/rewards-management/setting-up-your-rewards/offer-advocates-multiple-gift-card-options"},{"title":"Auto-Applying Multi-Use Coupons","href":"/guides/rewards-management/setting-up-your-rewards/auto-applying-multi-use-coupons"},{"title":"General Information About Tango Gift Cards","href":"/guides/rewards-management/setting-up-your-rewards/general-information-about-tango-gift-cards"},{"title":"Using Reward and Share Link Passes with a Mobile Wallet","href":"/guides/rewards-management/setting-up-your-rewards/using-reward-passes-with-a-mobile-wallet"},{"title":"How to Configure Reward Expiration","href":"/guides/rewards-management/setting-up-your-rewards/how-to-configure-reward-expiration"},{"title":"Rewards Overview and FAQ","href":"/guides/rewards-management/setting-up-your-rewards/rewards-overview-and-faq"}]},{"title":"Sending Rewards with Tremendous","href":"/guides/rewards-management/sending-rewards-with-tremendous"},{"title":"Set Up Account Credits for Financial Institutions","href":"/guides/rewards-management/set-up-account-credits-for-financial-institutions"}]},{"group":"Strategy \u0026 Best Practices","pages":[{"group":"Tactics \u0026 Strategy","pages":[{"title":"Capturing In-Person Referrals","href":"/guides/strategy-and-best-practices/tactics-and-strategy/capturing-in-person-referrals"},{"title":"How to Market Your Program","href":"/guides/strategy-and-best-practices/tactics-and-strategy/how-to-market-your-program"},{"title":"Top-Performing CTA: Implement the Overlay Call-to-Action Across Your Site","href":"/guides/strategy-and-best-practices/tactics-and-strategy/top-performing-cta-implement-the-overlay-call-to-action-across-your-site"},{"title":"Taking Referrals from Site-to-Store","href":"/guides/strategy-and-best-practices/tactics-and-strategy/taking-referrals-from-site-to-store"},{"title":"Increasing Activity","href":"/guides/strategy-and-best-practices/tactics-and-strategy/increasing-activity"},{"title":"Create A Compelling Offer Structure","href":"/guides/strategy-and-best-practices/tactics-and-strategy/create-a-compelling-offer-structure"}]},{"group":"Campaign Optimization","pages":[{"title":"A/B Testing Your Offer","href":"/guides/strategy-and-best-practices/campaign-optimization/a-b-testing-your-offer"},{"title":"A/B Testing Your Campaign","href":"/guides/strategy-and-best-practices/campaign-optimization/a-b-testing-your-campaign"},{"title":"How Do I Enable Content Sharing?","href":"/guides/strategy-and-best-practices/campaign-optimization/how-do-i-enable-content-sharing"},{"title":"Optimizing Share Channels","href":"/guides/strategy-and-best-practices/campaign-optimization/optimizing-share-channels"},{"title":"How Do I Prevent Ad Blockers from Blocking My Extole Experience","href":"/guides/strategy-and-best-practices/campaign-optimization/how-do-i-prevent-ad-blockers-from-blocking-my-extole-experience"},{"title":"Boost Share Rates with the Stats Drip","href":"/guides/strategy-and-best-practices/campaign-optimization/boost-share-rates-with-the-stats-drip"},{"title":"Enable and Test Friend Reminder Email","href":"/guides/strategy-and-best-practices/campaign-optimization/enable-and-test-friend-reminder-email"},{"title":"Mail After Purchase - Asking for a Referral When It Matters","href":"/guides/strategy-and-best-practices/campaign-optimization/mail-after-purchase-asking-for-a-referral-when-it-matters"},{"title":"Optimizing your Referral Program","href":"/guides/strategy-and-best-practices/campaign-optimization/optimizing-your-referral-program"},{"title":"Using Promotion Badges","href":"/guides/strategy-and-best-practices/campaign-optimization/using-promotion-badges"},{"title":"Why You Should Pop-up Your Advocate Share Experience","href":"/guides/strategy-and-best-practices/campaign-optimization/why-you-should-pop-up-your-advocate-share-experience"},{"title":"Invite Customers to Share Post-Purchase","href":"/guides/strategy-and-best-practices/campaign-optimization/invite-customers-to-share-post-purchase"},{"title":"What to Do About a High Acquisition Rate","href":"/guides/strategy-and-best-practices/campaign-optimization/what-to-do-about-a-high-acquisition-rate"},{"title":"Choosing Your Point-to-Reward Ratio","href":"/guides/strategy-and-best-practices/campaign-optimization/choosing-your-point-to-reward-ratio"},{"title":"Testing Your Loyalty Program","href":"/guides/strategy-and-best-practices/campaign-optimization/testing-your-loyalty-program"}]},{"title":"Create Your Own Customer Facing FAQ","href":"/guides/strategy-and-best-practices/create-your-own-customer-facing-faq"},{"title":"Trigger Advocacy with Seasonal and Burst Promotions","href":"/guides/strategy-and-best-practices/trigger-advocacy-with-seasonal-and-burst-promotions"}]},{"group":"Notifications \u0026 Troubleshooting","pages":[{"group":"Platform \u0026 Admin","pages":[{"title":"How do I view Extole System Status and subscribe to Extole Updates?","href":"/guides/notifications-and-troubleshooting/platform-and-admin/how-do-i-view-extole-system-status-and-subscribe-to-extole-updates"},{"title":"Why Is the From Address @email.referral-mail.com?","href":"/guides/notifications-and-troubleshooting/platform-and-admin/why-is-the-from-email-email-referral-mail-com-gmail-friendly-from-changes"},{"title":"How can I Whitelist My Extole in uBlock Origin?","href":"/guides/notifications-and-troubleshooting/platform-and-admin/how-can-i-whitelist-my-extole-in-ublock-origin"},{"title":"Extole Browser Support","href":"/guides/notifications-and-troubleshooting/platform-and-admin/extole-browser-support"},{"title":"Login Troubleshooting Tips","href":"/guides/notifications-and-troubleshooting/platform-and-admin/login-troubleshooting-tips"},{"title":"Subscribing to My Extole Notifications","href":"/guides/notifications-and-troubleshooting/platform-and-admin/subscribing-to-my-extole-notifications"},{"title":"What to do When you Get a Notification","href":"/guides/notifications-and-troubleshooting/platform-and-admin/what-to-do-when-you-get-a-notification"}]},{"group":"Troubleshooting","pages":[{"title":"Quick Troubleshooting Guide","href":"/guides/notifications-and-troubleshooting/troubleshooting/quick-troubleshooting-guide"}]},{"title":"Managing Your SSL Certificates","href":"/guides/notifications-and-troubleshooting/managing-your-ssl-certificates"}]},{"group":"Compliance \u0026 Policies","pages":[{"title":"ADA Compliance","href":"/guides/compliance-and-policies/ada-compliance"},{"title":"Data Processing Agreement","href":"/guides/compliance-and-policies/data-processing-agreement"},{"title":"Data Subject Rights","href":"/guides/compliance-and-policies/data-subject-rights"},{"title":"Extole Cookie Handling","href":"/guides/compliance-and-policies/extole-cookie-handling"}]},{"group":"User Management","pages":[{"group":"Managing Users","pages":[{"title":"Deleting Team Members","href":"/guides/user-management/managing-users/deleting-team-members"},{"title":"Okta Single Sign-On to My Extole","href":"/guides/user-management/managing-users/okta-single-sign-on-to-my-extole"},{"title":"Creating an Extole Account","href":"/guides/user-management/managing-users/creating-an-extole-account"},{"title":"Inviting Team Members","href":"/guides/user-management/managing-users/inviting-team-members"},{"title":"Managing Your Extole Users","href":"/guides/user-management/managing-users/managing-your-extole-users"},{"title":"User Roles \u0026 Permissions","href":"/guides/user-management/managing-users/user-roles-permissions"}]},{"title":"Access Multiple Instances","href":"/guides/user-management/access-multiple-instances"}]},{"group":"Flow Campaigns","root":{"title":"Flow Campaigns","href":"/guides/flow-campaigns/index"},"pages":[{"title":"How to Create a Reward That Triggers on Event Data","href":"/guides/flow-campaigns/how-to-create-a-reward-that-triggers-on-event-data"},{"title":"How to Set Up Bonus Rewards on a Specific Referral Count (2nd, 3rd, 5th, etc.)","href":"/guides/flow-campaigns/how-to-set-up-bonus-rewards-on-a-specific-referral-count-2nd-3rd-5th-etc"},{"title":"Change the Reward on your Program","href":"/guides/flow-campaigns/change-the-reward-on-your-program"},{"title":"Common Trigger Rules","href":"/guides/flow-campaigns/common-trigger-rules"},{"title":"How to Set Up Triggered By","href":"/guides/flow-campaigns/how-to-set-up-triggered-by"},{"title":"Configure Common Reward Scenarios for Credit Unions and Banks","href":"/guides/flow-campaigns/configure-common-reward-scenarios-for-credit-unions-and-banks"},{"title":"Default Business Event Quality Rules","href":"/guides/flow-campaigns/default-business-event-quality-rules"},{"title":"How to Add a Coupon Reward to Your Referral Program","href":"/guides/flow-campaigns/how-to-add-a-coupon-reward-to-your-referral-program"},{"title":"How to Add a New Business Event","href":"/guides/flow-campaigns/how-to-add-a-new-business-event"},{"title":"How to Add a New Reward","href":"/guides/flow-campaigns/how-to-add-a-new-reward"},{"title":"How to Add a Promotion Email or Onsite CTA","href":"/guides/flow-campaigns/how-to-add-a-promotion-email-or-onsite-cta"},{"title":"How to Approve Failed Rewards","href":"/guides/flow-campaigns/how-to-approve-failed-rewards"},{"title":"How to Issue a Manual Reward","href":"/guides/flow-campaigns/how-to-issue-a-manual-reward"},{"title":"How to Set Up a Reward","href":"/guides/flow-campaigns/how-to-set-up-a-reward"},{"title":"How to Set Up a Tango Gift Card Reward","href":"/guides/flow-campaigns/how-to-set-up-a-tango-gift-card-reward"},{"title":"How to Set Up Business Event Rules","href":"/guides/flow-campaigns/how-to-set-up-business-event-rules"},{"title":"How to Set Up Reward Rules","href":"/guides/flow-campaigns/how-to-set-up-reward-rules"},{"title":"How to Target a Program","href":"/guides/flow-campaigns/how-to-target-a-program"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/getting-started/api-overview"}]},{"tab":"News","pages":[{"title":"News","href":"/news/recent-releases"}]}]},"basePath":"","title":"Configuring the Rules of Your Program - Extole Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}