6 Expert Tips for Building Salesforce Apps
6kites specializes in helping our customers integrate different systems to connect teams and simplify workflows. For example, we have developed an application that connects Adobe desktop software to Atlassian’s Jira, another that allows Hootsuite users to interact with teams in HipChat, and an integration between SurveyMonkey and IBM’s Watson Marketing platform.
Recently, we have been working on some Salesforce integrations. One for a customer and another for a new product of our own. This product will allow teams in Jira to work with teams in Salesforce.
As part of our practice of creating Exceptional Software, we present six of our top lessons learned while developing multiple Salesforce apps.
#1 – HIT THE TRAIL(HEAD)
Salesforce is a big, well-established environment. There’s a lot you need to know about the REST API, the development process, and packaging and distributing your applications. The Salesforce Developer Training available at https://trailhead.salesforce.com provides free training courses along with sandbox environments to do the exercises. It’s a great way to quickly come up to speed on the topics you need to know more about.
The courses are not limited to just development topics. If you need to learn more about using Salesforce or just want to understand the ins and outs of the Partner program, the Trailhead is the place to go.
#2 – THE REST API IS NICE
The 6kites development team does a lot of integration work, helping our customers improve their workflows by connecting different systems together. We work with many platforms, and have seen many APIs that are REST in name only. Often these are thin wrappers over an older XML API, or they don’t handle relationships in a RESTful fashion. Salesforce gets it right. The API is clean, consistent, and easy to use.
The API also provides a lot of useful metadata, which can help you make your software exceptional. When working with any object, you can get a list of all of the object’s fields, the labels for those fields (which may have been customized or localized), each field’s type, and whether a field is required or not. For any field whose value is selected from a list, there is an API call to return the list of valid values for the field.
#3 – LEVERAGE A LIBRARY FOR YOUR STACK
#4 – DEPLOY WITH THE FORCE (CLI)
Books, tutorials, and Trailhead courses on Salesforce development typically have you developing in the Salesforce GUI. There are times when that is valuable. The Developer Console provides a REPL that is handy for testing out ideas and debugging problems.
However, if you are like most developers, you have invested a lot of time getting your development environment just the way you like it. Fortunately, it is possible to integrate the Salesforce development process into just about any workflow. The folks at Heroku, a Salesforce company, have developed a Command Line Interface called Force, that allows you to interact with Salesforce using an API, instead of the GUI. You can upload and download templates and code, test snippets, view logs, inspect and change settings, plus much more. You can do just about anything you could do in the Salesforce GUI and while doing it in a scriptable, repeatable way.
#5 – NOT ALL SALESFORCE INSTANCES HAVE API ACCESS
Salesforce offers a number of editions, each with different pricing and features. One of the features that is not available on the lower cost plans is API access. Trying to access the API of an organization with the Contact Edition, Group Edition, or Professional Edition will raise an error. It’s also possible for the administrator of other Editions to turn off API access.Full details can be found in this article.
However, it is possible for a developer to get API access in these editions, which bring us to our final expert tip.
#6 – MANAGED PACKAGES AND UNMANAGED PACKAGES. CHOOSE WISELY.
One of the topics that can be confusing for new Salesforce developers is Packages. It’s an important topic to understand because your choice can limit who can use your application and how.
Packages are ultimately bundles of customizations created by you that other Salesforce users can install into their organization. You customize a Salesforce instance, then, using a Salesforce-provided tool, you package up those customizations and publish them.
Once you have created a package, you can simply share a link to it. This is then considered an Unmanaged Package. Alternatively, you can submit that package to Salesforce for review, after which it will be published as a Managed Package, available in the Salesforce AppExchange.
Advantages of Unmanaged Packages
- Free to create.
- Can be released at any time.
- You can sell them directly to your customers.
Disadvantages of Unmanaged Packages
- Not in the AppExchange, you have to market directly to your potential customers.
- Some companies will not install Unmanaged Packages, preferring only Salesforce approved applications from the AppExchange.
- As noted above, API access is unavailable in some Salesforce Editions.
- No automatic upgrades. If you make changes, your customers will have to manually install the new version.
Advantages of Managed Packages
- Customers can find you in the AppExchange.
- Automatic upgrades are available.
- Salesforce manages payments and licensing.
- Full API access for all Editions. Editions of Salesforce that are not normally allowed to use the API are granted access for Managed Packages.
Disadvantages of Managed Packages
- Setup cost. The review process for a Managed Package includes a security review, which is expensive and time consuming. If your application will be free, this fee is waived, but you still must complete the security review.
- Review time. The initial review process can take several months.
- Salesforce takes a percentage of all sales through the AppExchange.
Ultimately, it’s a business decision. If you want to be in the AppExchange or have API access to all Editions of Salesforce, then you will need to have a Managed Package. However, if you want to move fast, sell directly, and avoid upfront costs, then an Unmanaged Package may be for you.
Need more than tips? Work with a Salesforce expert.
The 6kites development team can bring our Salesforce development expertise and Exceptional Software practices to your project. Contact us to learn what we can do for you.