1. Introduction

NPS” - “net promoter score”, a market research metric asking respondents to rate the likelihood that they would recommend a company to a friend or colleague. It assumes a division of respondents into "promoters" who provide ratings of 9 or 10, "passives" who provide ratings of 7 or 8, and "detractors" who provide ratings of 6 or lower. Calculating the net promoter score involves subtracting the percentage of detractors from the percentage of promoters collected by a survey.

Note - we use “NPS” throughout the system to identify metadata that belongs to the project. However, “NPX” can be found occasionally as part of historical metadata that was re-used for this project, e.g. “NPX Survey Record”. For our purposes, “NPX” and “NPS” are equivalent.

“Salesforce Surveys” vs “Salesforce Feedback Management” - “Salesforce Feedback Management” consists of 2 features, “Salesforce Surveys” and “Scheduled Reminders”. We only use the “Salesforce Surveys” feature, with “Scheduled Reminders” being disabled in the system.

2. System Overview

The NPS process follows these stages:

  1. Campaign Setup: NPS campaigns are created to target specific customer segments.
  2. Campaign Member Management: Contacts are added to campaigns as campaign members (see 10. “Magic Tool”).
  3. Survey Preparation: Surveys are created in Salesforce Surveys and configured for the NPS process.
  4. Invitation Generation: When a campaign is activated, survey invitations are sent to eligible contacts.
  5. Response Tracking: The system tracks invitation status (not started, started, completed).
  6. Response Analysis: Completed surveys trigger updates to the NPX Survey Record with response data.
  7. Follow-up Actions: For detractors (scores below 7), feedback call tasks are automatically created. NPS Action Plan tasks are available.
  8. Reporting: NPS data is available for analysis and reporting via a number of reports and components on Accounts, Contacts, and Campaigns.



3. Business Process

3.1 Campaign Management Process

3.1.1 Campaign Creation

3.1.2 Campaign Member Management

3.1.3 Campaign Modification

Through the "NPS - Campaign: Change Campaign" flow, administrators can:

3.2 Survey Invitation Process

3.2.1 Eligibility Check

Before sending survey invitations, contacts undergo several eligibility checks:

3.2.2 Survey Dispatch

The "NPS - Campaign: Send Survey" flow manages the survey sending process:

  1. Users select which survey to send
  2. Email set and template are chosen
  3. Reminder frequency is configured (1-3 reminders)
  4. Reminder intervals are set (2-14 days apart)
  5. Auto-expiry period is defined

3.2.3 Time-Zone Optimization

Survey invitations are sent at optimal times based on the contact's region:

3.3 Survey Response Handling

3.3.1 Response Tracking

Survey responses are tracked through several status fields:

3.3.2 Response Analysis

When a survey is completed:

  1. The "NPS - Survey Invitation: Update NPX Survey Record" flow extracts response data
  2. Key metrics are populated in the NPX Survey Record:
  3. Statuses are updated across related objects

3.3.3 Detractor Follow-up Process

When a respondent gives a score below 7 (detractor):

  1. The "NPS - NPX Survey Record: Create Feedback Call Task" flow creates a task
  2. The task is assigned to the Frontline Employee
  3. The FLE receives an email notification about the low score
  4. The task is due within 14 days

3.4 Reminder Process

3.4.1 Reminder Configuration

Reminders are configured during the survey send process:

3.4.2 Reminder Execution

The "NPS - NPX Survey Record: Send Reminders" scheduled flow:

  1. Identifies records with reminders due today
  2. Checks if the survey is still pending completion
  3. Sends reminder emails using appropriate templates and language

3.5 Email Bounce Handling

3.5.1 Bounce Detection

The system detects bounced emails through standard Salesforce bounce tracking.

3.5.2 Bounce Notification

The "NPS - Campaign Member: Email Employees About Bounced Contacts" flow:

  1. Identifies campaign members with bounced emails
  2. Notifies Frontline Employees about the bounced email
  3. Requests update of contact information
  4. Updates the Campaign Member status to "Email_Bounced"


4. Data Model and Object Design

4.1.1 Campaign

4.1.2 Campaign Member


Campaign Member


NPS Email Set

Text(255)

NPS Invitation Expiry Days

Number(3, 0)

NPS Last Attempted Communication Date

Date

NPS Number of Reminders

Number(2, 0)

NPS Reminders How Many Days Apart

Number(3, 0)

NPS Send Time

Picklist

NPS Status

Picklist

NPS Survey Developer Name

Text(250)


4.1.3 Contact

Contact


NPS Last Completion Date

Date

NPS No Send Rule

Formula

NPS Opt Out

Checkbox

NPS Opt Out Date

Date

Out of NPS Scope

Checkbox


4.1.4 NPX Survey Record

4.1.5 Survey Invitation (Salesforce Surveys)

Salesforce Surveys Data Model - we use it almost as it, with one exception in Core, the Related Object field on the Survey Invitation object, used to differentiate this NPS process from the Customer Complaint Feedback process:

5. Process Flows and Automation



Flow

Type

Object

External Effects

Email Type Sent

1

NPS - Contact: Update Campaign Members and Contact Role

Record-Triggered Flow

Contact

updates: Contacts, Campaign Members


2

NPS - Campaign Member: Set Frontline Employee

Record-Triggered Flow

Campaign Member

updates: Campaign Members


3

NPS - Campaign Member: Update Contact Frontline Employee

Record-Triggered Flow

Campaign Member

updates: Contacts


4

NPS - Campaign Member: Change Status to Rejected

Record-Triggered Flow

Campaign Member

updates: Campaign Members


5

NPS - Campaign: Send Survey

Screen Flow


updates: Campaigns, Campaign Members


6

NPS - Campaign: Change Campaign

Screen Flow


updates: NPX Survey Records, Campaign Members, Survey Invitations, Campaigns


7

NPS - Campaign Member: Update NPS Details

Record-Triggered Flow

Campaign Member

updates: Campaign Members


8

NPS - Contact: Is Sendable Check Subflow

Subflow

Contact



9

NPS - Campaign Member: Daily Scheduled Invitations Send

Scheduled Flow

Campaign Member

sends emails

single email (cannot change)

10

NPS - NPX Survey Record: Send Reminders

Scheduled Flow

Campaign Member

sends emails

single email (cannot change)

11

NPS - Contact: Determine Email Template Language

Subflow

Contact



12

NPS - Contact: Determine Email Template

Subflow

Email Template



13

NPS - Survey Invitation: Create New NPX Survey Record

Record-Triggered Flow

Survey Invitation



14

NPS - Survey Invitation: Update Contact and Campaign Member

Record-Triggered Flow

Survey Invitation



15

NPS - Survey Invitation: Update NPX Survey Record

Record-Triggered Flow

Survey Invitation



16

NPS - Campaign Member: Email Employees About Bounced Contacts

Scheduled Flow

Campaign Member

sends emails

single email

17

NPS - NPX Survey Record: Email Employees About Survey Completion

Scheduled Flow

NPX Survey Record

sends emails

single email

18

NPS - NPX Survey Record: Create Feedback Call Task

Record-Triggered Flow

NPX Survey Record

sends emails

both single email and email alert


5.1 Survey Initiation and Sending Process

The survey initiation process begins with the "NPS - Campaign: Send Survey" screen flow, which allows users to:

  1. Select a survey to send
  2. Choose an email template set (Set A through Set E)
  3. Configure reminder settings
  4. Set invitation expiry period

For each eligible campaign member, the system:

  1. Checks if the contact is sendable (not opted out, no bounce history, etc.)
  2. Determines appropriate send time based on region
  3. Updates the Campaign Member status to "Awaiting_Send"

The "NPS - Campaign Member: Daily Scheduled Invitations Send" scheduled flow then:

  1. Processes campaign members with "Awaiting_Send" status
  2. Sends survey invitations at appropriate times
  3. Creates NPX Survey Records for each invitation
  4. Updates statuses to "Survey_Not_Started"

5.2 Survey Response Process

When a contact responds to a survey:

  1. The "NPS - Survey Invitation: Update Contact and Campaign Member" flow updates statuses:
  2. For completed surveys, the "NPS - Survey Invitation: Update NPX Survey Record" flow:
  3. If the NPS score is below 7 (detractor), the "NPS - NPX Survey Record: Create Feedback Call Task" flow:
  4. The "NPS - NPX Survey Record: Email Employees About Survey Completion" flow:

5.3 Reminder Process

The reminder process uses the "NPS - NPX Survey Record: Send Reminders" scheduled flow:

  1. Runs daily to identify records with reminders due today
  2. Checks if the survey is still pending completion
  3. Verifies the contact is still eligible (not opted out, etc.)
  4. Determines appropriate email template and language
  5. Sends reminder email
  6. Updates the Campaign Member's last communication date

5.4 Email Bounce Handling Process

When emails bounce, the "NPS - Campaign Member: Email Employees About Bounced Contacts" flow:

  1. Runs daily to check for bounced emails from previous day
  2. Identifies related Campaign Members
  3. Updates their status to "Email_Bounced"
  4. Notifies the Frontline Employee via email
  5. Includes a link to update the contact's email address

5.5 Campaign Member Status Management

Campaign Member statuses follow this progression:

  1. New: Initial status when added to campaign
  2. Awaiting_Send: Ready to receive survey invitation
  3. Survey_Not_Started: Invitation sent but not opened
  4. Survey_Started: Survey begun but not completed
  5. Survey_Completed: Survey submitted

Exception statuses include:

6. Email Services and Communication

  1. The "NPS - Contact: Determine Email Template Language" subflow:
  2. The "NPS - Contact: Determine Email Template" subflow:
  1. Temporarily removes the opt-out flag (HasOptedOutOfEmail)
  2. Sets NPS_Temporary_Opt_In__c to true
  3. Sends the email
  4. Waits one hour
  5. Restores the original opt-out status


Additionally, the system implements staggered sending based on the contact's last name to avoid overwhelming email servers:

6.6 Contact Sendability Checks
The "NPS - Contact: Is Sendable Check Subflow" performs comprehensive checks:
NPS Opt Out statusNPS No Send Rule statusOut of NPS Scope flagInactive Contact statusEmail bounce historyEmpty email address

If a contact fails any check, their Campaign Member record is updated with the appropriate status.

7. Administration

7.1 Campaign Management Tasks

Administrators from the NPS team can perform these key tasks:

  1. Create NPS campaigns with appropriate record types
  2. Add contacts as campaign members
  3. Configure and send surveys
  4. Update expiry dates or reset statuses using the "NPS - Campaign: Change Campaign" flow
  5. Track completion rates and response statistics

7.2 Contact Management Tasks

For contact management, NPS team or Sales users can:

  1. Set or update Frontline Employee relationships
  2. Manage opt-out preferences
  3. Update email addresses for bounced contacts
  4. Review and respond to feedback from detractors
  1. Question References

To match Salesforce Surveys questions to the correct fields in NPX Survey Record, we insert the following Question Refs into the beginning of  each question in a survey:

Question Refs

Baseline Survey Question Text

Data Type

NPX Survey Record field

Survey Page Name

(REF:SN1A)

When interacting with Syensqo, what is your primary role?

Text

Contact Job Department

Role Selection

(REF:NP1A)

How likely are you to recommend Syensqo?

Number

NPS

Company NPS

(REF:SN2A)

Which area is the most important for you?

Text

Episode Selection

Primary Episode

(REF:SC2A)

How would you evaluate our Account Management?

Number

Primary Score

(REF:SC2A)

How would you evaluate our Order Management?

Number

(REF:SC2A)

How would you evaluate our Technical Support?

Number

(REF:SC2A)

How would you evaluate our Quality Management?

Number

(REF:SC2A)

How would you evaluate our Business Development?

Number

(REF:SC2A)

How would you evaluate our Strategic Relationship?

Number

(REF:SN3A)

And which one is the second most important?

Text

Secondary Episode Selection

AM - Secondary Episode

(REF:SC3A)

How would you evaluate our Order Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Technical Support?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Quality Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Business Development?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Strategic Relationship?

Number

Secondary Score

(REF:SN3A)

And which one is the second most important?

Text

Secondary Episode Selection

OM - Secondary Episode

(REF:SC3A)

How would you evaluate our Account Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Technical Support?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Quality Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Business Development?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Strategic Relationship?

Number

Secondary Score

(REF:SN3A)

And which one is the second most important?

Text

Secondary Episode Selection

TS - Secondary Episode

(REF:SC3A)

How would you evaluate our Account Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Order Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Quality Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Business Development?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Strategic Relationship?

Number

Secondary Score

(REF:SN3A)

And which one is the second most important?

Text

Secondary Episode Selection

QM - Secondary Episode

(REF:SC3A)

How would you evaluate our Account Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Order Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Technical Support?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Business Development?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Strategic Relationship?

Number

Secondary Score

(REF:SN3A)

And which one is the second most important?

Text

Secondary Episode Selection

BD - Secondary Episode

(REF:SC3A)

How would you evaluate our Account Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Order Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Technical Support?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Quality Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Strategic Relationship?

Number

Secondary Score

(REF:SN3A)

And which one is the second most important?

Text

Secondary Episode Selection

SR - Secondary Episode

(REF:SC3A)

How would you evaluate our Account Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Order Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Technical Support?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Quality Management?

Number

Secondary Score

(REF:SC3A)

How would you evaluate our Business Development?

Number

Secondary Score

(REF:SC5A)

Responsiveness

Number

AM - Responsiveness

5 AM Detailed

(REF:SC4A)

Partnership

Number

Partnership

(REF:SC4B)

Innovation

Number

Innovation

(REF:SC4C)

Sustainability

Number

Sustainability

(REF:SC4D)

Digital

Number

Digital

(REF:SC6A)

Professionalism and Support

Number

OM - Professionalism and support

5 OM Detailed

(REF:SC6B)

Orders Confirmation

Number

OM - Order confirmation

(REF:SC6C)

Orders Change Communication

Number

OM - Order change communication

(REF:SC4C)

Sustainability

Number

Sustainability

(REF:SC4D)

Digital

Number

Digital

(REF:SC7A)

Responsiveness

Number

TS -Responsiveness

5 TS Detailed

(REF:SC7B)

Clear Contact and Type of Interaction

Number

TS-Clear contact and type of interaction

(REF:SC7C)

Deep, Up-to-Date Expertise

Number

TS - Deep, up-to-date expertise

(REF:SC4C)

Sustainability

Number

Sustainability

(REF:SC4D)

Digital

Number

Digital

(REF:SC8A)

Quality Perception

Number

QM - Quality Perception

5 QM Detailed

(REF:SC8B)

Improvement Mindset

Number

QM - Improvement mindset

(REF:SC8C)

Flexibility

Number

QM - Flexibility on quality requirements

(REF:SC8D)

Complaints Handling

Number

QM - Complaints Handling

(REF:SC4D)

Digital

Number

Digital_Solutions

(REF:SC9A)

Responsiveness

Number

BD - Responsiveness

5 BD Detailed

(REF:SC9B)

Proactive in Proposing New Applications

Number

BD - Proactivity in proposing new applic

(REF:SC4B)

Innovation

Number

Innovation

(REF:SC4C)

Sustainability

Number

Sustainability

(REF:SC4D)

Digital

Number

Digital

(REF:SC1A)

Frequency of Interactions

Number

SR - Frequency of Interactions

5 SR Detailed

(REF:SC4A)

Partnership

Number

Partnership

(REF:SC4B)

Innovation

Number

Innovation

(REF:SC4C)

Sustainability

Number

Sustainability

(REF:SC4D)

Digital

Number

Digital

(REF:LT1A)

What is the most important thing Syensqo can do to improve your experience?

Text

Improvement Comment

Not Promoter - Final Feedback

(REF:LT2A)

Any other comments?

Text

Primary Comment

(REF:LT1B)

What is the best thing Syensqo has done for you?

Text

Strength Comment

Promoter - Final Feedback

(REF:LT2A)

Any other comments?

Text

General Comment

(REF:ONR1)

OM - Delivery availability

Number

Optional Number Response 1


(REF:ONR2)

AM - Contract

Number

Optional Number Response 2


(REF:ONR3)

Product Range

Number

Optional Number Response 3


(REF:ONR4)

AM - Pricing

Number

Optional Number Response 4



ADDITIONAL FIELDS




(REF:ONR5)


Number

Optional Number Response 5


(REF:LT3A)


Text

Competitor Comment


(REF:LT4A)


Text

NPS Comment


(REF:OTR1)


Text

Optional Text Response 1


(REF:OTR2)


Text

Optional Text Response 2


(REF:OTR3)


Text

Optional Text Response 3



9. Statuses and Process Lifecycle

9.1 Status Definitions Across Objects


STATUSES ACROSS THE SOLUTION

Campaign Member

NPX Suvey_Record

Survey Invititation

Explanation

NPS Status:

Nomination Status:

Status:

Status:

ResponseStatus:

Contact was just added to the campaign

New (default)

Added (default)

(Not in use by NPS)




Awaiting Send (master)

Nominated



Contact is scheduled to be sent an invitation

Survey Invitation Sent

Processed

Survey_Not_Started

NotStarted (master)

Invitation was sent, invitation link not yet clicked

Survey Started


Survey_Started

Started (master)

Invitation link was clicked by customer



Survey_Invalid


A newer survey invitation was generated, invalidating this one




Paused (master)

(Not in use by NPS)

Survey Completed


Survey_Completed

Completed (master)

Survey was completed by customer

Email Bounced (master)


Survey_Bounced *


Contact's email is marked as bounced by Salesforce

NPS No Send Rule




Contact completed a survey within last year, cannot receive another one

NPS Opt Out




Contact has unsubscribed from NPS surveys, cannot receive another one

Rejected

Rejected (master)



Contact was rejected from the campaign by an employee

Inactive Contact




Contact is marked as inactive, cannot receive an invitation

Out of NPS Scope (Abacus goes here)




Manually added by Account Managers to Contacts they don't want to receive NPS + Abacus added automatically on every send


10. Unsubscribe Process

10.1 Email Unsubscribe Handling

The unsubscribe process allows contacts to opt out of NPS surveys by sending an email with "unsubscribe" in the subject line. This is implemented through the NPS_Unsubscribe Apex class, which serves as an inbound email handler:

  1. Inbound Email Processing: When a contact sends an email with "unsubscribe" in the subject line to the designated email address, the NPS_Unsubscribe class processes it.
  2. Contact Lookup and Update: The system looks up all contacts with a matching email address and sets their NPS_Opt_Out__c field to true.
  3. Opt-Out Date Tracking: The system records the opt-out date in the NPS_Opt_Out_Date__c field.
  4. Multiple Contact Handling: If multiple contacts share the same email address, all matching contacts will be opted out simultaneously.
  5. Confirmation: The system automatically processes the request without sending a confirmation email to the sender.

10.2 Integration with NPS Process

The unsubscribe mechanism integrates with the overall NPS process:

  1. Automatic Exclusion: Contacts who have opted out are automatically excluded from future NPS survey campaigns during the eligibility check.
  2. Status Update: Campaign members associated with opted-out contacts will have their NPS Status updated to "NPS_Opt_Out" through the eligibility check process.
  3. Email Template Requirements: All NPS email templates must include an unsubscribe link that directs to this email-based unsubscribe mechanism.

11. Campaign Member Management Interface ("Magic Tool")

10.1 Overview and Capabilities

The Campaign Member Management interface (known "Magic Tool") provides NPS team and Sales managers with a set of tools for managing NPS campaign members:

  1. Multi-Record Editing: Allows bulk updates to campaign member records, including:
  2. Filtering Capabilities: Provides filtering by:
  3. Campaign Member Status Management:
  4. Contact Management:

10.2 User Interface Features

  1. Row-Level Action: Update Frontline Employee: Opens a lookup dialog to assign or change the Frontline Employee
  2. Bulk Actions:

10.3 Integration with NPS Process

The "Magic Tool" integrates with the overall NPS process as follows:

  1. Pre-Survey Preparation: Allows NPS team and Sales Managers to review and refine campaign member data before initiating the survey send process.
  2. Frontline Employee Assignment: Ensures that the appropriate employee is assigned as the relationship owner for follow-up purposes.
  3. Record Rejection and Reinclusion: Allows unsuitable contacts to be excluded from the NPS campaign, and reincluded back.