Tag: API Integrations

  • Exploring Salesforce Automation: A Comparative Analysis of Flow and Apex

    Exploring Salesforce Automation: A Comparative Analysis of Flow and Apex

    You will inevitably be required to choose once you face the need to automate tasks in Salesforce. Flow or Apex?  What sets them apart?

    Besides being the most popular choices amongst Salesforce tools for automating business processes, each tool caters to different organizational needs and skill sets. While Salesforce Flow expands its capabilities with each release, some users note limitations when trying anything slightly more complex than automating email strings. 

    Others insist that everything can be done in Flow if you put your mind to it—no need for a dedicated Salesforce developer who knows Apex. 

    Who is right?

    To understand which would be a better fit for your Salesforce org setup and teams, let’s break down the respective pros and cons of each tool. 

    Ins and Outs of Salesforce Flow

    Salesforce Flow is an out-of-the-box tool within the Salesforce suite designed to automate complex business processes quickly and efficiently. As organizations strive to streamline operations, they often need to be more accurate in assessing what the tool can do. 

    Advantages of Salesforce Flow

    • User-Friendly Interface: Salesforce Flow boasts an intuitive drag-and-drop functionality, making it accessible for users of all technical levels. This feature allows for quickly creating and managing automated processes without extensive coding knowledge.
    • Low-Code Platform: As a low-code tool, Salesforce Flow enables quick deployment of automation processes. Users with little to no coding experience can build flows swiftly, which is crucial for businesses that need to respond to changing market demands promptly. Also, some opt for Flow when resources for development are limited.
    • Pre-Built Elements and Templates: With various pre-built elements and templates at their disposal, Flow users can efficiently assemble flows that suit their specific needs, saving time and resources.
    • Seamless Integration with Salesforce objects and data: Salesforce Flow integrates effortlessly with various Salesforce objects and data. This integration capability allows for the creation of dynamic and responsive flows that can interact with a wide range of data sources and services.
    • Debugging and Testing Tools: The platform provides robust debugging and testing tools. These resources are invaluable for users to test and troubleshoot their flows, ensuring they function as intended before deployment.

    dont miss out iconDon’t forget to check out: Salesforce Workflow vs. Process Builder | Salesforce Automation Tools

    Disadvantages of Salesforce Flow

    1. Limited Customization and Complexity:  While Salesforce Flow is considered user-friendly, it may not offer the customization and complexity required for some advanced automation tasks. Businesses with highly specific needs might find Flow somewhat restrictive. Usually, in that case, Flow includes Apex or Lightning Web Components (LWC) components.
    2. Performance Concerns: For automation processes involving large datasets, Salesforce Flow might not be as efficient as other tools or custom-coded solutions, potentially leading to performance issues. Salesforce flow has many limitations and is not the best choice if you’re working on large datasets.
    3. Learning Curve: Despite its user-friendly design, there’s a learning curve, especially for users new to automation tools. It might take time to become well-versed with its features and capabilities. Even though Salesforce claims that Flow is a ‘non-programming’ tool, it still requires basic knowledge of programming, boolean algebra, and data types.
    4. Dependency on Salesforce Ecosystem: Salesforce Flow is deeply integrated into the Salesforce ecosystem, which might limit its utility for businesses that rely on a diverse set of tools and platforms. So if you plan to automate some processes that will depend on the apps integrated with Salesforce, Flow wouldn’t be the right solution. 

    Apex for Salesforce Automation: Pros and Cons

    Apex, Salesforce’s proprietary programming language, is a powerful tool designed for developers looking to create complex automation and integration processes on the Salesforce platform. While Apex offers robust capabilities, it’s not a tool for everyone—you would need a specialist with a background in coding and automation.

    Low Code Limitations of Salesforce Flow vs. Apex
    Low Code Limitations of Salesforce Flow vs. Apex

    Advantages of Using Apex Automation

    1. High Customization Capabilities: Apex empowers developers to tailor automation to niche business requirements. It unlocks the ability to implement intricate business logic, build custom visual interfaces, and develop seamless integration processes, providing a comprehensive toolkit for addressing diverse and specialized needs.
    2. Optimized Performance: For operations involving large datasets and intricate logic, Apex offers consistent performance. Its efficiency in handling bulk data and executing operations makes it ideal for businesses with substantial data processing needs.
    3. Advanced Features: Apex supports triggers, batch jobs, and scheduled tasks. These capabilities enable developers to create and implement automation scenarios of varying complexity, from straightforward tasks to intricate operations triggered by specific events.
    4. Robust Testing Framework: Apex offers a framework for writing and executing unit tests, examining test outcomes, and obtaining code coverage results. With Apex, developers can ensure stability, reliability, and maintainability of automation processes and prevent errors in production.

    Disadvantages of Using Apex for Automation

    1. Developer Expertise Required: Apex requires a solid grasp of programming principles and the language itself. This requirement can be a barrier for non-developers or businesses without in-house technical expertise.
    2. Maintenance Overhead: Code-based solutions like Apex are often a double-edged sword, providing extra flexibility but demanding ongoing maintenance and updates. This necessity can lead to higher long-term costs and require a continuous investment of time and resources.
    3. Deployment Complexity: Deploying Apex code can be more complex and time-consuming than using low-code tools like Salesforce Flow. The deployment process requires careful planning and testing to avoid throwing existing operations off-track.
    4. Impossible for users with no prior programming experience: Apex requires a deep understanding of programming principles and syntax, making it inaccessible for individuals with a technical background, as they would need help to write, debug, and interpret the code effectively.

    dont miss out iconCheck out another amazing blog by Twistellar here: How to Avoid the Biggest Security Risks to Your Salesforce Org?

    Struggling to Decide Between Salesforce Flow and Apex?

    To summarize the differences, you should consider the processes that need automation, your resources, and expected customizations.

    Salesforce Flow vs. Apex Complexity Comparison
    Salesforce Flow vs. Apex Complexity Comparison

    When to use Apex:

    • API Integrations
    • Huge Datasets processing
    • Asynchronous code execution

    When to use Flows:

    • Basic data validations – formats/names/values
    • Basic automations that can change often
    • Lack of technical expertise / development resources

    Key Takeaways

    Remember that the primary purpose of automation tools is to relieve your business pains, not inducing them. Salesforce Flow presents a compelling option with its user-friendly UI interface and low-code platform, making it ideal for those seeking simplicity. However, organizations must also be mindful of its limitations. Good points to consider are potential performance issues and restricted customization capabilities for complex tasks.

    On the other hand, Apex offers significant advantages in customization and performance for businesses implementing intricate automation processes on the Salesforce platform. Yet, it is important to acknowledge the challenges that come with it, such as the need for technical expertise, maintenance overhead, and deployment complexities. 

    Striking the right balance between sophistication and manageability becomes pivotal in driving successful Salesforce automation initiatives for organizations.

    In summary, by carefully weighing the trade-offs and considering your specific business requirements, you can make an informed decision that aligns with your goals and ensures effective automation implementation on the Salesforce platform.

    This article was originally published at Twistellar.com

  • Pass Salesforce AppExchange Security with Ease

    Pass Salesforce AppExchange Security with Ease

    Kizzy Consulting has worked on creating solutions by integrating several applications with Salesforce in the past year. This article will definitely help you prioritize steps to pass the Salesforce AppExchange security check more easily.

    Passing the Salesforce AppExchange security review is crucial for any developer looking to publish an application on the Salesforce platform. Salesforce places utmost priority on security, employing stringent measures to safeguard the confidentiality and integrity of users’ data and systems. Successfully undergoing a comprehensive security review not only signifies unwavering dedication to data security but also fosters unwavering trust among prospective customers and partners. In this guide, we’ll provide a comprehensive overview of the steps to pass the Salesforce AppExchange security review.

    Steps to Pass the Salesforce AppExchange Security Review

    1. Back to Security Basics: Before diving into the security review process, it’s essential to have a solid understanding of the security requirements. Familiarise yourself with Salesforce’s Security Review guidelines, best practices, data protection, and security documentation. Key security areas to focus on include authentication, access controls, code security, and integration security.
    2. Plan and Prepare: Conduct a thorough security assessment of your application with the help of both developers and the testing team. Identify potential security vulnerabilities, and address them proactively. Create a security plan that outlines the security measures you’ll implement to meet Salesforce’s standards. This plan should cover both functional and technical aspects of security.
    3. Follow Best Practices: Adhere to Salesforce’s development best practices, coding standards, and architectural guidelines. Use secure coding practices, such as input validation, output encoding, and parameterized queries, to prevent common vulnerabilities like Cross-Site Scripting (XSS) and SOQL/SQL injection.
    4. Secure Authentication and Authorization: Ensure your application implements robust authentication and authorization mechanisms. Leverage Salesforce’s built-in authentication features like OAuth, SAML, or OpenID Connect. Restrict user access based on their roles and permissions to prevent unauthorized access to sensitive data.
    5. Avoid Hardcoding Credentials: Never hardcode usernames, passwords, or security tokens in your code. Instead, use Salesforce’s protected custom settings, named credentials, or custom metadata types to store sensitive information securely.
    6. Secure API Integrations: Implement secure API practices if your application integrates with external services or APIs. Use HTTPS for communication, validate API responses, and implement proper error handling.
    7. Regular Security Testing: Conduct thorough security testing using tools like static code analysis, dynamic analysis, and penetration testing. Address all identified vulnerabilities and retest to ensure they are resolved.
    8. Document Security Measures: Document your security implementation and the steps you’ve taken to secure your application. Include clear explanations of how you handle authentication, data protection, and access controls.
    9. Submit for Security Review: Once you are confident in your application’s security, submit it for the Salesforce AppExchange security review. The review process typically involves multiple stages, including manual code review, security scans, and automated testing.
    10. Respond to Feedback: If the review team identifies any security issues during the review process, address them promptly and thoroughly. Communicate openly with the review team, clarify any concerns, and demonstrate your commitment to resolving security issues.
    11. Iterate and Improve: If your application doesn’t pass the review in the first attempt, don’t get discouraged. Use the feedback as an opportunity to improve your application’s security posture. Address the identified issues, and resubmit for review.
    12. Stay Updated: Stay informed about the latest security updates and best practices from Salesforce. Periodically review and update your application’s security measures to adapt to evolving threats and requirements.

    dont miss out iconDon’t forget to check out: How To Pass Salesforce AppExchange Security Review

    APEX PMD

    Apex PMD aka Apex Program Mistake Detector is a tool used to detect mistakes related to Apex Classes, Apex Triggers, Aura, and LWC Components. It can either be configured in your browser using an extension or can be integrated into your Visual Studio Code (VSC).

    Below are some images attached from the extension to give you a better understanding of how Apex PMD works.

    Pass Salesforce AppExchange Security (Kizzy Consulting - Top Salesforce Partner)

    1. Post-Installation, click on Start Analysis

    Pass Salesforce AppExchange Security (Kizzy Consulting - Top Salesforce Partner)

    2. Processing of the data starts.

    Pass Salesforce AppExchange Security (Kizzy Consulting - Top Salesforce Partner)

    3. After processing completes, the issues can be downloaded in an Excel format.

    Source Code Scanner

    Another tool majorly used to detect code discrepancies is the Source Code Scanner. Source Code Scanner scans all the unpackaged code in the organization and reports on the security issues and errors present in the code. All we have to do is input the username

    Pass Salesforce AppExchange Security (Kizzy Consulting - Top Salesforce Partner)

    dont miss out iconCheck out another amazing blog by Kizzy Consulting here: Key Considerations for Developing AppExchange Strategy

    Conclusion

    In conclusion, passing the Salesforce AppExchange security review requires meticulous planning, adherence to best practices, and a proactive approach to security. By prioritizing security from the start and following Salesforce’s guidelines, you can ensure a smooth security review process and gain the trust of your users and customers. Remember that security is an ongoing process where continuous improvement is essential to maintain a secure and successful application on the Salesforce platform.

    Kizzy Consulting

    Kizzy Consulting is a Salesforce Consulting Partner and has successfully implemented 100+ Salesforce projects for 100+ clients across sectors like Financial Services, Insurance, Retail, Sales, Manufacturing, Real estate, Logistics, and Healthcare in countries like the US, Europe, and Australia. Get a free consultation now by emailing us at sales@kizzyconsulting.com or Contact us.

  • A Small Guide On Salesforce Integration: Benefits | Types |  Perks

    A Small Guide On Salesforce Integration: Benefits | Types |  Perks

    As businesses expand their operations, they often need help to keep up with the increasing workload. From managing customer information to tracking sales leads, the demands on sales teams can quickly become overwhelming.  

    Fortunately, Salesforce integration solutions offer a variety of tools to help streamline these processes and boost productivity. With automated workflows, real-time data syncing, and seamless app integration, SF integration can take your business to the next level. 

    With so many benefits, it’s no wonder that more and more businesses are turning to Salesforce integration solutions to optimize their operations. 

    What is the meaning of – Integration With Salesforce?

    This means” The action or process of successfully joining or mixing a different system with Salesforce. Imagine you need information in Salesforce stacked with other software or technology.  

    To do that, you require engaging multiple resources, which sounds like an arduous task with high time consumption. Integrating that software with Salesforce allows you to manage all that information across multiple systems. 

    Why Is Salesforce Integration Important? 

    • Improved data accuracy and consistency across systems, further reducing errors.  
    • Better decision-making by streamlining business processes and workflows 
    • Enhanced visibility into customer interactions and sales pipelines 
    • Better forecasting and pipeline management through accurate and timely reporting and tracking KPIs and performance metrics. 
    • More personalized and targeted communication leading to better customer insightsImproved customer experience and satisfaction  
    • Better collaboration and communication across teams and departments, reducing silos and increasing cross-functional alignment 
    • Increased scalability and flexibility as business needs change and evolve 
    • Reduced manual data entry and duplication, reaping comprehensive benefits of Salesforce CRM  with lesser risks of errors 
    • Ability to eliminate redundant systems leading to resource optimization 
    • Competitive advantage through leveraging data insights and customer intelligence  

    Different Types Of Salesforce  Integration

    Native Integration

    This is called single-platform integration, as you don’t require any other tool outside the Salesforce ecosystem. Compared to different ways of integration, this one is easy, fast, cost-effective, and accurate, enticing all to try it first.  

    On AppExchange, you can find such tools for data sharing in a reliable and streamlined way.  

    Custom Code Integration

    This Salesforce integration solution relies on Salesforce API and hand-coded solutions for connection. It is useful primarily when ready-to-use tools are unavailable or the business has unique requirements. The major drawback is the cost associated with the development and regular maintenance when the salesforce or the other applications are updated.  

    dont miss out iconDon’t forget to check out: Salesforce Integration with Google Calendar | All You Need to Know

    Batch Integration

    “Batch” means processing large volumes of data at predefined times in batches. It relies on hourly, weekly, and monthly data updates to avoid processing large volumes of data in real-time, which can lead to performance issues and system overload. 

    Batch integration involves dividing extensive data sets into smaller batches and processing them sequentially. It is suitable for data imports, updates, and deletions. Moreover, it is also helpful in running complex reports and queries.  

    Real-Time Integration

    What do you think – Is real-time integration necessary for all scenarios? Real-time integration is optional, barring a few industries and applications. Near real-time integration is more sufficient and easy to implement, manage and control.  

    Force.com Canvas Integration

    Canvas is among the best Salesforce integration tools consisting of JavaScript APIs for linking third-party applications to the World’s best customer relationship management (CRM) software. It includes multiple tools to handle authentication, context, events, cross-domain XHR, resizing, and more.  

    Near Real-Time Integration

    Near real-time integration occurs within seconds or with a slight delay of a few minutes, depending on the requirement. This method is helpful when quick data integration is necessary, but a slight delay in the transfer is not so detrimental. 

    It is easy to maintain and more reliable as compared to real-time integration. This approach works exceptionally well for various applications, such as emailing customers to confirm online orders. 

    Real-Time Mashups

    To create real-time mashups, you must build a user interface in a provided framework for creating customized UIs- Visualforce. It is a smooth process to create UI through custom branding. Moreover, callouts to retrieve data from external systems and simple flows are also available for UI creation 

    As per Salesforce integration partners,  this methodology suits businesses requiring immediate access to data outside of Salesforce in several external systems. 

    dont miss out iconCheck out another amazing blog by Algoworks here: Salesforce Einstein: The Driving Force Behind Exceptional Organizational Growth

    Types Of Integrations That Can Suit Your Business Needs

    Regardless of size and industry, most organizations connect their Salesforce to external systems primarily at the process and data levels. However, here are the three primary levels of integration used in Salesforce. 

    1. Data Integration – Essential when you need to synchronize data from multiple systems.  
    2. Business Logic Integration – Empower you to build robust and comprehensive business solutions for various back-end systems and apps. 
    3. User Interface Integration– Preferred way to create a centralized user experience 

    All the different types of Salesforce integration mentioned above are helpful. However, we recommend you try native or single-point integration.  

    Outcome

    By leveraging the different types of Salesforce Integration available, businesses can streamline their operations, improve collaboration, and gain valuable insights into their customers. From API integrations to app integrations, the possibilities are endless. So, embrace the power of SF Integration and take your business to new heights! 

  • What Must ISVs Know Before Integrating With Salesforce?

    What Must ISVs Know Before Integrating With Salesforce?

    A lot of enterprises depend on Salesforce for many of their business processes ranging from marketing automation to sales process management. They don’t’ all use Salesforce. Each enterprise use tens of different apps and nearly every enterprise’s top app selection criteria is the app’s capabilities to connect with other apps, and in many enterprise’s cases, the capability to integrate with Salesforce. This also gives ISVs with integrative products a competitive edge. In this post, we will take a look at different approaches an ISV could take for providing Salesforce integration support for their product.

    Independent Software Vendors And Salesforce

    I remember a 2014 study according to which an enterprise on average use 508 different applications, most of them having cloud-based data sharing capabilities. Though in the past 2 years this number would have gone down considerably, an enterprise still uses a hundred different applications. Also, the focus has also shifted from ‘number of apps to’ an integrated solution environment. What that means is that enterprises now invest in solutions that can do many tasks instead of a single specific one, and should be able to directly interact with other software without a help of 3rd party tool.

    Even though there are many different ways an application can be integrated with salesforce, there are four major approaches an ISV can take in when providing support to their customer in integrating with Salesforce.

    • Self Hosted Custom Integration Adapter
    • Forcedotcom Based Integration App
    • Direct API and Class-Based Integration
    • Sitedotcom Based Web Service Integration

    dont miss out iconDon’t forget to check out: The Most Common Types of Salesforce Integrations

    Each one has its pros and cons and every software vendor needs to analyze their requirements, their client’s requirements, and costs involved before finalizing an approach. To make the matters simpler for the ISVs, in this post we would be comparing each on the basis of development efforts, deployment efforts, Scalability, Flexibility, and Salesforce restrictions.

    Self Hosted Custom Integration Adapter

    Custom Adapters, as the name suggests, are completely self-developed and hosted integration software whose main aim is to allow two-way communication between Salesforce and the Customer software. Usually, these type of adapters are built using technologies like JAVA and .Net, and hosted on similar environment, but new technologies like NodeJS and cloud servers are taking their place.

    Development Efforts

    Compared to other approaches, this one is the most difficult approach. Not only do you have to develop a complete software from the scratch, you also have to deploy it on your own servers, maintain it, and scale it. Security from both ends is a challenge as you have to keep in mind the security of both the systems, the ISV product, and Salesforce. Development release, on the other hand, is faster. Configuration efforts on Salesforce end on the other hand is quite fast. You can release the app as a package and allow easy installs, or you can design and develop the App to simply communicate with SFDC using API callouts. Configuration may require a Salesforce expert but it is a one time job.

    How Real Is The Real-Time

    The word realtime is often misunderstood. For some realtime means data exchange every other hour, for some it means data sync at the very instant. Custom adapter are not 100% real-time i.e. you have to run a frequency based job at the adapter end to check the disparity between the application and Salesforce data. A higher frequency means mean more API callouts per day and more running jobs per hour on your server, whereas a low frequency means your data is less ‘real’ time.

    Flexibility And Scalability

    As the whole integration application is your own end, you can easily add more features to the app, or upgrade the technology without large downtimes. Upgrading will not involve considerable development support at the client end, however, you may have to provide some technical expertise in re-configuration. On the other hand, you can easily provide integration support to a large number of clients at fewer development efforts.

    Revenue And Costs Involved

    As you are hosting the solution on your end, you would also have to bear the hosting costs in addition to the development costs. Again, as the product is your own, you are responsible for its promotion. Most software vendors include integration adapters as part of the package but you can be as innovative with your pricing as you want.

    Forcedotcom Based Integration App

    This approach is basically the same as above mentioned one with one major critical difference, instead of a self-hosted server platform, we would be using SFDC Forcedotcom cloud platform and SFDC technologies to develop, deploy, and run the integration app. Forcedotcom is Salesforce native app development cloud platform. You can package the integration adapter as a native app package (managed or unmanaged package app), and can even launch these apps on Salesforce AppExchange. Also if properly developed (both AppExchange app and the integrated software), it is not even necessary to host the app. If your external software has properly developed APIs, AppExchange installation will make the necessary changes in client’s Salesforce instance to connect Salesforce through these APIs without any need for developer level coding.

    Development Efforts

    Development efforts are comparable to the self-hosted custom adapter approach, but since you are using the Salesforce platform for both development and/or hosting, your time gets cut down a little. Packaging a Salesforce-based app is also easier. However, if you are planning to release the app on AppExchange, which we would highly advise you to do, you will have to invest a lot of effort on making the app AppExchange ready. I suggest reading through our previous posts on AppExchange.

    If your app is on AppExchange you and your end client also save a lot of time on installing and configuring the integration at Salesforce.

    How Real Is Realtime

    The ‘real-timeliness’, if that is a word, is similar to Self Hosted Adapter approach. Time-based jobs will find any data differences and will update data on both sides. You can include triggers in SFDC logic to make sure that any change in SFDC org is instantly reflected in all areas.

    Flexibility And Scaling

    Your app’s scaling and flexibility in this approach as well depend on your coding skills. Forcedotcom platform gives a lot of options for scaling the application so that’s a plus point. If you list your app on AppExchange your release cycle may extend because of salesforce review processes but not by much. The appexchange listed app also saves you the trouble of manually updating the app integration at each client end. Once you upgrade the app at AppExchange, app users can easily upgrade their apps from their instance itself, unless that is your upgrade don’t induce some radical changes which may require expert deployment.

    Revenue And Costs Involved

    Forcedotcom apps are a little bit expensive to develop because they take more time in making sure that it is up to Salesforce security standards. However, they make up for the fact that you get a free entry to a highly visible Salesforce AppExchange platform. In fact, many ISVs have adopted the AppExchange platform as their additional revenue generation platform by launching paid Salesforce apps.

    Direct API And Class-Based Integration

    This is the easiest approach to integrate two different solutions. Instead of developing/deploying an app, if the external software has compatible APIs we can directly integrate Salesforce with the solution. So a common guideline for ISVs is to develop and provide a very robust set of APIs to allow easy integration with Salesforce and other software. It’s very beneficial in long terms.

    dont miss out iconCheck out another amazing blog by Algoworks here: Salesforce Integration Cloud: Accelerating Customer’s Digital Transformation

    Development Efforts

    Development efforts are directly dependent on the complexity of APIs available. If you are going for a complex integration with lots of different data integration points, if will naturally require more development efforts. However, by average, a typical enterprise-level integration through direct API communication require considerably fewer development efforts. But the problem comes when you to transform and then transfer data, or there is a clash of data standards, or APIs are just not advanced enough.

    The problem, however, comes at the client side. You would need considerable development efforts to write custom apex code to integrate through APIs. If your client base is small and you don’t want to promote the integration, then this approach is very beneficial. Otherwise creating an AppExchange app that will automate the integration process would be more beneficial, both in terms of cost and time.

    How Real Is Real-time

    These type of jobs are usually dependent on triggers. A user action will trigger updating of data and at both sides. So we can say that the approach is a very real time in this aspect. The problem comes around transformed data. If the entered data has to be transformed either at Salesforce side or at external software side, updating/syncing it in real time becomes a challenge.

    Flexibility And Scaling

    Flexibility again depends upon the level of complexity of APIs at both sides. If a type of data transfer is possible, then it’s easy and direct, if not then you have to take a totally different approach. Scaling is easy. However, you have to take into consideration Salesforce API limits. Check out this page for more info on API limits.
    https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_api.htm

    Revenue And Costs Involved

    If direct integrations are available and usable, then direct API integrations are the cheapest approach. However as stated earlier, if you would have to deploy on multiple instances of multiple clients, then it’s beneficial to go the app way.

    Revenue And Costs Involved

    So as you may notice, all approaches have their pros and cons. We usually emphasize more on AppExchange based and API based integration to ISVs mainly because it’s easier to scale, distribute, and can be a source of revenue.

    Apart from these, there is an alternate approach: via Sitedotcom based web integration. This involves creating integration scripts that run on custom Visualforce pages, which are in turn deployed at client side Salesforce instance. This approach is practical in some use cases but on a larger scale it’s full of security nightmares, require deployment efforts at each client instance, difficult to scale, difficult to upgrade, and prone to errors. So we usually don’t take this integration approach.

    Reference: Algoworks