Learn how to package your app for Salesforce AppExchange with a deep dive into managed vs. unmanaged packages. Understand the best strategies for ISV success and choosing the right approach for your app development goals.
2. MEET OUR
TEAM (Panelist)
Ghulam Mohayyudin -
Senior Salesforce
Developer at Tkxel
Shamsul Arifeen -
Technical Lead (Cloud-
1)
#SFCOMMUNITYJHANGPK
3. AGENDA
Salesforce AppExchange
Managed Packages Unmanaged Packages
Build Your Application
Package Your
Application
Partner Login
#SFCOMMUNITYJHANGPK
Publishing your App to AppExchange:
Managed Vs Unmanaged Packages:
Request PBO & Environment Hub
Create Listing & Submit Code For Review List Your Solution on AppExchange
Q & A
4. Packaging your App for AppExchange
What is Salesforce Appexchange?
¡ñ AppExchange is the Salesforce marketplace
with thousands of solutions and services to
extend Salesforce.
¡ñ For ISV partners or consultants: AppExchange
helps customers discover your solution or
service.
¡ñ For Salesforce admins or users: AppExchange
helps you find tools and talent to boost your
company's productivity.
#SFCOMMUNITYJHANGPK
5. WHY Salesforce AppExchange?
1
Faster Implementation:
? ??Ready-to-use tools save development time. ??
Wide Range of Solutions: Thousands of apps and services to extend Salesforce. ?
Trusted and Secure: ? Vetted by Salesforce for quality and security. ?
2
3
#SFCOMMUNITYJHANGPK
6. Packaging your App for AppExchange
Join The Partner Program
AppExchange solutions are developed by certified Salesforce partners, ensuring
quality and reliability. To begin your journey as a Salesforce partner, join the
Salesforce Partner Community, where you can access resources, guidance, and a
network of professionals.
Your business goals determine the type of partnership you pursue with Salesforce:
AppExchange ISV Partner: Develop and sell apps that extend Salesforce
functionality.
Consulting Partner: Offer implementation, customization, and advisory services to
#SFCOMMUNITYJHANGPK
7. Packaging your App for AppExchange
Steps To Become a Salesforce Partner
¡ñ Go to the Salesforce Partner Community.
¡ñ Click Become a Partner.
¡ñ Click Continue to sign up.
¡ñ Click Join the Partner Community.
¡ñ Click Get a Salesforce User Name, and fill in the required fields.
¡ñ Click Create Username.
¡ñ You will get a confirmation email asking you to verify your account and set a
password.
¡ñ Set a password for your account, and then click I have my Salesforce User
Name - Join the Partner Community.
#SFCOMMUNITYJHANGPK
8. Packaging your App for AppExchange
Request PBO & Environment Hub
¡ñ If you didn¡¯t receive a Partner Business Org (PBO) when you joined the
Salesforce Partner Community, log a case to request one.
#SFCOMMUNITYJHANGPK
Environment Hub:
¡ñ After getting partner login access. Raise case to enable Environment Hub.
(If you¡¯re an ISV partner, the Environment Hub is already installed in
your Partner Business Org.)
¡ñ The Environment Hub lets you connect, create, view, and log into
Salesforce orgs from one place, streamlining org management for
companies with multiple environments.
9. Packaging your App for AppExchange
Build Your Application
¡ñ Start Developing your Salesforce Application.
¡ñ Follow Best Practices: Ensure your app adheres to Salesforce development
standards, including using Apex, Visualforce, or Lightning frameworks as
needed.
¡ñ Test in Multiple Environments: Perform testing in various orgs, including
Developer and Sandbox environments, to ensure your app works seamlessly
across different setups.
#SFCOMMUNITYJHANGPK
10. Packaging your App for AppExchange
Configure Unique
Namespace in Your
Org.
Add Your
Components/Configu
rations for Your
Application to the
Package
Create Release
Package for
AppExchange Listing
Create a Beta
Package for Testing
#SFCOMMUNITYJHANGPK
Package Your Application
11. Packaging your App for AppExchange
Create Listing on the Partner Console (Private)
¡ñ Log in to the Partner Portal and find the Publishing
tab.
¡ñ Click on the Listing tab and select New Listing from
the Partner Console. ?
¡ñ Choose Package Solution and then select the
Solution Type. ?
¡ñ Create or Edit Your AppExchange Listing ??
¡ñ Connect Your Dev Hub or Packaging Org to the
Partner Console
¡ñ Show Pledge 1% Details on Your AppExchange
Listing ?
#SFCOMMUNITYJHANGPK
12. Packaging your App for AppExchange
¡ñ A Salesforce Security review is about
building trust between your app and clients.
You can only publish your listing (app) on
AppExchange after a Salesforce security
review by adopting Salesforce best practices.
¡ñ Security review cost:
¡ð For Free Apps: No cost!
¡ð ? For Paid Solutions: A $999 fee
applies for the initial submission.
#SFCOMMUNITYJHANGPK
Submit for Security Review ?
13. ? Big Win! Security Review Passed! ?
¡ñ Celebrate Your Success!: Your security review is complete and your
solution has passed ?.
¡ñ Make Your Solution Public: by publishing your listing on AppExchange?.
? Your Listing is Live! ?
Your solution is now visible on AppExchange ? Time to focus on supporting
and engaging with your customers!
#SFCOMMUNITYJHANGPK
List Your Solution on AppExchange?
14. Managed Vs. Unmanaged Packages
¡ñ Packages in Salesforce are like neat little gift boxes for your Salesforce
goodies! ?
¡ñ They bundle apps, components, and metadata to share with others!
#SFCOMMUNITYJHANGPK
What are Salesforce packages?
Types of Packages
¡ñ Managed Packages
¡ñ Unmanaged Packages
15. Managed Vs. Unmanaged Packages
¡ñ Built by Salesforce ISV Partners, made for AppExchange.
¡ñ Version control, auto-upgrades, and your precious code is locked ?
¡ñ Perfect for sharing with the world! ?
You¡¯re in control, and no one messes with your masterpiece!
#SFCOMMUNITYJHANGPK
Managed Packages Overview
16. Managed Vs. Unmanaged Packages
¡ñ Editable Code: Your code is out in the open ?
?
¡á?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
?
??
?
? ??
? ?
¡ñ No IP Protection ?
¡ñ No Namespace ??
¡ñ Manual Updates ?
It¡¯s the DIY paradise of Salesforce packages!
#SFCOMMUNITYJHANGPK
Unmanaged Packages Overview
17. Managed Vs. Unmanaged Packages
#SFCOMMUNITYJHANGPK
Key Differences at a Glance
Feature Managed Package Unmanaged Package
Code Protection Yes (Locked) ? No (Editable) ?
Upgrades Automatic! ? Manual
? ??
Namespace Unique Namespace ? No Namespace ?
License Management Supported Not Supported
Customization Limited to configuration ?? Fully Customizable ?
18. Managed Vs. Unmanaged Packages
¡ñ Managed Packages: Ideal if you want a secure, professional, and easy-to-maintain
tool. Perfect for those who like everything handled smoothly .
? ??
¡ñ Unmanaged Packages: Great if you enjoy freedom, customization, and tinkering
with the code. Perfect for internal projects or learning environments .
? ??
#SFCOMMUNITYJHANGPK
Summary
19. Surprise Section: Unlocked Packages ?
Ever heard of Unlocked Packages? They¡¯re like a mix of Managed and Unmanaged
packages:
¡ñ Unlocked Packages offer the flexibility of Unmanaged Packages combined with
some of the best features from Managed Packages.
¡ñ Think of them as a hybrid solution:
¡ð Code customization is allowed, but you also get version control and a bit of
automation.
¡ð Ideal for internal teams and customers who want to customize without
losing structure.
#SFCOMMUNITYJHANGPK
Wait, there¡¯s more!
20. Unlocked vs. Managed vs. Unmanaged
#SFCOMMUNITYJHANGPK
Feature Unlocked Packages Managed Packages Unmanaged Packages
Code
Customization
Allowed ?? Not allowed ? Fully allowed ?
Version Control Yes ? Yes ? No ?
Namespace No ? Yes ? No ?
Ideal For Customization with
control
Full control &
protection ?
Learning & one-time
setups
#4: What you can find on AppExchange:Apps, components, and consulting services
#6: In Order to become a partner you need to login or sign on the Salesforce Partner Portal.
#7: Here are the few step you need to follow to become a partner. Sign for the Salesforce partner Community and fill the required details.
#8: What is PBO:
The Partner Business Org has AppExchange partner tools pre-installed, along with two free Enterprise Edition Sales Cloud licenses.
For ISV Partners It has some applications built in like License Management (LMA), Channel Order App (COA), and Environment Hub.
#9: Best Practices:
Consider security requirements for the package. Define appropriate user permissions, access controls, and data security measures to ensure the package aligns with security best practices and meets compliance requirements
Development perspective:
SOQL and SQL injection
Cross-site scripting
Non-secure authentication and access-control protocols (Make sure to use named creds, external creds and some other security protocols)
Vulnerabilities specific to the Salesforce platform, such as record-sharing violations
#11: Pledge 1%: Pledge 1% members commit to giving a percentage of their product, profit, equity, or time to nonprofit causes or charities.
#12: Material Required for Submission:
Scan your Code Salesforce Code Analyzer and provide test results
End-to-end solution test environment
Valid credentials to all systems
User Documentation
Some common security threats that Salesforce tests for.
SOQL and SQL injection
Cross-site scripting
Non-secure authentication and access-control protocols
Vulnerabilities specific to the Salesforce platform, such as record-sharing violations
#14: Packaging your App for AppExchange
Emphasis on the perspective: a partner who is looking to follow a packagin strategy
What is a package:
Purpose of Packaging:
Instead of creating unique code for each customer, use a package that can be reused across multiple clients.
Salesforce doesn¡¯t natively support deploying code directly from one customer to another. Packages solve this problem by allowing you to deploy the same code or automation to different customers.
Package Types:
Managed Packages: (fancy & controlled) Offer controlled, secure deployments with automatic updates and licensing management.
Unmanaged Packages: (DIY-style) Provide flexibility and transparency for customization and internal use.
#15: Managed Packages Overview
Built by Salesforce ISV Partners, made for AppExchange fame.
Version control, auto-upgrades, and your precious code is locked tighter than a safe. ?
Perfect for sharing with the world ¡ª and keeping it under control! ?
You¡¯re in control, and no one messes with your masterpiece!
#16: Unmanaged Packages Overview
Editable Code: Your code is out in the open, ready for anyone to hack...I meant, modify! ???¡á?
No Intellectual property Protection: Like handing someone the blueprints to your house. ? ¡°Here, take a look!¡±
No Namespace: Be prepared for possible code collisions. Hope you like surprises! ??
Manual Updates: Like those old school ¡°download new version¡± emails. ? Get ready for some extra clicks.
It¡¯s the DIY paradise of Salesforce packages!
#17: Code protection: Code is on Lockdown : Take it! It¡¯s yours!
Upgrades: Auto-Updates! : You¡¯ll need to DIY
Namespace: Private bubble : It¡¯s a free-for-all!
License Management: Total control! : Nah
Customization: Some Customization is allowed : Go Wild
#18: Managed Packages: Ideal if you want a secure, professional, and easy-to-maintain tool. Perfect for those who like everything handled smoothly ??.
Unmanaged Packages: Great if you enjoy freedom, customization, and tinkering with the code. Perfect for internal projects or learning environments ??.
#19: Unlocked Packages let you push updates to your users or clients without overriding their customizations.
Only the components you update in the new package version will be overwritten on the user¡¯s org.
Customizations made by the user that don't conflict with the package components (e.g., they added a new custom field that you didn¡¯t touch in the package) are not impacted.
Conflict Detection: If a user has modified a component that you are trying to update in the package, Salesforce will detect the conflict. In some cases, the admin may be prompted to resolve the conflict or merge the changes manually.
#20: Unlocked Packages let you push updates to your users or clients without overriding their customizations.
Only the components you update in the new package version will be overwritten on the user¡¯s org.
Customizations made by the user that don't conflict with the package components (e.g., they added a new custom field that you didn¡¯t touch in the package) are not impacted.
Conflict Detection: If a user has modified a component that you are trying to update in the package, Salesforce will detect the conflict. In some cases, the admin may be prompted to resolve the conflict or merge the changes manually.