How to: Getting An App On The AppExchange

How to: Getting An App On The AppExchange

As a Salesforce developer designing an application or component for the AppExchange can seem like quite a daunting task. But if you break it into small steps and don’t get too lost in small details it can become something quite manageable. Let’s go through all the steps and take the TimeCapsule app as an example.

The TimeCapsule

The TimeCapsule is an app for the AppExchange that makes it easier for Salesforce users to track their field history. They no longer need to create an entire report when they are looking for a specific field and its changes. Next to that, this app has a nice visual aspect to it, users can easily see the changes in their history by looking at the graph we have designed. 

Why did we build this application

We built this app because we wanted to develop a cheaper alternative to history tracking. Currently it is quite expensive to go back more than a year and a half in Salesforce. Next to that, we thought this option could use a better interface. That is the reason why we created a field history tracking app with a nice graphical interface. 

How to build an app for the Salesforce AppExchange?

Research

First, begin with researching the demand of certain options in Salesforce, you can do this in Salesforce communities, but asking your clients or noticing a need at your client is also a good option. We noticed a couple of things when we researched the topic of field history tracking; Salesforce users are not happy with the options Salesforce offers, it is expensive when you want to look at data older than 18 months, it is a hassle to access the data and when you finally have the data it is not pleasant to look at. 

Solution  

We came up with two solutions for the issues mentioned above. For the data storage issue we chose to use a big object instead of a (normal) custom object. This way you can store a lot more data within Salesforce. We also improved the user interface by developing an interactive graph. 

Technical Specs 

The programming languages and design patterns can vary for every app you build on the AppExchange. For developing this app we used the following languages and design patterns. 

Languages

  • backend (APEX)
  • frontend (LWC) Javascript.
  • Externe library D3 (this makes the graph)

Used design patterns

  • DRY (Don’t repeat yourself)
  • SOLID (SRP, OCP, LSP, ISP, DIP) 
  • SoC Separation of concerns
  • Onion architecture

Project management

When working with multiple people on an application it is wise to manage the project well. When our DevOps team works on an app or component we use the scrum method, use Jira for the backlog of the stories and Git for version control and code review. 

Break the development of the application up into stories, we do this in Jira. Stories are manageable pieces of the complete application and should be something a developer can do on his own. 

How do you get an app on the AppExchange?

When your component or app is finished, the next step is to get it on the AppExchange. You do that by following these steps:

  • Upload a business plan, this must be approved by Salesforce before you can list your product on the AppExchange
  • Upload your code for a security review, this also needs to be approved by Salesforce
  • Make a package of the code

When your business plan and code are reviewed and approved by Salesforce they will put your product on the AppExchange for you. Next to adding the product as is, we also add the following items to make it easier for your potential customers to install and use the app:

  • A short movie clip and documentation for the installation and setup of the app
  • A Wiki for help questions
  • Contact information so that people know where to find you in case of questions

And finally…

Our final tips for creating an application for the AppExchange is to always keep the end user in mind when you are working on a story towards the development of the complete app. And make sure the roles within the team are clear; the lead developer makes sure the technical aspects are correct and the project manager makes sure the wishes of the end user are met. 

Curious to see what we’ve built? Check out the TimeCapsule

Want to know more about developing apps for the AppExchange, please don’t hesitate to contact us.

Related blogs

How to Set up GitHub

How to Set up GitHub

Published 22-06-2021

GitHub is an online software platform for version control and collaboration. By using GitHub, you and your colleagues can work together on projects no matter where you are. In our projects, we use Git not just to improve our teamwork: we also use it to make it more enjoyable. In the end, a team effort not only ensures a better result, but also a more satisfied feeling. Here’s a short guide on how to start using GitHub.

Everything You Need to Know About DTAP

Everything You Need to Know About DTAP

Published 17-06-2021

Within the world of software development DTAP is a well known term. Working with DTAP is something that comes automatically for most developers. But what exactly is DTAP, how do you integrate a DTAP street and, as it is not a new method, is it still relevant today?

The difference between a software engineer and a software developer

The difference between a software engineer and a software developer

Published 13-06-2021

The terms or job profiles software engineer and software developer are oftentimes used interchangeably. However, a software engineer and a software developer really are two different jobs. In this blog we’ll tell you what both terms, according to us, mean and what the difference is. 

5 Advantages of Salesforce NPSP

5 Advantages of Salesforce NPSP

Published 11-06-2021

About a year ago Salesforce.org introduced the Nonprofit Cloud, a combination of Salesforce products that meet the needs of nonprofit organizations. A big part of the Nonprofit Cloud is the Nonprofit Success Pack, this pack adds elements to Salesforce that are specifically created for nonprofit organizations. Some examples are donation and donor management functionalities and a dashboard for fundraising and campaigns.

Artificial Intelligence and Salesforce Einstein

Artificial Intelligence and Salesforce Einstein

Published 01-06-2021

AI and voice are relatively new concepts for businesses. Concepts which can seem very difficult to start with but just with Blockchain, Salesforce has created a platform to make it very easy for you to incorporate AI in your business, Salesforce Einstein. 

Data visualization in Salesforce

Data visualization in Salesforce

Published 07-05-2021

Did you know it is really easy to visualize your data in Salesforce? As a company you probably have a lot of data in Salesforce. Data can be pretty useful to figure out which areas need improvement or are doing really well. Visualized data makes that even easier. 

What is Salesforce Blockchain?

What is Salesforce Blockchain?

Published 07-04-2021

We were very enthusiastic when Salesforce announced Salesforce Blockchain during the TrailheaDX event of 2019.  Now that it is officially a part of Salesforce, we would like to explain what it is and how you can use it. 

5 Advantages Of A Mobile CRM

5 Advantages Of A Mobile CRM

Published 30-03-2021

Recognize this? Visiting a (potential) client and you cannot get your laptop to work or access the right data and records immediately, despite your preparations.
Luckily, most CRM platforms have a mobile app these days. Using a mobile CRM puts an end to these kinds of issues. Next to having immediate access to your records, there are more advantages to a mobile CRM (like the Salesforce Mobile App):

Switching to Salesforce Lightning

Switching to Salesforce Lightning

Published 20-02-2021

Not sure if you want to switch from Salesforce Classic to lightning? Switching seems like a project that costs a lot of time, not to mention the teams that need to be introduced and get used to a renewed system. Regardless if it takes time, we are convinced switching from Salesforce Classic to Lightning is worth the extra effort.

What is Apex?

What is Apex?

Published 30-01-2021

For Salesforce developers Apex is almost like their second language; they know this type of programming language inside out. But what exactly is Apex and when do you use Apex?