Almost every company that uses Salesforce leverages third party applications and services to extend the capability of the platform. Some of these applications run entirely on the Salesforce platform – these are called native applications. Some run on external services such as Amazon Web Services and either connect to Salesforce or use small native connector applications. The other day someone posted a question asking if the following was correct:
- Native apps are always a more reliable choice when it comes to uptime
- All native apps can more easily integrate with other native apps
- Only native apps can be trusted with your data
- Native apps are ALWAYS the better choice.
Obviously this was a piece of marketing collateral from someone trying to suggest that their non-native application is just as good or better than a native solution would be. But the way they present this represents the worst in deceitful marketing. It’s also ineffective, as anyone with any skill in marketing can see right through what they are doing.
Using terms like “always”, “all”, “only” are absolutes. The minute you find one exception, the statement becomes false – so it’s a trick, designed to mislead and deceive. In fact, what they are doing is so obvious that the very title is a lie – these are not misconceptions at all, as nobody familiar with the platform would ever make such absolute statements.
What any marketer really cares about are the common cases, the ones most likely to apply to their own situation.
If the original paragraph was trying to inform rather than deceive, it might have been phrased as follows:
- Are native apps generally a more reliable choice when it comes to uptime?
- Can native apps typically integrate more easily with other native apps?
- Are native apps generally more secure with regards to protecting your data?
- Are native apps the better choice?
Let’s look at these one at a time
Are native apps generally a more reliable choice when it comes to uptime?
The answer is, by definition, yes. The reason is simple. A native app uptime will be equal to that of Salesforce – that is the very definition of a native app. An app that requires both Salesforce and an external service to be up will be down when either service is down. The only way such an application will ever equal Salesforce’s uptime is if the external service has 100% uptime – and nobody promises that. That said, the difference in uptime may be so small as to not matter – so assuming the external service is built well on a reliable platform, this question will often be irrelevant to your situation.
Can native apps typically integrate more easily with other native apps?
For a native app to integrate with another native app, all it needs to do is publish a global API, which is trivial. Having another app connect to it is equally trivial. Because there is no need to transfer or sync data or deal with integrations and security, there is no doubt that in most cases the answer to this one is a definite yes. What’s more, not only can apps integrate with each other, but a native app can support integrations with automation – flows, workflows, and processes, that is difficult if not impossible with external applications. Are there exceptions to this? Sure – especially if the native app is not designed with integration in mind. But generally speaking, the answer is yes.
Are native apps more secure with regards to protecting your data?
The answer to this is similar to the first one – yes they are. The reason again is very simple – the attack surface on a native app – that is, the target that an attacker might use to reach your data – is Salesforce itself. You already trust Salesforce with your data, so assuming the app is written securely and doesn’t do anything stupid, you’re covered. Any external application provides a distinct attack surface – another possible way to get at your data. Anything that increases the attack service reduces the level of security – it’s just that simple. But again, as with the uptime example, the external service can be very secure – secure enough for your purposes. But the only way it could be as secure as a native application is if it was 100% secure, and no service is that secure.
Are native apps the better choice?
As for our final question – it simply makes no sense. Better for what? What does better mean? The question only makes sense in the context of a particular situation. In some cases native apps are the best choice. In others an external service is the best choice. You have to dig deeper into the solutions and a specific situation to find the answer.
Native applications on Salesforce have definite advantages – uptime and security and integration being among the most important (which is probably why the original paragraph exists – an attempt to distract from these obvious truths), but there are definitely use cases that are not suitable for native applications as well – for example: those that process large amounts of data that aren’t already in Salesforce. Ultimately, there is no substitute for analyzing the choice in the context of your own goals and situation.
As Full Circle Insights’ CTO, Dan Appleman brings a broad technology experience to our customers. In addition to having supported over 30 Salesforce.com implementations with technology solutions, Dan is also the author of the book “Advanced Apex Programming for Salesforce.com and Force.com” and has been a speaker at Dreamforce since 2012.
Previously, he was the founder of Desaware, Inc. a developer of add-on products for Microsoft Visual Studio, a co-founder of Apress publishing, and the author of numerous books and articles.
[Ebook] 10 Ways to Use Salesforce Reports to Measure Marketing Performance
Download this guide to learn how to accurately measure whether your marketing campaigns are helping you drive revenue.