All posts by John

Data Architecture and Management Designer Certification Maintenance (Spring ’19)

Data Architecture and Management Designer Certification Maintenance (Spring ’19)

After building a prediction in Einstein Prediction Builder, how can an Administrator understand the impact of each predictor in the model?

A. View the Scorecard on the Mode.

B. View the R-squared in Model Metrics.

C. Run the Einstein Insights report.

D. Configure the weekly Insights Summary email.

A customer has a requirement to track the changes to an object’s field. With Spring ’19, what is the recommended solution to retain the history of field changes for more than 24 months?

A. Field History Tracking

B. Change Data Capture

C. Field Audit Trail

D. Big Object Archive Trail

With Spring ’19, how can an Administrator create a Salesforce object that holds hundreds of millions, or even billions, of records?

A. Use the Tooling API to create the big object.

B. Configure big objects from the setup UI.

C. Deploy the Big Object Creator connected app.

D. Convert a custom object to a big object.

A Sales Manager would like to review the open Opportunity pipeline in order to gain an understanding of how to close more deals for the quarter. With Spring ’19, what feature can an Administrator configure to meet this need?

A. Lightning Reports Subscriptions

B. Einstein Analytics time series

C. Einstein Data Insights

D. Big Deal Alerts

How can an Administrator efficiently set the same default field value across multiple objects and fields?

A. Use Global Picklist Values.

B. Create a Before Trigger Handler to standardize values.

C. Use a Hierarchical custom setting.

D. Set up a custom Metadata Type and default formula reference.

Dev Lifecycle and Deployment Designer Certification Maintenance (Spring ’19)

Dev Lifecycle and Deployment Designer Certification Maintenance (Spring ’19)

How can an Administrator set a Flow to active when deploying a Change Set to Production?

A. Activate the Flow before adding to a Change Set.

B. From Process Automation Settings, select Deploy Processes and Flows as Active.

C. Use a post-deployment Apex script to Activate.

D. Deploy a Process Builder that sets the autolaunched flow to an Active status.

How can an Administrator create a process flow in Process Builder that can be reused and customized for specific processes?

A. Edit the process’s properties, and set the Template to Yes.

B. Create a Template from the process.

C. Set the process to start when a platform event occurs.

D. Add ‘_Template’ in the process’s API Name.

As part of the development process, a testing sandbox that matches the staging sandbox data and metadata is required. With Spring ’19, what new feature can be used to meet this need efficiently?

A. Use Ant to push the metadata and data from the staging sandbox to the testing sandbox.

B. Use an AppExchange app to populate the testing sandbox with the data and metadata from the staging sandbox.

C. Manually populate the testing sandbox with the data and metadata from the staging sandbox.

D. Clone the staging sandbox.

With Spring ’19, how can you move metadata from one unlocked package to another unlocked package, if you need to refactor your package?

A. Manually remove the installed metadata from the original package and then install the new package in your production org.

B. Use a scratch org package to combine the packages.

C. Change the configurations in the Package.xml to create the association before deploying it to the destination org.

D. Deprecate the metadata in an unlocked package, move that metadata to a new package, and then install the new package in your production org.

Which resource, introduced in Spring ’19, will help a developer using Salesforce DX to simplify the development of Lightning Web Components? 

A. Apex Replay Debugger 

B. Salesforce VS Code Extensions

C. Eclipse IDE Lightning Components snap-in

D. Heroku CLI 

Identity and Access Management Designer Certification Maintenance (Spring ’19)

Identity and Access Management Designer Certification Maintenance (Spring ’19)

A Community Manager would like users to log in with their phone number. What should be configured to meet this need?

A. Enable Login Discovery for the community.

B. Create a custom login page with Community Builder.

C. Enable External Identity and use a Single Sign-on provider for the community.

D. Create a login flow to look up the user based on the phone number.

How can a Consultant simplify the login process when half the users enter a username/password and the other half use an SSO solution?

A. Disable access to in the My Domain setup.

B. Require the use of Salesforce Authenticator with My Domain.

C. Create a custom page to display login instructions in the My Domain right-hand panel.

D. Create an Identity-First login page for My Domain Login Discovery.

How can an Administrator prevent users from using common, poor-quality passwords, such as “password”?

A. Create a login flow to validate passwords changes.

B. Add a password validation rule on the User Object.

C. No action is required; the password blacklist is automatically applied to the org.

D. Contact Customer Support to enable password-strength checking.

A user of a custom Heroku web application should be authenticated by Salesforce, but only created as a contact once becoming a qualified lead. With Spring ’19, which user license should an architect recommend to meet this requirement efficiently?

A. Identity Plus

B. Identity

C. External Identity

D. Company Community

An administrator is tasked with configuring an org with a user-authentication method that complies with the FedRAMP Digital Identity requirements. With Spring ’19, which new feature should the administrator use to meet this requirement?

A. Salesforce Identity Connect for certificate support

B. Certificate-based authentication

C. SMS method of identity verification

D. Allow log-ins only from IP addresses approved by the government

Integration Architecture Designer Certification Maintenance (Spring ’19)

Integration Architecture Designer Certification Maintenance (Spring ’19)

An Administrator has set up Lightning Data to update fields on accounts. Users have noticed that field values are not always up to date with the third- party system. What can an administrator configure to address the concern?

A. Change the field-level security to remove Edit access to the field.

B. Set up a Lightning Flow that refreshes the record information.

C. Create a Process Builder to pull the latest data after the record changes.

D. Update the Data Integration Rule to overwrite existing values.

Shipping information is stored in an external system and is available on Salesforce Order records with Salesforce Connect. How can an administrator send email notifications when shipping details change?

A. Create a Process Builder that executes when the external shipping data changes.

B. Set up Change Data Capture to be notified of the change.

C. Create a Platform Event that contains the shipping details.

D. Develop a custom Email Service to send shipping notifications.

How can a third-party order fulfillment system receive near real-time updates from Salesforce when Opportunities close?

A. Use the Bulk API 2.0 to export changes since the last execution.

B. Create a trigger that calls out to the system when changes occur.

C. Use Change Data Capture to synchronize records to the system.

D. Set up Lightning Data to update the system upon record changes.

When is a High-Volume Platform Event published to consumers?

A. On schedule, every 10 seconds.

B. Asynchronously as part of the original transaction.

C. Immediately after the request is enqueued.

D. Asynchronously from the queue when resources are available.

With Spring ’19, how can you register a new OAuth connected client app and ensure the client will check the current state of access and refresh tokens for the app and its child apps?

A. Set the OAuth scope to full access and create a web service to be consumed.

B. Send a request to the dynamic client registration endpoint to automatically register a new child OAuth 2.0 connected client app.

C. Use JSON web tokens (JWT) and set the OAuth flow to be dynamically refreshed.

D. Set up up the connected app using OAuth, and a separated connected app to manage the current state of access, refreshing tokens dynamically.

Salesforce App Builder – Quick Summary Study Guide

Development Overview

  • – Platform behind sales cloud, service cloud and Lightning Platform. This is a Platform as a Service (PAAS) that allow developers to build and run apps in the cloud.
  • API (Application Programming Interface) – a programmatically interface between two software to communication and exchange data. Salesforce has 7 major API interface out of the box, in addition to that APEX codes can be configured as API interface as well.
  • AppExchange – an online App Store for the Salesforce Instance / Organization. This is where pre-built apps either by Salesforce Labs or 3rd Party enterprise release their apps or components.

Metadata aka Data that description data

The underlying structure of the Salesforce platform, including information around standard and custom fields and objects, page layouts, record types, profiles, permission sets, reports, dashboard.

Upgrades and Release

Salesforce does 3 release upgrades per year, they are named after the season followed by the year. Spring, Summer, Winter (there’s no Autumn).

Declarative vs Programmatic


  • User Interface (applications, tabs, page layouts)
  • Business logic (workflow, validation rules, approval processes, process builder)
  • Data model (Object Manager – fields, relationship)

Salesforce features built with declarative tools:

  • Are usually faster and cheaper to build.
  • Generally, require less maintenance.
  • Receive automatic upgrades when the tools are improved.
  • Aren’t subject to governor limits.

Common declarative tools you can use in your Salesforce apps include:

  • Quick Actions
  • Page layout customization
  • Formula fields and roll-up summary fields
  • Validation rules
  • Workflows and approval processes
  • Custom fields and objects

We know it’s tempting to jump straight into coding. But just because you can doesn’t always mean you should. Before you commit to developing a new feature using programmatic tools such as Visualforce, consider whether you can implement your feature with declarative tools instead.


Of course, some apps can’t be built with declarative tools. Programmatic tools are often required for features that:

  • Support specialized or complex business processes.
  • Provide highly customized user interfaces or customized click-through paths.
  • Connect to or integrate with third-party systems.
  • Programmatic customizations
    • Programmatic options include:
      • Apexan object-oriented programming language based in the cloud.
      • Visualforcethe framework for creating feature-rich user interfaces for applications in the cloud. Ultimately rendered in HTML so can use alongside standard HTML, JavaScript, Flash or any other code that can execute within an HTML page.
      • Lightning Web Component -Lightning web components are custom HTML elements built using HTML and modern JavaScript. Lightning web components and Aura components can coexist and interoperate on a page. To admins and end users, they both appear as Lightning components.
      • APIs
        • SOAP API
        • REST API
        • MetaData API
        • Bulk API
        • Streaming API
        • Tooling API
        • Apex SOAP
        • Apex REST

What about N-Tier Development Setup?

User interface (UX)

  • Declarative – App Manager, Tabs (Classic), Page layout, Lightning App Builder
  • Programmatic – Visualforce Page, Lightning Web Component, Sites

Business Logic

  • Declarative – Workflow, Approval Process, Validation Rules, Process Builder, Lightning Flow
  • Programmatic – Visualforce Page Controller, Lightning Controller, APEX, Trigger

Data Model

  • Declarative – Object Manager – custom fields
  • Programmatic – Metadata API (We certainly don’t recommend this approach)

App in Salesforce

An App is a group of tabs that are group together by business requirements that provide functionality for a specific set of users. Users have the ability to switch apps to access a different group of functions (e.g Sales App, Marketing App)

App can be assigned to profiles so that they can be accessed.


The list of standard objects are:

  • Account
  • Contact
  • Opportunity
  • Case
  • Solution
  • Campaign
  • Lead

Custom Objects are new objects that you will create and is unique to your instance of Salesforce. Custom Objects can be easily identified via the API Name, which append a __c to the name of the objects. (e.g Research__c)

List of standard fields in Custom Object are:

  • Created By
  • Last Modified By
  • Name
  • Owner

Creation of Custom Objects

  • Creation of Object Name, Description, Data Type
  • Creation of Custom Fields, Data Type of Fields, Default Value
  • Setting up of Access and Security, who have permission to access the object via the CRED permission.
  • Organization-Wide Default Setting

Relationship in Objects

A relationship for Objects in Salesforce is similar to the database design such as foreign key and rules on how to handle if a parent record is deleted (cascading).


  • Create a relationship that links one object to another. This relationship field allows you to navigate from records in one objects to the related records.
  • This can be one-to-one or one-to-many relationship
  • The parent record will have a related list view that they can see all the child records.
  • Independent ownership and security
  • Lookup can be required or optional. If the lookup is required the parent records can’t be deleted. Should the lookup is optional and the parent record is deleted the following can happen to the child records.
    • Key Child Records, but clear the lookup fields.
    • Don’t Allow deletion of the parent records.
    • Delete this child records as well (cascading).
  • A child can have up to 40 parents.
  • A lookup can be converted to Master-detail if all the lookup fields on the child are filled.


  • Create a relationship that links both records tightly to each other. The child records cannot survive without the parent record.
  • Ownership and Security are determined by the parent.
  • Cannot have sharing rules on the child records.
  • Cannot contain a standard object as a child.
  • Can only have 2 parents.

Junction Object

  • An object that allows you to create a relationship between 2 master-details objects, typically in a many-to-many scenario for the master-details objects.

Fields in Salesforce

Standard Fields

  • You cannot delete this.
  • Can you predefined certain values for it (e.g. Opportunity Stage in Opportunity object)

Custom Fields

  • Custom Field and data type created by the user of the Salesforce instance, will be unique to the instance of Salesforce.
  • Can be easily identified by the API Name, with the appending of __c. (e.g Customer Spending__c)
  • Field Level Security can be configured to be visible or editable for each profile or page layout.
  • Deleted custom fields are stored in the recycle bin, recycle as of Spring 19 is not available in Lightning Experience, you have to switch to Classic View to restore it.

#RubyOnRails – Friendly_id Gem

Ruby on Rails (or Rails) is a web development framework that gives Rails developers a time-saving method for writing code. Rails are one of many web frameworks in the world of app programming and web development. These frameworks are collections of code libraries that give app and web developers readymade solutions for time-consuming, repetitive tasks—things like building menus, tables, or forms on a website.

Rather than having to write every single line of code in a program from scratch, web developers can refer to a framework and find the code for common functions that they can plug into the websites or web apps they’re building.

Rails render individual records via their id and that is something unfriendly and unmeaningful. Developers may be looking at SEO or even having a simple of accessing a particular record would have to take additional steps to make sure that the URL is taken care of.

Introducing Friendly_id gem, created and maintained by Norman Clarke

 “FriendlyId is the “Swiss Army bulldozer” of slugging and permalink plugins for Active Record. It lets you create pretty URLs and work with human-friendly strings as if they were numeric ids.”

At the time of writing this, the gem is currently at version 5.2.5.


Add the following line to your Gemfile

Switch to the terminal and run the following


We will need to generate a configuration file for Friendly_id

Followed by creating a migration for the model that you are looking to provide a “friendly” id. I will use Book as my model and you should replace it with yours.

Next run the migration script.

Extending the model

There’s a trick here, a lot of folks on Stack Overflow is having issue extending FriendlyId. Make sure you spell it “FriendlyId” instead of “FriendlyID“, note the “D”.

If you are following so far, you have almost reach the end of the setup but if your existing model have some records, we will need to manually create the slug.

Bring up the Rails Console.

Enter the following to have it run a series of update statements.

And we are done.
I strongly recommend that you check out the github repository for other gotcha and as well as stack overflow.

You may need to update all .find() statement to friendly.find() but I will leave that you and I will not cover that.

Friendly_id –

Stack Overflow –

Administrator Certification Maintenance (Winter ’19)

On which object can users assign a new owner to multiple records at one time from a Lightning Experience list view?

A. Leads

How can a user place the cursor in the list view search field without navigating to it with the tab button or the cursor?

C. Keyboard shortcut g+f

Which Forecast Type should the System Administrator configure to make territory forecasts available to the sales team?

C. Opportunity Revenue by Territory

How many decimal places can the user choose to display when creating a dashboard component?

D. Up to 5

What will display in the search results when a user uses the quick search on the reports tab?

D. The reports or folders displayed are based on what is selected on the side menu

The customer community manager wants to gamify the community by recognizing members’ specific accomplishments. What can the System Administrator configure to accomplish this goal?

A. Recognition Badges

What has to be enabled to allow users to save Chatter posts before they appear in the feed?

C. Allow draft posts

How can a standard user adjust the page layout to display more fields in the same amount of space?

D. Change the density from comfy to compact

Platform App Builder Certification Maintenance (Winter ’19)

Which behavior is true when using the ‘Deploy processes and flows as active’ feature?

A. Apex tests must cover 75% of all active Processes and autolaunched Flows.

How should an App Builder ensure that Users are able to see Survey responses?

C. Grant access to the Survey object then direct users to the Survey Invitations related list

How can a user share the contents of a Salesforce Folder with customers in Lightning?

B. Create a public link to a Shared Folder.

How can an App Builder configure a Guided Action to be mandatory on a record?

CSet the Is Mandatory field in a Process that launches the Flow.

Platform Developer I Certification Maintenance (Winter ’19) Work with the Lightning Map Component and Apex Inherited Sharing


public inherited sharing class TowerMapUtilClass {
public static List queryObjects(String theObject, List theFields, String theFilter, String sortField, String sortOrder) {
String theQuery = ‘SELECT ‘ + string.join(theFields, ‘,’);
theQuery += ‘ FROM ‘ + theObject;
if(!String.isEmpty(theFilter)) {
theQuery += ‘ WHERE ‘ + theFilter;
if(!String.isEmpty(sortField)) {
theQuery += ‘ ORDER BY ‘ + sortField;
if(!String.isEmpty(sortOrder)) {
theQuery += ‘ ‘ + sortOrder;
return database.query(theQuery);


public inherited sharing class TowerMapControllerClass {
public static List getAllTowers() {
String theObject = ‘Tower__c’;
List theFields = new List{‘Id’, ‘Name’, ‘State__r.Name’, ‘Tower_Location__Latitude__s’, ‘Tower_Location__Longitude__s’};
String theFilter = ”;
String sortField = ‘Name’;
String sortOrder = ‘ASC’;
List allTowers = TowerMapUtilClass.queryObjects(theObject, theFields, theFilter, sortField, sortOrder);
return allTowers;


Platform Developer I Certification Maintenance (Winter ’19)

Which method of the DescribeSObjectResult class allows you to access record types by their developer name?

D. getRecordTypeInfosByDeveloperName()

Which Apex class includes new methods to verify digital and HMAC signatures?

B. System.Crypto

Your org has My Domain enabled. What is the most efficient method to obtain a valid session ID to make an HTTP callout from asynchronous Apex code to Salesforce APIs?

B. Use System.UserInfo.getSessionId().

Which annotation allows a developer to make the result of an Apex method storable for Lightning components?

D. @AuraEnabled(cacheable=true)

Which merge field allows you to isolate untrusted third-party content with <apex:iframe> tag in Visualforce?

C. $IFrameResource

Prior to installing an unlocked package, which object should a developer query using the Tooling API to list the packages it depends on?

D. SubscriberPackageVersion