Introduction

Purpose of this Document

The purpose of this document is to provide a set of guidelines and best practices that the development team (Admins and Developers)  must follow, when working on Syensqo’s Salesforce applications.

Audience

Reading is mandatory for anyone that potentially will be configuring/customizing/building components in Salesforce, namely:

Reading is advisable for:

Reading is optional for:

Generic Guidelines

In this section, we will briefly introduce some topics that each Admin or developer should know in order to provide support for Release identification, and to ensure the proper communication channel is used.  The Generic best practices should always be considered. If, for some reason, it is not possible, please discuss with your technical lead.

Configurations Guidelines (point & Click)

Our primary goal is to maximize the use of Salesforce standard functionality to ensure long-term maintainability and seamless platform updates. Before exploring low-code or custom solutions, standard configuration must be the default choice. Use these guidelines to:

Please refer to this link for Configurations Guidelines (point & Click)

Flows Guidelines (Low Code)

When standard configuration is insufficient to meet complex logic requirements, Flow Builder is our preferred automation tool. Low-code solutions bridge the gap between simple setup and heavy customization. Please follow these standards to ensure:

Please refer to this link for Flows Guidelines (Low Code)

Coding Guidelines (code)

Our Main guideline is NO CODE: Before moving into a Custom Solution, you will need to justify why, so please always consider Standard point and Click, low code solutions and appexchange solution first, this is also valid if you are requested to update existing code, here you have several options to justify the need to use code:


Please refer to this link for Development Guidelines related to Customization. 

Security, Sharing, Access Management Guidelines

Definition and scope

Security solutions and Access Management processes must be designed and implemented according to the IS Security Policies and compliance guidelines. 

Security refers to system permissions, objects and fields access, data access and user management guidelines.

Security is divided into 3 aspects:


Safeguards

General Guidelines for Profile/Permission Set Groups/Permission Sets


Detailed security principles and guidelines can be found part of the Salesforce Application Architecture (Application Security section) 

Custom Permissions

 

Custom Permission

Permission Set Name

Used for?

Bypass_Validation_Rules



Bypass_Automation




Delegated Administration

Queue and Public group management

Queue Naming convention: The first thing to do when creating a queue is to determine which will be the queue’s name.

A queue name must follow this nomenclature:

<gbu code>-<process>-<queue name>


Public group creation: Once a label has been determined for the new queue the next step is to create a Public Group. This will be where the users required to access the queue will be added and managed.

When creating the group the label will be:

QUE-<corresponding queue name>

The 4 characters used to label the public group are why the queue name cannot have more than 36 characters.

Additional Steps: Once the queue is created the following action must be taken to ensure the correct working of the queue and the security around it:

Mass Data Management Guidelines

Mass Data Management might be required in several situations, like data migrations, data transformation, data updates, data creation due to several reasons, projects needs, roll-out needs, carve-out needs or simply as validation rules creation/updates, new fields creation, fields type changes, etc.

We have currently 3 ways to change data:

Below you find the guidelines for when is recommend to use each approach:

Apex Script

The amount of record to change/transform is less than 2.000 per object.

Apex Batch

The amount of record to change/transform is more than 2.000 per object.

The number of records to update/transform will change between UAT starts and PROD Go live (meaning, new records created in PROD between UAT starts and Go live, should also be considered).

Loading files (.csv) (using Dataloader or inspector)

The workload to update/transform the data is reduced (less than 1 working day).

The  data to load/transform will not change between UAT and PROD (meaning, new records created in PROD between UAT starts and Go live, should not be considered or if It is acceptable to perform a second update after go live, for the records created between file preparation for PROD and go live)

External Tools

The amount of data to update/transform requires a big workload > 1 working day, external tools, like Talend, should be considered to automate and optimize data loading activities in UAT and PROD


For UAT and PROD environments, all data updates must be executed under a specific User: <user to be created>

Environments and Data Loading Users to use:

Org Type

System

Who executes

User to Execute

Max. Level of access

User Password

Dev

CRM

Admin or Developer

User’s Own User

System Administrator with Bypass

Managed By user

DevPro

CRM

Admin or Developer

Release Manager

Full

CRM

Release Manager

<User to be created>

Data Loading with bypass

Managed by Security Lead, password is automatically reset every 1 month

PROD

CRM

<User to be created>


IT Technical Users


Reports and Dashboards Guidelines

<we will need to define if the reports and dashboards will be included into Git repository>

Integrations

Technical Architects will need to be informed about all integration needs. The following topics will be defined by Technical architect, nevertheless below you can find generic guidelines: 

Technical Documentation

While leveraging naming convention within a project in a consistent manner is a must have, the below is a proposition of convention but should not be considered as the only option. Each project team can decide on their own conventions considering the context.

Annex I - Naming Convention Suffix


Stream

Process

Prefix to Use

Sales

Accounts

ACC_

Sales

Contacts

CON_

Sales

Visit Report

VRP_

Sales

Account Development Plan

ADP_

Sales

Sales Leads

LED_

Sales

AI Leads

LED_

Sales

Opportunities/DevPool

OPP_

Sales

Products

PRO_

Sales

Market Segmentation

MSG_

Pricing

Product Pricing

PPR_

Pricing

Quotes

QUO_

Pricing

Contracts

CNT_

Pricing

Sales Agreement

AGR_

Service

Complaints

CPL_

Service

Samples

SAM_

Service

Customer Specific Requirements

SCR_

Service

Customer Requests

CR_

Service

Technical Request System

TRS_

Service

Net Promoter Score

NPS_

Marketing

Marketing Growth Program

MGP_

Marketing

Marketing Campaigns

CAM_

Marketing

Marketing Leads

LED_

Sales

Sales Orders

ORD_

Commerce & Portal

Commerce & Portal

MSP_

Technical

Generic / Cross Process / technical  objects shared between modules not Owned by Functional Team.

GEN_



Annex II - GBU Codes


Company

GBU

Code

Syensqo

Performance & Care

??

Syensqo

Specialty Polymers

SP

Syensqo

Composite Materials

CM