Interest Manager - Application Configuration
Last Updated: October 1, 2026
AFR features that configure the Interest Manager (FPM) application: general settings, search, Quick Add, validation rules, data migration and display templates.
Source JSON references: ALM_2026_0003_0000_0008.json, ALM_2026_0003_0000_0009.json,ALM_2026_0003_0000_0010.json
Column guide: Fallback is the value the package ships in AFR; Code default is what the code uses when the attribute is not defined at all (and no Fallback exists). Attributes without a Fallback are documented for completeness - the code default applies until an org sets a value.
Features
ACE.FPMACE.FPM.SettingsACE.FPM.Settings.SearchSettingsACE.FPM.Settings.SearchSettings.ContactACE.FPM.Settings.SearchSettings.AccountACE.FPM.Settings.SearchSettings.UserACE.FPM.Settings.SearchSettings.InterestSubjectACE.FPM.Settings.QuickAddACE.FPM.ValidationRulesACE.FPM.MigrationACE.FPM.Views
ACE.FPM
The AFR Tree used by Interest Manager (FPM).
Container feature - no attributes.
ACE.FPM.Settings
Feature housing common settings for Interest Manager (FPM)
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
Enabled |
boolean | FALSE |
TRUE | Master switch for the Interest Manager application. Default (code): TRUE. The Fallback deliberately ships the application disabled until an org turns it on. |
UserMode |
text | REQUESTER |
REQUESTER | User Mode for the Interest Manager Application. Supports 'VIEWER' (view only, including own rules), 'REQUESTER' (edit only rules the user owns), 'EDITOR' (edit whatever the sharing model permits), 'ADMIN' (edit every rule) or 'DEMO' (edit every rule). An unrecognized value falls back to the REQUESTER policy. Default (code): REQUESTER. |
ActingAsEnabled |
boolean | FALSE |
FALSE | Enable UI to act as another user. Proper configuration and FLS permission must be given for both users. |
ActingAsContextType |
text | UserDelegate |
UserDelegate | When ActionAsEnabled is TRUE, this attribute determine the scope of the acting as user selection. Currently supports 'UserDelegate' or 'Team'. Defaults to 'UserDelegate'. |
ShowConfigData |
boolean | FALSE |
FALSE | Enable a section showing config data for DEMO / debugging purpose. |
DeliveryOptions |
text | see below | FPMConfigController.defaultDeliveryOptions - a single Email option (channel ContactFields, entitlement Email) | JSON formatted string representing the available Research Delivery Options. Default (code) when the attribute is not defined: FPMConfigController.defaultDeliveryOptions - a single Email option (channel ContactFields, entitlement Email). |
DeliveryOptionsAllowBeyondDefaults |
boolean | TRUE |
TRUE | Allow users to expand the Delivery Settings picker on a preference rule to the full DeliveryOptions catalog, instead of only offering the options selected on the contact. The contact's selections stay pre-checked. Defaults to TRUE. |
ApprovalDurationOptions |
text | — | LWC list: 30 days, 60 days, 90 days, 1 year, Custom Date Range, No Expiration | JSON formatted string representing the selectable approval duration. Default value provided by LWC which includes: 30 days, 60 days, 90 days, 1 year, Custom Date Range and No Expiration. |
LanguagePreferencesEnabled |
boolean | TRUE |
TRUE | Enable language preference selection. |
LanguageOptions |
text | — | FPMConfigController.defaultLanguageOptions - English (value en-US, mapping eng) | JSON formatted string representing the available Research Language Options. Default (code) when the attribute is not defined: FPMConfigController.defaultLanguageOptions - English (value en-US, mapping eng). |
LanguageOptionsAllowBeyondDefaults |
boolean | TRUE |
TRUE | Allow users to expand the Language Preferences picker on a preference rule to the full LanguageOptions catalog, instead of only offering the options selected on the contact. The contact's selections stay pre-checked. Defaults to TRUE. |
ResearchAccessDefaultChecked |
boolean | TRUE |
TRUE | Check Research Access by default on a new preference rule, in both the Rule Builder and Quick Add Interest. With Research Access the rule is evaluated against the research access rules and the delivery / language / report type qualifiers apply; without it the rule records a general interest only and stores no qualifiers. Set to FALSE for orgs where most rules capture interests rather than research distribution. Defaults to TRUE. |
DNCOptions |
text | see below | FPMConfigController.defaultDNCOptions - Email and Phone types only, with the standard reasons | JSON formatted string representing the DO NOT Contact Options. Default (code) when the attribute is not defined: FPMConfigController.defaultDNCOptions - Email and Phone types only, with the standard reasons. |
ShowNoResearchRuleWarning |
boolean | TRUE |
TRUE | Enable the application to provide warning when there is no research status rule setup. Defaults to TRUE. |
FooterLabel |
text | — | Interest Manager • Powered by SS&C Tier1™ | The footer label for the Interest Manager application. Set attribute to value: 'HIDDEN' to hide the footer label. Defaults to: Interest Manager • Powered by SS&C Tier1™. |
NonCanonicalTypeNames |
text | — | blank | Comma delimited Interest Subject Type Names which gets deduped by tagPath instead of name value during Topic Import Process. |
HeaderLabel |
text | — | HIDDEN | The header label for the Interest Manager application. Set attribute to value: 'HIDDEN' (or leave undefined) to hide the header label. Default (code): HIDDEN. |
ParentTypeName |
text | — | Flexible Preference | Name of the Interest Subject Type that is the root node for Interest Manager topic types. Keeps Interest Manager topics apart from ACE Preference and other topic trees. Default (code): Flexible Preference. |
FilteredSubjectTypes |
text | — | blank (nothing filtered) | Comma delimited Interest Subject Type Ids to exclude from the Topic Type tree. Invalid Ids are ignored. Default (code): blank (nothing filtered). |
SearchEnabledTopicTypes |
text | — | blank | Comma delimited Interest Subject Type Ids whose topics are search enabled in the Rule Builder topic pickers. Default (code): blank. |
ThemeTypeName |
text | — | Theme | Name of the Interest Subject Type that categorizes a topic as a Theme. Default (code): Theme. |
Source |
text | — | FPM | Interest__c.Source__c value written on interests generated from Interest Manager rules. Default (code): FPM. |
Reason |
text | — | Research | Interest__c.Reason__c value written on generated interests while the rule is Research Active (research distribution). Default (code): Research. |
InterestReason |
text | — | Interest | Interest__c.Reason__c value written on generated interests when the rule is NOT Research Active. The interests are still found by the 'Interest' search type but are not part of research distribution. Default (code): Interest. |
DisinterestReason |
text | — | Disinterest | Interest__c.Reason__c value written on a generated row that represents a disinterest (exclusion group), regardless of the rule's research posture. Client Center derives Is_Disinterest__c from this value. Code only value, deliberately absent from the Reason__c picklist. Default (code): Disinterest. |
InterestStructureMode |
text | — | Legacy | Interest__c structure the legacy Client Center code reads and writes. 'Legacy' - single topic per interest via Interest_Subject__c. 'RuleBased' - interests are projections of a Preference_Rule__c, topics live in IS_Search01__c - IS_Search10__c and Interest_Subject__c stays null. Switch to 'RuleBased' only after the data migration AND the rule-aware Client Center code is deployed. Default (code): Legacy. |
TopicTypeMaxDepth |
int | — | 4 | Maximum depth of the Topic Type hierarchy. Default (code): 4. |
MultiParentTopicEnabled |
boolean | — | TRUE | Allow a topic to belong to more than one parent topic. Also used by Preference Search. Default (code): TRUE. |
DefaultRuleJoin |
text | — | AND | Default join between topic groups on a new preference rule, in both the Rule Builder and Quick Add Interest. Supports 'AND' or 'OR'. Default (code): AND. |
InterestRuleLabel |
text | — | Interests | Label appended to the topic type name for an interest (IN) group when a rule name is generated, e.g. 'Sector Interests'. Default (code): Interests. |
DisinterestRuleLabel |
text | — | Exclusions | Label appended to the topic type name for an exclusion (NOT IN) group when a rule name is generated, e.g. 'Sector Exclusions'. Default (code): Exclusions. |
SyncSearchCacheEnabled |
boolean | — | TRUE | Master switch for the Preference Search pre-compiled result cache used for list pagination. When FALSE every page re-runs the search engine (pre-cache behaviour), so rollback is a config toggle rather than a deploy. Default (code): TRUE. |
SyncSearchCacheStalenessMinutes |
int | — | 30 | Maximum age, in minutes, of a cached Preference Search snapshot that may still be served. Independent of the physical retention handled by FPMPreferenceSearchStorageCleaner. Default (code): 30. |
SyncSearchCacheMaxResults |
int | — | 50000 | Hard ceiling on the number of compiled Preference Search results the synchronous transaction will serialise into the cache. Above this the cache is skipped entirely. Default (code): 50000. |
DeliveryOptions Fallback
[{"label":"Email Distribution","value":"Email","channel":"ContactFields","entitlement":"Email,T1C_Base__Contact_Email__c:T1C_Base__Preferred_Research_Contact_Email__c"},
{"label":"Phone Call","value":"Phone","channel":"ContactFields","entitlement":"Phone,T1C_Base__Contact_Phone_Number__c:T1C_Base__Preferred_Business_Phone__c"}]
DNCOptions Fallback
{
"types": [
{
"value": "Email",
"label": "Email",
"optionsJson": [{"label":"Email","value":"Email"},{"label":"Home Email","value":"T1C_Base__Home_Email__c"},{"label":"Preferred Business Contact Email","value":"T1C_Base__Preferred_Business_Contact_Email__c"},{"label":"Preferred Research Contact Email","value":"T1C_Base__Preferred_Research_Contact_Email__c"}]
},
{
"value": "Phone",
"label": "Phone",
"optionsJson": [{"label":"Phone","value":"Phone"},{"label":"Home Phone","value":"T1C_Base__Home_Phone__c"},{"label":"Asst. Phone","value":"AssistantPhone"},{"label":"Other Phone","value":"OtherPhone"}]
}
],
"reasons": [
{ "label": "Requested by Client", "value": "Requested by Client" },
{ "label": "Compliance", "value": "Compliance" },
{ "label": "Other", "value": "Other" }
],
"suspensionReasons": [
{ "label": "Holiday", "value": "Holiday" },
{ "label": "Conference", "value": "Conference" },
{ "label": "Out of Office", "value": "Out Of Office" }
]
}
ACE.FPM.Settings.SearchSettings
Feature housing search settings for each type of Objects in Interest Manager (FPM)
Container feature - no attributes.
ACE.FPM.Settings.SearchSettings.Contact
Feature housing search settings for Contact in Interest Manager (FPM)
Code defaults: the Code default column applies when this object's feature is defined but the attribute is not. When the whole feature is missing, Interest Manager uses built-in per-object settings for Contact, Account, User and Interest Subject (FPMConfigController.AutoCompleteConfig), which match the Fallbacks below. SOSL search is switched on per object by
ACE.Core.SOSLSearch.<SObjectName>.EnableSOSLSearch.
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
SObjectName |
text | Contact |
blank (feature ignored) | The API name of the Salesforce object that will be queried for search results. |
Fields |
text | Id,Name,Title,Email,Phone,Account.Name,Account.T1C_Base__Tier__c |
Id,Name | A comma-separated list of fields to retrieve in the query, including related fields via relationship paths. |
SearchFields |
text | Name,FirstName,LastName,Account.Name |
Id,Name | A comma-separated list of fields used to match user input when performing SOQL-based search. |
EncryptedSearchGroup |
text | Name |
Name | The SOSL search group used if search is performing SOSL search. |
SelectableFormat |
text | {Name}[[ • {Title}]][[ • {Account.Name}]] |
{Name} | A display template used to render each result option in the search dropdown. |
SelectedFormat |
text | {Name} |
{Name} | A display template used to render the selected record after a user makes a selection. |
AdditionalWhereClause |
text | T1C_Base__Inactive__c=false AND Account.RecordType.DeveloperName!='Internal' |
blank | An optional WHERE clause fragment applied to further filter query results. |
SubSelect |
text | — | none | A subquery or filter condition used to restrict results based on related records, typically leveraging a semi-join (IN clause). |
CoverageSubSelect |
text | see below | none | A filter condition used to restrict results based on direct Contact Coverage. Used when the 'Coverage Only' checkbox is checked. |
MaxResultCount |
text | 200 |
200 | The maximum number of records to return from the search query. |
CoverageSubSelect Fallback
Id IN (SELECT T1C_Base__Contact__c FROM T1C_Base__Contact_Coverage__c WHERE T1C_Base__Employee__r.T1C_Base__User__c='{userId}' AND T1C_Base__Inactive__c='false')
ACE.FPM.Settings.SearchSettings.Account
Feature housing search settings for Account in Interest Manager (FPM)
This feature is NOT used yet, reserved for future expansion.
Code defaults: the Code default column applies when this object's feature is defined but the attribute is not. When the whole feature is missing, Interest Manager uses built-in per-object settings for Contact, Account, User and Interest Subject (FPMConfigController.AutoCompleteConfig), which match the Fallbacks below. SOSL search is switched on per object by
ACE.Core.SOSLSearch.<SObjectName>.EnableSOSLSearch.
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
SObjectName |
text | Account |
blank (feature ignored) | The API name of the Salesforce object that will be queried for search results. |
Fields |
text | Id,Name,T1C_Base__Tier__c |
Id,Name | A comma-separated list of fields to retrieve in the query, including related fields via relationship paths. |
SearchFields |
text | Name |
Id,Name | A comma-separated list of fields used to match user input when performing SOQL-based search. |
EncryptedSearchGroup |
text | Name |
Name | The SOSL search group used if search is performing SOSL search. |
SelectableFormat |
text | {Name}[[ • {T1C_Base__Tier__c}]] |
{Name} | A display template used to render each result option in the search dropdown. |
SelectedFormat |
text | {Name} |
{Name} | A display template used to render the selected record after a user makes a selection. |
AdditionalWhereClause |
text | T1C_Base__Inactive__c=false AND RecordType.DeveloperName!='Internal' |
blank | An optional WHERE clause fragment applied to further filter query results. |
SubSelect |
text | — | none | A subquery or filter condition used to restrict results based on related records, typically leveraging a semi-join (IN clause). |
CoverageSubSelect |
text | see below | none | A filter condition used to restrict results based on direct Account Coverage. Used when the 'Coverage Only' checkbox is checked. |
MaxResultCount |
text | 200 |
200 | The maximum number of records to return from the search query. |
CoverageSubSelect Fallback
Id IN (SELECT T1C_Base__Account__c FROM T1C_Base__Account_Coverage__c WHERE T1C_Base__Employee__r.T1C_Base__User__c='{userId}' AND T1C_Base__Inactive__c='false')
ACE.FPM.Settings.SearchSettings.User
Feature housing search settings for User in Interest Manager (FPM)
Code defaults: the Code default column applies when this object's feature is defined but the attribute is not. When the whole feature is missing, Interest Manager uses built-in per-object settings for Contact, Account, User and Interest Subject (FPMConfigController.AutoCompleteConfig), which match the Fallbacks below. SOSL search is switched on per object by
ACE.Core.SOSLSearch.<SObjectName>.EnableSOSLSearch.
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
SObjectName |
text | User |
blank (feature ignored) | The API name of the Salesforce object that will be queried for search results. |
Fields |
text | Id,Name,Email |
Id,Name | A comma-separated list of fields to retrieve in the query, including related fields via relationship paths. |
SearchFields |
text | Name,Email |
Id,Name | A comma-separated list of fields used to match user input when performing SOQL-based search. |
EncryptedSearchGroup |
text | Name |
Name | The SOSL search group used if search is performing SOSL search. |
SelectableFormat |
text | {Name}[[ • {Email}]] |
{Name} | A display template used to render each result option in the search dropdown. |
SelectedFormat |
text | {Name} |
{Name} | A display template used to render the selected record after a user makes a selection. |
AdditionalWhereClause |
text | IsActive=true |
blank | An optional WHERE clause fragment applied to further filter query results. |
SubSelect |
text | — | none | A subquery or filter condition used to restrict results based on related records, typically leveraging a semi-join (IN clause). |
MaxResultCount |
text | 200 |
200 | The maximum number of records to return from the search query. |
ACE.FPM.Settings.SearchSettings.InterestSubject
Feature housing search settings for Interest Subject in Interest Manager (FPM)
Code defaults: the Code default column applies when this object's feature is defined but the attribute is not. When the whole feature is missing, Interest Manager uses built-in per-object settings for Contact, Account, User and Interest Subject (FPMConfigController.AutoCompleteConfig), which match the Fallbacks below. SOSL search is switched on per object by
ACE.Core.SOSLSearch.<SObjectName>.EnableSOSLSearch.
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
SObjectName |
text | T1C_Base__Interest_Subject__c |
blank (feature ignored) | The API name of the Salesforce object that will be queried for search results. |
Fields |
text | see below | Id,Name | A comma-separated list of fields to retrieve in the query, including related fields via relationship paths. |
SearchFields |
text | Name,T1C_Base__Description__c,T1C_Base__Alias__c |
Id,Name | A comma-separated list of fields used to match user input when performing SOQL-based search. |
EncryptedSearchGroup |
text | Name |
Name | The SOSL search group used if search is performing SOSL search. |
SelectableFormat |
text | {Name}[[ • {T1C_Base__Description__c}]] |
{Name} | A display template used to render each result option in the search dropdown. |
SelectedFormat |
text | {Name} |
{Name} | A display template used to render the selected record after a user makes a selection. |
AdditionalWhereClause |
text | — | blank | An optional WHERE clause fragment applied to further filter query results. |
SubSelect |
text | — | none | A subquery or filter condition used to restrict results based on related records, typically leveraging a semi-join (IN clause). |
MaxResultCount |
text | 200 |
200 | The maximum number of records to return from the search query. |
Fields Fallback
Id,Name,T1C_Base__Description__c,T1C_Base__Alias__c,T1C_Base__Interest_Subject_Type__c,T1C_Base__Interest_Subject_Type__r.Name
ACE.FPM.Settings.QuickAdd
Feature housing Quick Add settings in Interest Manager (FPM) - Supported in 2026.3 and later
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
Enabled |
boolean | FALSE |
FALSE | Enable the Quick Add Interest tab and functionality within Interest Manager. |
AssistMode [Future] |
text | DETERMINISTIC |
DETERMINISTIC | Assist mode for extraction. Supports 'DETERMINISTIC', 'LLM_EXTRACT', or 'LLM_EXTRACT_AND_RANK'. Defaults to 'DETERMINISTIC'. |
Delimiters |
text | ,::;::/::\n:: and :: plus |
,::;::/::\n:: and :: plus | Phrase delimiters for the tokenizer, separated by '::' as the meta-separator. Each entry is a literal string to split on. Use '\n' for newline. Default: ',::;::/::\n:: and :: plus '. Example to add 'in': ',::;::/::\n:: and :: plus :: in ' |
AutoAcceptScore |
int | 90 |
90 | Minimum score (0-100) for a topic match to be auto-accepted without user confirmation. |
AutoAcceptGap |
int | 20 |
20 | Minimum score gap between the top candidate and runner-up for auto-accept. |
MaxCandidates |
int | 8 |
8 | Maximum number of topic candidates to show per phrase before marking as TOO_BROAD. |
RuleNameTemplate |
text | Quick Add - {datetime} |
Quick Add - {datetime} | Template for auto-generated rule names. Use {datetime} as placeholder for current date/time. Example: 'Quick Add - {datetime}' |
DirectSaveEnabled |
boolean | TRUE |
TRUE | When true, show a 'Save Directly' button for interest-only rules (no research access) that saves without launching the rule form. |
LlmNamedCredential [Future] |
text | — | blank | Named Credential used for the LLM callout when AssistMode is LLM_EXTRACT or LLM_EXTRACT_AND_RANK. Default (code): blank. |
LlmVendorAdapter [Future] |
text | — | FPMAiEinsteinAdapter | Apex class name of the LLM vendor adapter. Default (code): FPMAiEinsteinAdapter. |
LlmModel [Future] |
text | — | blank (adapter default) | Model name passed to the LLM vendor adapter. Default (code): blank (adapter default). |
LlmTimeoutMs [Future] |
int | — | 10000 | Timeout, in milliseconds, for a single LLM call. Default (code): 10000. |
LlmMaxCallsPerTurn [Future] |
int | — | 3 | Maximum number of LLM calls allowed for a single Quick Add turn. Default (code): 3. |
LlmLogPrompts [Future] |
boolean | — | FALSE | Log the LLM prompts and responses for debugging. Do not enable in production with client data. Default (code): FALSE. |
ACE.FPM.ValidationRules
Feature housing Validation Rules
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
ResearchStatusRules |
text | (blank) | blank | JSON Formatter Research Status Rules |
ACE.FPM.Migration
Feature housing settings used by the Interest Manager data migration (FPMMigrationService) that creates Topic Types and Topics from APM Topics and generic topics within the org. converts legacy Interest__c records into Preference Rules.
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
ReportTypeDeliveryMap |
text | — | blank (no mapping) | JSON formatted mapping of legacy Report Type to Interest Manager Delivery Option(s), used when reconstructing research rules. Can be overridden per run by the deliveryMapJson parameter. Default (code): blank (no mapping). |
DefaultDeliveryOptions |
text | — | blank | Semicolon delimited org-wide fallback delivery options (e.g. 'Email') applied to rules reconstructed for research distribution when neither the report type mapping nor the Contact carries a preference. Can be overridden per run by the defaultDeliveryOptions parameter. Default (code): blank. |
DefaultLanguageOptions |
text | — | blank | Semicolon delimited org-wide fallback language options (e.g. 'en-US') applied to rules reconstructed for research distribution when the Contact carries no language preference. Can be overridden per run by the defaultLanguageOptions parameter. Default (code): blank. |
BackfillClientCenterFields |
boolean | — | FALSE | When TRUE the migration back-fills the single-topic Client Center lookups (Interest__c.Interest_Subject__c) from the rule's first topic. Lossy for multi-topic rules - a migration aid only for orgs still running un-refactored Client Center code. When FALSE the back-fill step is a read-only report. Can be overridden per run by the backfillClientCenterFields parameter. Default (code): FALSE. |
ACE.FPM.Views
Feature housing common display template used by Interest Manager (FPM)
| Attribute | Type | Fallback | Code default | Description |
|---|---|---|---|---|
ContactTemplate |
text | build token %%%ACE_FPM_Views_ContactTemplate%%% |
blank | Display template for Contact Profile under Critical Preferences |
AccountTemplate |
text | build token %%%ACE_FPM_Views_AccountTemplate%%% |
blank | Display template for Account Profile (Not in Used Yet) |
ApprovalRequestTemplate |
text | build token %%%ACE_FPM_Views_ApprovalRequestTemplate%%% |
blank | Display template for Approval Request Details |