Interest Manager – Importing Topic Types & Topics (Part 1: Preparing Your Data)
Audience: Business admins, implementation consultants
Next: [Part 2 – Running the Import]
What this does
Interest Manager (IM) organizes interests into Topic Types (e.g. Country, Sector) and the
Topics under them (e.g. United States, Energy). Topics can be bulk-loaded from a spreadsheet
instead of being created one at a time.
Your CSV ──► Topic Mapping (staging) ──► Run Topic Import ──► Topic Types + Topics
Status = Pending Mapping rows → Imported / Error
| Salesforce object | What it is |
|---|---|
Topic Mapping (Topic_Mapping__c) |
Staging table. One row per topic you want to load. Keeps an audit trail of what was imported. |
Topic Type (Interest_Subject_Type__c) |
Created automatically, one per unique Topic Type Name. |
Topic (Interest_Subject__c) |
Created automatically, one per unique topic (see How duplicates are handled). |
The import is safe to re-run. It never creates a duplicate Topic Type or Topic. Rows that match
existing records are linked to them.
Where the data comes from
Pick whichever source fits:
- Build the CSV yourself (most common). Use a spreadsheet with the columns below.
- Generate it from an RiXML research file. IM can read a sample RiXML file and produce a draft
CSV with every tag and value already filled in. You then delete the rows you don't need and tidy
the names. (Your technical admin runs this step; see Part 2, Step 1.)
CSV columns
| Column | Required | Max | What to enter |
|---|---|---|---|
Topic_Type_Name__c |
✅ | 80 | Topic Type as users will see it, e.g. Country, Asset Class. |
Topic_Name__c |
✅ | 80 | Topic as users will see and search for it, e.g. United States. |
Status__c |
✅* | — | Pending = import this row. Leave blank to load the row without importing it yet. |
Comments__c |
255 | Optional. Becomes the Topic's Description. | |
External_Id__c |
255 | Your own unique ID for the row, e.g. RGN-NA. Needed only for parent/child topics. |
|
Parent_Ids__c |
1000 | Comma-separated External_Id__c values of this topic's parent topics, e.g. RGN-AMER. |
|
Tag_Path__c |
1000 | RiXML only. Full XML path. Do not edit. | |
Tag__c |
80 | RiXML only. XML element/attribute name (attributes start with @). Do not edit. |
|
Tag_Value__c |
1000 | RiXML only. Original value from the file. Do not edit. |
* Only rows with Status__c = Pending are processed.
Leave all other Topic Mapping fields empty. The import fills them in.
How duplicates are handled
Topic Types: one per name
Every row with the same Topic_Type_Name__c goes to the same Topic Type. Spell the names exactly
the same way, including capitalization and spacing.
Topics: one per Type + Name (the default)
By default IM treats every Topic Type as canonical: one Topic per Topic Type + Topic Name,
wherever the value came from. That lets many sources share one clean list.
| Topic_Type_Name__c | Topic_Name__c | Tag_Value__c (source) |
|---|---|---|
| Country | United States | US |
| Country | United States | USA |
| Region | North America | NorthAmerica |
Result: 2 Topic Types (Country, Region) and 2 Topics (United States, North America).
Tip: Standardize names across the CRM. Use United States every time, not a mix of US,
U.S. and USA.
Exception: non-canonical types (rare)
Some types need one Topic per source tag, even when two tags share a display name. Your technical
admin lists those types in the AFR setting ACE.FPM.Settings.NonCanonicalTypeNames. For these
types, rows must include Tag_Path__c and Tag_Value__c, and each distinct path + value becomes its
own Topic. If you are unsure, leave this setting alone.
Parent / child topics (optional)
To nest topics (e.g. North America under Americas):
- Give every row involved an
External_Id__c. - On the child row, put the parent's ID in
Parent_Ids__c. Separate multiple parents with commas.
| External_Id__c | Topic_Type_Name__c | Topic_Name__c | Parent_Ids__c |
|---|---|---|---|
| RGN-AMER | Region | Americas | |
| RGN-NA | Region | North America | RGN-AMER |
| RGN-LATAM | Region | Latin America | RGN-AMER |
Best practice: load parents and children in the same file. If a parent is loaded later, your
technical admin can rebuild the links afterwards (Part 2, Step 5).
Sample CSV
Topic_Type_Name__c,Topic_Name__c,Status__c,Comments__c,External_Id__c,Parent_Ids__c
Asset Class,Equity,Pending,,AC-EQ,
Asset Class,Fixed Income,Pending,,AC-FI,
Region,Americas,Pending,,RGN-AMER,
Region,North America,Pending,US and Canada,RGN-NA,RGN-AMER
Country,United States,Pending,,CTY-US,RGN-NA
Sector,Energy,,Load later,SEC-EN,
Result: 4 Topic Types and 5 Topics, plus 2 parent/child links. The Energy row is loaded but
skipped until its Status is changed to Pending.
Checklist before handing off
- Each row has
Topic_Type_Name__candTopic_Name__c(80 characters or fewer). - Topic Type Names are spelled the same way everywhere.
- Topic Names use standard CRM wording.
- Rows to import have
Status__c = Pending. - RiXML
Tag_*columns are untouched. - If you use parent/child links, every
Parent_Ids__cvalue matches anExternal_Id__c. - Saved as CSV (UTF-8).