DEV Community

Michael Bogan for Salesforce Developers

Posted on

Salesforce Apps and Clouds- Salesforce Platform #4

In some of my previous posts, I focused on the opportunities for Salesforce Business App Developers and Salesforce Integration Developers. In this post, we’ll explore the key applications that extend the Salesforce cloud platform. We will also explore some opportunities for developers with an interest in application development and maintenance within business and technical domains.

If you’re a talented developer in web, AI, marketing, financial apps, JavaScript, Node.js, eCommerce, or data science, and are looking for an entryway into the Salesforce world, you’ll probably find that path in this article.

Apps versus Clouds: What’s the Difference?

Many developers new to Salesforce have difficulty understanding the relationship between the various Salesforce Clouds and Salesforce Apps. As a result, they are often confused about how they associate across the platform landscape. So, let’s clarify.

Behind the Clouds

The Salesforce platform is more complex than a single multi-tenant cloud architecture hosting multiple applications. It has grown over 20 years with more than 60 acquisitions to incorporate multiple technology stacks and extension applications. Although marketed as a collection of ‘clouds’ segmented as business application domains, developers can view Salesforce as a multi-dimensional system landscape, where a variety of applications are deployed on a collection of cloud-based tech stacks.

In general, the platform contains the core CRM and supporting extension apps, separate but complementary products owned by Salesforce, and ISV apps. Let’s look at each one.


Salesforce Platform Apps and Clouds (from my perspective)

Core Salesforce Platform

It begins with the original core Salesforce multi-tenant, metadata-driven cloud architecture supporting the core applications focused on Sales, Service, and Customer Relationship Management.

Additionally, there is an ever-expanding collection of extension apps and industry-specific verticals to install as packages of metadata and resources. These are easily deployed to any Salesforce org, downloaded from the AppExchange, installed by Salesforce when licensed, or simply built and distributed informally by developers. These core apps and the addition of the extension apps make up the core of Salesforce.

Complementary Products

Over time, Salesforce has acquired separate, but complementary products that add features and capabilities for its growing customer base. While some of these products augment or replace existing functionality, others add new functionality.

Some of these acquisitions were built on the core platform and can be purchased from and installed by Salesforce. Other products remain on independent non-core technology stacks. Although products on the core cloud stacks have direct access to a customer’s Salesforce data and logic, products on non-core stacks must use APIs and connectors to integrate with the core stack (unless they are integrated with and directly available in a Salesforce org when licensed, such as with some Einstein AI and Analytics capabilities).

ISV Products

Finally, the overall platform is supported by a large ecosystem of partner Independent Software Vendors (ISVs). These can be one-person shops or large technology companies, and many products begin as an innovative extension app to support Salesforce customers. They can grow over time into a full-blown product that can be purchased independently by the customer directly or from the AppExchange. The core platform’s metadata architecture provides growing opportunities for developers.


Salesforce AppExchange

Pick Your Favorite Flavor

In this section, I will catalog and summarize key aspects of each product domain. I will also note when the product is core to the original multi-tenant architecture or if it is a separate technology stack. This can be an important distinction as the applications that reside on the core cloud architecture can leverage a similar set of acquired developer skills. Other cloud products on non-core stacks typically require additional skills and product- or platform-specific knowledge.

So let’s look at several domains to see which ones best fit your skills:

  • Core sales, service, and app clouds
  • Industry-specific verticals
  • Salesforce CRM extensions
  • eCommerce
  • Marketing
  • Analytics and data science
  • Web and mobile apps
  • Collaboration tools

Core Sales, Service, and App Clouds

First, let’s discuss the original stack. These cloud applications are core to the original multi-tenant stack mentioned above. They incorporate the Sales Cloud and Service Cloud CRM applications, plus custom business applications built on the App Cloud as discussed in my previous post. This is also where we can add extension applications to enhance the out-of-the-box functionality.

Industry-specific Verticals

Next, we can license a series of industry-specific vertical applications that shape a Salesforce org to support various business domains. If you are interested in one of these domains, this would be a great entry point into Salesforce.

For example, the Financial Cloud supports financial services to manage client wealth.

The Health Cloud supports doctor-to-patient relationships, establishes patient profiles integrating information from multiple data sources, and exposes private communities leveraging Community Cloud.

The Education Cloud (part of the Nonprofit Cloud) allows a package installation of a customized architecture called Education Data Architecture (EDA) designed to configure Salesforce out-of-the-box to support Education use cases. An additional Nonprofit Cloud package installation (the Nonprofit Success Pack or NPSP) configures Salesforce out-of-the-box to support nonprofit business models.

While Salesforce markets these and other vertical extension applications as separate ‘clouds’, they are installed into core Salesforce orgs. This means that developers with Salesforce development skills can customize them, and choose to work with whichever domain interests them personally.

These packaged products are examples of how the core platform can be extended. They also reinforce the point that any developer can strike out on their own in the ecosystem as an ISV, and build the next great, innovative vertical application or product extension to market to customers.

Salesforce CRM Extensions

Salesforce CPQ (Cost-Price-Quote acquired from SteelBrick) is a great example of an app that extends similar built-in core capability. This product also shows off a sophisticated Lightning Web Component user interface with performant client-side processing, allowing for very complex price quoting creation and management far exceeding core CPQ capability.

Maintaining its customizations requires a substantial amount of configuration as well as complex deployment processes to properly migrate configuration data and metadata from sandbox to production environments. Developers with strong technical DevOps skills will benefit any customer implementing this product. Although there are not many programmatic customization opportunities within the extension package, because it is installed into a core Salesforce org, there are ways to further augment it with Apex and Lightning Web Components.

The Community Cloud (currently being rebranded as Experience Cloud) is used by customers to configure and expose customized and branded portions of the CRM platform (as well as custom apps) to selected partners and customers. While legacy portals were built with Visualforce and Apex, the newer generation is built with the Lightning Framework. Developers have many opportunities to create sophisticated and branded custom Lightning Web Components, and deploy them for non-coders to leverage in their communities.

eCommerce

Traditional web developers (JavaScript, Node.js, HTML, CSS, and so on) and eCommerce developers will find ample opportunity with Salesforce as well.

Commerce Cloud is a hybrid. This means that it exists as two different products across two different technology stacks. Both leverage predictive intelligence and provide scalable online fulfillment, customer service, and a highly-customizable and branded shopping experience.

The B2B Commerce (formerly CloudCaze) application is an extension package installed into a core Salesforce org. B2C Commerce (formerly Demandware) is a separate technology stack that can integrate back to core Salesforce orgs using API connectors. I believe that these products provide some of the greatest opportunities for traditional web developers.

The B2B Commerce package extends the Salesforce architecture with a customized data model, logical processes, and branded personalized portals that support buying and selling to business partners. It provides extreme flexibility and scalability around contract pricing, product bundling, and other highly configurable aspects of business-to-business commerce. Originally built with custom Visualforce pages hosting HTML templating, and utilizing the Javascript Backbone library bound to Apex service classes, it is currently being upgraded to a Lightning Web Components and Community Cloud architecture.

The B2C Commerce application resides on its own proprietary technology stack, providing a metadata-driven architecture supporting a Javascript front and backend to build and maintain highly scalable and extremely customizable branded eCommerce online storefronts. A rapidly growing customer base in need of developers highly skilled in HTML, CSS, modern Javascript, and Node.js provides substantial opportunities.

Marketing on Steroids

Web developers with experience or interest in marketing apps (email, SMS, web pages) can also find challenging work.

Marketing Cloud applications extend the marketing capabilities of the core Salesforce architecture. These products run on separate technology stacks, but can integrate with Salesforce orgs as well as other third-party systems through APIs and connectors.

Marketing Studio in particular provides programmatic opportunities for web developers who can master AMPScript, a proprietary scripting language that can integrate with server-side Javascript, used for creating advanced dynamic content for highly personalized messaging.

AmpScript example courtesy of Agadzhanov Sergey

AMPscript uses basic programming concepts well known to web developers who can design and build functions for Marketing Cloud users to embed in emails, various landing pages, and SMS messages. These functions can be easily incorporated into content, which follows the Salesforce low-code model that allows developers to create tools for non-coders.

Beyond AmpScript development, Marketing Cloud customers’ integration needs are a common source of developer opportunities. Other Marketing Cloud products, such as Pardot and Social Studio do not have any built-in capabilities for programmatic customizations.

While Salesforce provides pre-built connectors, customers often need to build custom integrations to these applications utilizing their REST-based APIs, either from external systems or from core Salesforce using Apex.

AI, Analytics, and Data Science

For AI developers, Einstein is the Artificial Intelligence engine of the Salesforce platform and includes a large suite of platform cross-cutting tools. While many are integrated directly into the Salesforce CRM applications, multiple REST-based APIs provide programmatic access.

Einstein Vision facilitates image recognition and classification using pre-trained or customizable models. Einstein Language facilitates building applications with natural language processing models to classify the intent of text, or the sentiment of text as positive, negative, and neutral. Einstein Discovery and Prediction Builder are tools for data analysis supporting Supervised Machine Learning.


Calling Einstein API from Apex - courtesy of Daniel Peter MVP

Developers with an interest in data science and analytics can explore the Analytics Cloud. While core Salesforce has always included a reporting and analytics component, Einstein Analytics allows users to connect to and analyze data from Salesforce platform applications as well as external systems. Recently acquired, the Tableau (now named Tableau CRM) suite of business intelligence tools provide developers opportunities that require deep data science and technical coding skills for their related applications and services.

Web Apps, Mobile Apps, Services, and APIs

Web, Service API, and Mobile Developers can leverage Heroku, a Salesforce Platform service for hosting web applications. This polyglot container-based Platform as a Service (PaaS) allows developers to deploy and manage web applications and services with elastic scalability. It provides integrated data services and an extensive developer friendly ecosystem, allowing applications to be deployed and built with multiple programming languages:

  • Node
  • Java
  • PHP
  • Python
  • Go
  • Ruby
  • Scala
  • Clojure

Salesforce provides extension tools allowing applications, services and data to be tightly integrated with core Salesforce orgs, as well as supporting standard API integrations with full security and compliance.

Mobile developers should note that Heroku is also a perfect platform for deploying apps and services that support native and hybrid mobile applications. Salesforce also provides SDKs for both iOS and Android that jumpstart native mobile app development that can integrate directly with Salesforce REST-based APIs.

More complex integrations across various applications in any system landscape can benefit from the Integration Cloud built on Mulesoft, a lightweight enterprise service bus. It allows for the rapid design, creation, and deployment of custom APIs that can function as a bridge connecting applications, data, and services to on-prem or cloud systems including core Salesforce.

Developers can build validators, connectors, and apps using the Mulesoft Anypoint Studio (an Eclipse-based tool) and the Mulesoft Language which utilizes an XML configuration model (similar to Spring) to describe custom logic written in various programming languages such as Java, JavaScript, Ruby, Python or Groovy.


Mulesoft API Design Center courtesy of Salesforce

Collaboration Tools

One last opportunity for developers to explore is Quip, a platform productivity suite providing real-time multilingual collaborative documents, spreadsheets, slides, and chat embedded inside Salesforce. It allows groups of users to create and edit these documents via web and mobile apps, and integrate with external systems.

Developer opportunities with Quip center around its multiple REST-based APIs and app development with its SDKs. Developers can build add-ins with Typescript, JavaScript, Node.js, and Visual Studio Code to expand the scope and capabilities of Quip documents. These tools also allow web and mobile apps to automate workflows, build bots, and integrate data from Quip documents with existing systems. There is also a wealth of great supporting developer documentation.

What’s Left?

The platform continues to grow with each release cycle, and I have little doubt that I’ve left out other aspects that may provide niche developer opportunities. For example, Salesforce is also a great platform to support IoT (Internet of Things) development, and you can build Bots with Einstein and Apex and even connect them to external services like Facebook Messenger, Amazon Alexa and Slack. That’s the beauty of the platform—it’s seemingly endless—constantly growing and evolving, providing an ever-expanding ecosystem for developers to take advantage of. However, this also presents a significant challenge...

If a platform is constantly growing and evolving, how does a developer step in, skill up, and keep up? How do you know where to begin? How can you know what you don’t know? How can you learn what you need to thrive in the ecosystem? We’ll cover that in the next and last post, and I hope you’ll join me as we wrap up this Salesforce Developer journey.

Thanks to Don Robins for his kind permission to publish this article.

Top comments (0)