Top Salesforce TPM (CG Cloud) Interview Questions – For Developers & Functional Experts

If you’re working with Salesforce TPM (Trade Promotion Management) on CG Cloud, whether you're a developer, functional consultant, or part of the support team, you’ve probably realized that it's not just about standard Salesforce skills.

TPM brings a mix of funds, claims, promotions, tactics, KPIs, Apex logic, and real-time data integration (RTR)—all packed into a domain built for Consumer Goods companies.

In this post, I’ve compiled a list of real-world TPM interview questions that cover not just the data model and configurations, but also Apex customization, business workflows, batch jobs, and scenario-based logic that you’re likely to face in client projects or interviews.

Whether you're preparing for a job switch, brushing up for a project kickoff, or reviewing the platform deeper—this guide will help you gain clarity and confidence.


1. What is Trade Promotion Management in Salesforce CG Cloud, and why is it important in Consumer Goods industry?


Trade Promotion Management (TPM) in Salesforce CG Cloud helps Consumer Goods (CG) companies plan, execute, track, and optimize trade promotions. It enables efficient fund allocation, tactic execution, claim validation, and ROI analysis.

Why TPM is important in the Consumer Goods industry:

  1. High Promotion Spend:
    In CG, up to 25–30% of revenue is spent on trade promotions. TPM helps optimize ROI on that spend.
  2. Strategic Planning & Forecasting:
    TPM allows CG companies to create data-driven promotion plans, aligning them with marketing goals, budgets, and supply chain capacity.
  3. End-to-End Visibility:
    With TPM in Salesforce CG Cloud, brands can track promotions from creation --> approval --> execution --> settlement, improving control and compliance.
  4. Retail Execution Integration:
    TPM integrates with Retail Execution (store visits, audits) to ensure promotions are executed properly at the shelf.
  5. Improved Collaboration: TPM enhances collaboration between account managers, field reps, and finance teams by providing a centralized view of all trade activities.
  6. Analytics & KPIs: It offers insights like incremental lift, cannibalization, ROI, etc., to help businesses learn and improve future promotions.

Example:

A beverage company can use TPM to:

  • Plan a "Buy 2 Get 1 Free" promo for 3 regions.
  • Predict sales uplift and validate budget impact.
  • Track execution in stores via mobile apps.
  • Evaluate the campaign's performance post-execution.

Diagram:

Salesforce TPM (CG Cloud)


2. What are the core objects used in TPM data model? Explain their relationships.


In Salesforce Consumer Goods Cloud, the Trade Promotion Management (TPM) data model is built around a set of standard and custom objects that help track the entire promotion lifecycle — from planning to execution to settlement.

  • cgcloud__Promotion__c: Parent promotion record.
  • cgcloud__Trade_Promotion_Tactic__c: Child tactics that define execution methods.
  • cgcloud__Fund__c: Budget allocated to promotions/tactics.
  • cgcloud__Claim__c: Retailer requests for reimbursement.
  • cgcloud__Actual__c: Sales/volume data for KPI.

Core TPM Objects and Relationships

Object Name Description Relationships
Promotion (cgcloud__Promotion__c) The central object representing a planned trade promotion. Linked to Tactics, Accounts, Products, Budgets, and KPIs
Tactic (cgcloud__Tactic__c) A promotional mechanism or offer type (e.g., discount, display, bundle). Each promotion can have multiple tactics. Lookup to Promotion
Tactic Template (cgcloud__Tactic_Template__c) A configuration template defining valid fields and dependencies for different tactic types. Referenced by Tactic and used for UI rendering
Promotion Product (cgcloud__Promotion_Product__c) The product(s) associated with the promotion or tactic. Related to Promotion, Tactic, and Product (Standard)
Retail Store (cgcloud__Retail_Store__c) Represents the store/location where the promotion is executed. Linked to Promotion or Account
Fund (cgcloud__Fund__c) The financial pool allocated for promotions (marketing, trade, or other). Linked to Promotion and Fund Plan
Settlement (cgcloud__Settlement__c) Captures financial settlement and reconciliation details post-promotion. Related to Promotion, ERP ID, Funds
KPI (cgcloud__KPI__c) Stores key performance indicators like ROI, uplift, etc. Related to Promotion
Budget (cgcloud__Budget__c) Total promotional budget available for a brand, product, or account. Linked to Fund and Promotion
Condition Code (TPM_SAPConditionCode__c) Custom object used to model SAP-style condition dependencies for field logic. Referenced in field rendering or dependency logic

Simplified Relationship Flow:

Salesforce TPM Data Model


Example Use Case:

  1. A budget is set up for Q4 promotions.
  2. A fund is created from that budget for the “Diwali Campaign.”
  3. A promotion called “Buy 1 Get 1” is planned.
  4. Two tactics are added: one for shelf display, one for discount.
  5. Each tactic targets specific products and stores.
  6. After execution, KPI and Settlement objects track performance and costs.


3. How are TPM fields and picklists configured dynamically using Metadata and Field Config records?


In Salesforce Trade Promotion Management (TPM), dynamic field and picklist rendering on the UI is driven by Custom Metadata Types (CMDTs) and field configuration records. This flexible approach allows admins and developers to control field behavior without changing code, which is essential for supporting different tactic types, brands, and countries.


MIND IT!

TPM uses Custom Metadata (TPM_TacticTemplateFieldConfig__mdt) and Condition Code data (TPM_SAPConditionCode__c) to render tactic fields dynamically. This config-driven approach allows developers to build highly adaptable UI experiences with field-level dependency, visibility control, and picklist value resolution—all driven without hardcoding.


Key Components for Dynamic Field Configuration

Component Description
Tactic Template (cgcloud__Tactic_Template__c) Stores tactic-level configuration and links to applicable UI field setup.
Tactic Template Field Config (TPM_TacticTemplateFieldConfig__mdt) A Custom Metadata Type used to define which fields should appear on the Tactic UI, their order, controlling fields, and other behavior.
TPM_SAPConditionCode__c A custom object containing SAP-style field dependency mappings (used for multilevel picklist dependencies).

Code Snippet (Apex):


for (TPM_TacticTemplateFieldConfig__mdt config : fieldConfigs) {
    if (config.TPM_IsConfiguredinTactic__c && config.TPM_TacticControllingField__c != null) {
        controllerFieldMap.put(config.API_Name__c, config.TPM_TacticControllingField__c);
    }
}


4. How do you enforce dynamic dependencies between fields like Payment Method --> Compensation Model --> Claim Type in TPM forms?


To enforce multi-level dynamic dependencies (e.g., Payment Method --> Compensation Model --> Claim Type) in Salesforce TPM (Trade Promotion Management) forms, Salesforce CG Cloud uses a combination of:

  1. Custom Metadata Configs
  2. SAP-style dependency data (TPM_SAPConditionCode__c)
  3. Dynamic Apex logic
  4. Front-end JavaScript logic in LWC/Aura

Components Involved

Component Role
TPM_TacticTemplateFieldConfig__mdt Declares each field's controlling field (if any) and field order.
TPM_SAPConditionCode__c Contains dependency data, mapping parent-child value combinations across levels.
Apex (getPicklistFieldsData) Returns valid picklist values, metadata, and dependency maps to the UI.
JavaScript (LWC) Renders picklists, filters values dynamically, and disables downstream fields until parents are selected.

Share This Post:

About The Author

Hey, my name is Saurabh Samir, and I am a Salesforce Developer with a passion for helping you elevate your knowledge in Salesforce, Lightning Web Components (LWC), Salesforce TPM (CG Cloud), Salesforce triggers, and Apex. I aim to simplify complex concepts and share valuable insights to enhance your Salesforce journey. Do comment below if you have any questions or feedback—I'd love to hear from you!