AppExchange App Support with Debug Mode

Effective AppExchange app support can be challenging for various reasons. Apex debug logs are visible only when logging into an org via the subscriber console. Custom object logs are useful, but they are visible to your customers in their orgs, and you might not want them to see all the details needed for troubleshooting. App analytics custom interactions are great, but you can’t log anything other than the interaction name.
In this article, I’ll show you how we approached this problem in our ISV Analytics app.
What Is App Debug Mode?
There is no such term in the official Salesforce documentation in the context of AppExchange apps or managed packages in general.
However, this is a concept you can implement yourself using feature parameters.
The idea is that when you toggle a boolean feature parameter on your License Management Org for a specific customer, they gain access to additional debugging functionality. Once debugging is complete, you toggle the parameter back, and the debugging module is hidden again.
App Debug Mode in Practice
Let’s say I’m a customer of our ISV Analytics app.
(BTW, I really am one, as I use it for analytics of my Einstein Bot Intent Detector app.)
I have a feeling that the app is not functioning properly, and some analytics data is missing.
I know there is an ISV Analytics Debug tab in the app, so I open it. Here’s how it looks for me:
I see some logs, so I suspect that something is not right, but how do I react and ensure that the missing analytics data is collected?
Here’s what happens next:
-
I grant login access to Beyond The Cloud support so they can log in to my org via the subscriber console. Then, I send them an email asking for help with the app.
-
Piotr from Beyond The Cloud (the idea man behind the debug mode concept) receives my email and decides to use the app debug mode to help me. He logs into Beyond The Cloud’s License Management Org, finds my license, and toggles the Debug Mode feature parameter.
-
He logs into my org via the subscriber console and opens the ISV Analytics Debug tab. After enabling debug mode, it has some additional superpowers:
Now Piotr can fix the issue and request the analytics data for the missing period. The idea is that you can have any advanced debugging functionality here that the customer shouldn’t use on their own regularly.
-
The issue is fixed. Piotr logs out of my org and disables debug mode.
As you can see, issues in the customer org can be resolved efficiently if you implement debug mode in your package.
Conclusion
Although there is officially no such thing as "AppExchange app debug mode," you can implement this concept yourself. Combined with other app support mechanisms (Apex logs, custom interactions, custom object logs), it can be extremely helpful in handling customer support for your app efficiently.
That’s it for today. If you have any questions related to Salesforce AppExchange, don’t hesitate to contact me directly (https://linkedin.com/in/bartosz-suchocki) or anyone on our amazing team (https://linkedin.com/company/beyondtheclouddev).