There are many objects created in Salesforce Industries (Vlocity). Things like OmniScripts, DataRaptors, products or even FlexCards. These are usually created by an OmniStudio administrator and developer or by a CPQ Industries developer. Usually, administrators or developers work in a developer organization, a sandbox organization or even a scratch organization. However, the work they do needs to be transferred to different environments, such as a test environment and eventually a production environment, so that users can benefit from the creations we developers and administrators have made.

Context

To transfer the things we create as administrators and developers, we use tools to support this process. In the Salesforce world, for example, we use SFDX or the new SF CLI to transfer metadata.

Since the configuration for Salesforce Industries (Vlocity) is not only metadata but also includes data records in SObject tables, another tool is needed to manage it.

Within Salesforce Industries (Vlocity), we use two different tools to manage our configuration. The first is the Vlocity Build Tool (VBT), while for the second tool we use front end of the Industries Developer eXperience Workbench, also known as the IDX Workbench.

Now let's focus on the problem:

The OmniScripts and FlexCards are implemented in the organization as LWC components. These are generated by a screen automation tool called Puppeteer. As you can imagine, this takes a lot of time because the screen automation tool has to go one by one to generate and deploy the LWC components one by one.

Where this problem really becomes apparent is when you start using the new industries CPQ Cart (LWC). This cart consists of a lot of Flexcards, namely 141, and 18 OmniScripts. Using the VBT puppeteer deployment method to implement it takes more than an hour, which is a lengthy and risky process that requires many adjustments and iterations. Realistically, this process can take hours.

Why should I consider it?

Since developers and administrators use a lot of FlexCards and OmniScript. This even several times a day with CI/CD. Having a process that makes developers wait for hours is unacceptable.

So how do we deal with this?

This is where VBT Local Compilation comes in. It is a new development. Originally delivered in last year's spring release, it only recently became useful for larger projects. That's the reason I'm writing about it now.

This local compilation function brings the compilation to the developer's or administrator's desktop and generates the LWC components in advance. In this way, the LWC components are deployed with regular Metadata API deployment, saving a lot of time. The deployment of the LWC cart is now reduced from hours to only about 10 minutes, depending on the circumstances.

My experience

That sounds great! Is there a catch? No not really. So far my experience with the tool is that it can be somewhat picky when it comes to the repository being online (with the local compiler). Fortunately, it is usually available and so far we have had only one day of outages. However, it is important to note that the local compiler is not open source and code cannot be easily modified by clients. Unlike VBT, which was open source and allowed me to make regular code improvements, it is not possible to make changes or fixes with this tool.

Another challenge is that version control is not very clear. Not for every version of CME Vlocity Package there is a released version of the local compiler. There are also no published changelogs. So it is up to you to verify what has changed in the local compiler. A command that helped me do this is:

Where "900.472.10" is your current version and "900.481.0" is the new version.

This shows you the code changes made by the developers of the local compiler.

What resources would you recommend using to get started?

For starters, I would suggest reading this article:https://github.com/vlocityinc/vlocity_build#initial-support-for-omniscript-flexcards-local-compilation ("Initial support for local compilation of OmniScript / FlexCards")

Wrapping up

The future looks promising: Salesforce is incrementally adding more features to its native core. One of the first additions is the Standard OmniStudio, which runs native on the Salesforce Platform and uses standard metadata types. If you want to read more about this, let us know. We might write about this next time.

Recognize the differences: Architects versus Software Engineers

What talent do you use to bring your projects to fruition? When do you deal with an Architect and when do you work with a Software Engineer? None other than Yannick van Eldik (CaseNine) and Raimond Brookman (Info Support) can explain this to you in detail.

Architects and Software Engineers: how do these roles differ?

Yannick: "You notice the differences in the activities in which individuals are involved. For the development of a feature, you use the talent of an Engineer. For a project, if a route has to be mapped out or a technique has to be figured out, you have to deal with an architect."
Raimond: "An architect in IT is concerned with laying down the main structure. What should the software solution look like with the emphasis precisely on the big picture."

What steps do you go through to find the right architect?

Brookman: "We map out what products and services are provided and link to this the question of how to organize this on the internal side. This analysis is therefore mainly about the business side of the organization. On the other side, we map out what IT support is needed for this. That means answering the question: what systems are needed and what underlying infrastructure is required for this. Then repeat these steps for the strategic, tactical and operational areas of the organization. In other words: the slightly longer term versus the shorter term. In this way you already have twelve focus areas in which you can work with architecture. In practice, you also involve the mission, vision and strategy of the organization. That determines how you want to shape the organization across the aforementioned domains. We call that the Enterprise Reference Architecture. Those initiatives are often the change initiatives. For this, we set up a slightly more detailed plan: the Solution Architecture. The next step is even more concrete and splits into two. On the one hand, the design of the organization and on the other, the software architecture."

What advice do you give to organizations looking for a Salesforce Architect?

Yannick: "Don't go looking for 'an architect' right away. Instead, present your business case and present the actual question. Only then is it possible to find the optimal profiles to go with it. After all, as Raimond just pointed out, there are different types of architects. Each talent has different, unique skills. So present the question as well as the business case."

Raimond adds: "In practice, you often find that organizations are looking for a person who has all the talents. This is extremely difficult and can cause unnecessary frustration. You just saw it: there are different types of architects. You can recognize a good architect by the fact that he or she looks at both the long and short term. Also, the architect always includes the organization's business goals. The plan must also be tailored to those goals. Also, a good architect can make a connection between Developers on the one hand and non-technical stakeholders on the other."

What characterizes a CaseNine Architect?

Yannick: "A CaseNine Architect works across technology. They have a specialization in Salesforce, but their background and training allows them to work with the other technologies that organizations often have."

Want to know more? Watch the video with Yannick van Eldik and Raimond Brookman.

 

Make the right choice: Code versus No-code

Code versus No-code: two terms with which you may be increasingly familiar. What do they mean and, more importantly, what are the differences between them? We sat down with Colin Hamer, Software Engineer at CaseNine. "With No-code, although you can drag and drop elements into each other, it is still important that you know the underlying workings. Only then are you able to develop a good, scalable solution."

First of all, what does your daily work entail?

"As a Software Engineer, I am involved in both the design and construction of applications. This does not limit you to just the programming itself, but also to other things: getting information from the customer, finding creative solutions to complex issues ánd you are always working with the latest technology."

Code versus No-code: what are the differences?

"As the name suggests, with No-code you write no code or extremely little code. Instead, you drag and drop elements within a user environment. With Code, you do have to be able to write code. The latter is often provided by Software Engineers. Some qualification is in order here: both activities do require programming knowledge. With no-code, you can drag and drop elements into each other, but it is still important that you know how it works. Only then are you able to develop a good, scalable solution. Nowadays, we also see Salesforce referring to "No-code" as "Low-code. The two worlds are growing closer and closer together."

When do you choose which approach?

"In the case of a complex application, the 'Code route' is often chosen. After all, code gives you the most freedom and flexibility. At the same time, that is also a disadvantage. You have to be careful not to make a project unnecessarily complex. With Low-code, you are more limited: which elements are available for drag-and-drop. That also offers advantages. It makes it easier to maintain and transfer the project. If a project becomes too complex, it makes sense to look at Code."

How does it work in practice?

"As indicated, with No-code you work primarily with building blocks in a visual environment. In Salesforce's Flow Builder, you can set up No-code projects. Through the user environment, you can remove, move and put back blocks. That's how you connect the different elements."

As an organization, how can you get off to a smooth start with No-code or Code?

"At CaseNine, we can advise you on the right approach. We have extensive experience in both directions. How you notice this? The Software Engineers at CaseNine actually think and act from an engineering perspective. The experience allows us to see which solution fits best with each project."

Want to know more? Watch the video with Colin Hamer, in which he gives examples.

 

In the digital age we live in, businesses and organizations no longer get by with just a good product or great service. User adoption and user experience (UX) are critical to increasing productivity and improving customer satisfaction. In this blog post, we will discuss the importance of user adoption and user experience and how they affect the success of your organization.

User adoption: What is it and why is it important?

User adoption is about the extent to which users accept and start using a new product or service. This can be quite a challenge, especially when introducing new products and services. Resistance to change is something we are all familiar with. Whether we manage to turn that resistance into acceptance is critical to the success of the new product. It determines whether or not it will be used and thus whether it will ultimately generate revenue for the organization.

So the importance of user adoption is crucial. A product or service that is not accepted by users is basically useless, no matter how great it is. Therefore, it is very important for companies and organizations to ensure that their products and services are user-friendly and easily accessible.

User experience (UX): What is it and why is it important?

User experience (UX) is about the overall experience users have when interacting with a product or service. A good user experience is intuitive, user-friendly and enjoyable. A poor user experience can be frustrating, confusing and even discouraging, causing users to drop out resulting in reduced productivity.

User experience is an essential component of customer satisfaction, loyalty and increased productivity. When users have a positive experience with a product, they are more likely to continue to use it, recommend it to others and provide positive feedback about it. In contrast, a negative user experience can lead to customer dissatisfaction, negative reviews and even lower sales.

The importance of user adoption and user experience for productivity

User adoption and user experience are crucial factors in the success of a product or service. If users can easily accept and use a product or service, they are more likely to be productive and efficient. A good user experience can help users perform tasks quickly, easily and with fewer errors. This can lead to increased productivity and overall organizational efficiency.

Moreover, a positive user experience can lead to increased employee satisfaction and motivation. When employees are satisfied with the tools and resources their organization provides, they are more likely to be engaged, productive and motivated. This, in turn, can lead to increased revenue and growth for the organization.

The Importance of User Acceptance and User Experience for Customer Satisfaction User acceptance and user experience are also critical factors in determining customer satisfaction. When customers have a positive experience with a product or service, they are more likely to continue to use it and recommend it to others. This, in turn, can lead to increased revenue and growth for the organization.

In contrast, a negative user experience can lead to customer dissatisfaction, negative reviews and disappointing sales. When customers are dissatisfied with a product or service, they are less likely to use it and recommend it to others. That can lead to less revenue and growth for the organization.

The importance of user experience for Salesforce users

In the Salesforce world, where companies rely on CRM tools to manage their sales activities, user experience can make or break the deal. Why is user experience so important in the world of Salesforce? Five key reasons:

1.Increased productivity: A good user experience can help sales teams work more efficiently so they can focus on selling and closing deals instead of struggling with a clunky and frustrating interface. This can ultimately lead to higher productivity and more sales.

2.Improved customer relationships: The right UX can make it easier for the sales team to access customer information. This helps them in dealing with customers by allowing them to communicate in a more focused and personal way. This can help build strong, lasting relationships with customers and thus keep them loyal to your company.

3.Competitive advantage: In a crowded marketplace, a better user experience can set your company apart from the competition. By providing a smooth and intuitive experience, you can attract and retain customers who enjoy working with you.

4.Better data quality: When the user experience is optimized, salespeople are more likely to enter the correct information into the system. This leads to more reliable reporting and better insights into buying behavior for future policies.

5.Flexibility and scalability: A user-friendly interface can make it easier to scale and adapt your sales operations to changing business needs. This is especially useful in a fast-paced and ever-changing business environment.

So, how do you ensure a good user experience in the Salesforce world? Here are a five tips:

1.Focus on simplicity and ease of use.

2.Make mobileaccessibility a priority.

3.Make user feedback and testing part of your design process.

4.Invest in training and support for your sales team.

5.Monitor and improve the user experience to stay ahead of the competition.

Conclusion:

User experience is an essential part of a successful sales strategy in the Salesforce world. With a good UX, you can increase productivity, improve customer relationships, gain competitive advantage and ultimately generate more revenue for your business.

Curious about CaseNine's approach? Click here to read more about it or contact us today to spar with us. We'd love to hear from you!

In this blog post, we discuss the key benefits of CI/CD. In today's fast-paced business world, software development is one of the key drivers of innovation and growth. But as the complexity and scale of software projects increase, so does the need for efficient and effective development practices. This is where Continuous Integration/Continuous Deployment (CI/CD) comes in.

By automating crucial stages of the software development cycle, CI/CD can help companies streamline their development processes, improve collaboration and communication, and ultimately increase the company's commercial success. The Business Case for CI/CD: why investing in automation is worthwhile.

 

What is CI/CD?

CI/CD is a set of software development practices that automate the building, testing and deployment of software code. The CI part of the process involves automatically building and testing code as it is modified to identify potential problems early in the development process. The CD part then ensures that the code is automatically put into production once it has been tested and approved. By automating these stages of the development process, companies can save time, reduce errors and improve collaboration and communication between development teams.

 

Why invest in CI/CD? Is investing in automation worth it?

There are a host of reasons why companies would do well to invest in CI/CD. Some of the crucial benefits include:

1. Faster time-to-market: In today's fast-paced business environment, getting products to market quickly is essential. By automating key stages of the development process, CI/CD can help companies accelerate their development cycles and get products to market faster. This can provide competitive advantage over slower competitors, helping them respond quickly to changing market conditions.

2. Improved code quality: Manual testing is often error-prone, time-consuming and expensive. By automating tests and implementing code automatically, CI/CD can ensure that code quality is always up to par. This can reduce the number of errors and defects entering production, leading to a more stable and reliable product.

3. Increased collaboration. By automating key steps in the development process, CI/CD can help improve collaboration and communication among development teams. By making it easier to share code, test results and other development artifacts, CI/CD can help teams collaborate more efficiently and effectively.

4. Better use of resources: Automating the development process can help companies use their resources more efficiently. By reducing the time and effort required to build and deploy code, companies can free up their developers to work on more valuable tasks, such as writing new code or responding to customer needs.

5. Increased business agility: CI/CD can help companies respond more quickly to changing market conditions and customer needs. By automating key steps in the development process, companies can significantly reduce the time it takes to develop, test and deploy new code.

Cost comes before benefit, even when investing in CI/CD. In the long run, however, such an investment is very worthwhile and pays off in faster time-to-market, better quality, more efficiency and cost savings. If you want to stay ahead of the competition in today's digital landscape, CI/CD is an indispensable tool in your toolbox.

 

Case Studies of Satisfied Customers

Wondering how our solution can help your business succeed? Read the Case Studies below and learn more about real-world examples. Here are just a few examples where we have implemented CI/CD Pipeline:

Several years ago, Salesforce acquired Vlocity, which is now recognized as Salesforce Industries. In this article, we clarify how OmniStudio is related to similar tools offered by Salesforce, such as Workflows and Flows. Vlocity consists of several modules, such as CPQ (Configure Price Quote), CLM (Contract Lifecycle Management) and OM (Order Management). In addition to these business processes, Salesforce Industries offers OmniStudio, which includes OmniScript, Integration Procedure and DataRaptors. These data integration tools are now combined in a new product: OmniStudio.

Salesforce

Salesforce offers several tools that may look familiar to you: Workflows, Process Builder and Flows. Let's focus on Flows for now, as it will replace the other two tools.

With Salesforce Flows, business processes can be easily implemented in Salesforce: the tool is particularly suitable for applying low-code. This way, you can build a process with Screen Flow on the front end without writing a single line of code: back-end and database automation processes are just as easy to edit. Both OmniStudio and Visual Flows work well with Salesforce objects and fields.

OmniStudio

This tool consists of three complementary tools: OmniScript (OS), Integration Procedure (IP) and DataRaptors (DR). OmniScript is a solution in which visual processes can be built without any development experience. It uses Integration Procedures to retrieve data from multiple locations. In turn, an Integration Procedure uses DataRaptors to interact (read, transform and store information) with objects and retrieve data from external APIs/databases. It then sends this combined data back to OmniScript. In addition, Lightning Web Components (LWC) can also be used here.

Comparison of tools

Now that we have identified what the different tools are used for, let's compare Flows to OmniStudio.

Flows

1. The user interface can be edited with Screen Flows. However, you will need Lightning Web Components more often because the customization options are limited.

2. A record-activated flow is always associated with a database transaction, an operation, or the creation of a new record.

OmniScript

3. Works well with other Vlocity products such as Configure Price Quote and Contract Lifecycle Management.

4. Integration Procedures and DataRaptors are also easily combined with OmniScripts.

Integration Procedure

5. Can be associated with a process the user wants to perform. This is not strictly associated with a database transaction.

6. Very easy to combine with other Vlocity products such as CPQ and CLM.

7. Using Integration Procedures, you can make API calls. You can also combine this with Named Credentials.

8. Easy debugging and testing with the example function. Individual steps within the process can be previewed and debugged.

9. Options to work with high consumption of Salesforce limits, by implementing queueable and chainable features.

10. Integration Procedures can work with anything represented in JSON. XML can be converted to JSON using DataRaptors. Integration Procedure can also be called as an API.

Summary

In this article, we have discussed several key differences between Salesforce Flows and OmniStudio. We recommend using OmniStudio for complex API calls or data processing; OmniStudio products are also much more suitable to use with Vlocity (Salesforce Industries). So, if you're already using Salesforce Industries, it makes more sense to use OmniStudio. Want to know more about this tool? Trailhead offers excellent modules for this.

If you have any other questions, please contact us or follow our page here for weekly updates.

The context

End of the year all energy contracts have to be renewed, the energy suppliers are busy. Our Salesforce Industries licenses had just been renewed. And we had just upgraded to the latest version, the winter '22 release, when I got a call that CPQ was no longer working.

Panic!

Recently, Salesforce Industries Permission Set Licenses were introduced in the Spring '22 release. Existing customers can continue to use Managed Package Licenses, they can also choose to switch to Permission Set Licenses. But how do Permission Sets work in industries CPQ?

The problem

What is a Permission Set License? What is its benefit?

Permission set licenses allow you to have a more granular licensing policy . There are several options for Energy & Utilities cloud Permission Set Licenses.

On the left you first see the license and on the right you see the available Permission Set for that license:

Permission sets per license.

 

 

 

 

 

 

 

 

 

 

Permission Set Groups are also available that you can use to get started quickly. We will use these in the examples later in this blog.

Sources: salesforce.com I and salesforce.com II

The solution: a migration plan

How can you assign permission set licenses quickly?

The easiest way is to group the users into a public group. Keep in mind that this assigns all vlocity_cmt licenses to the users in the public group.

Note! first read the scripts and adapt them to your needs before performing this operation.

You are responsible for your own actions : )

Pro tip: make your first version in a scratch org or sandbox, then you can try out all sorts of things with confidence.

how do permission sets work in industries CPQ?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Then you can assign the permission set groups to the users using this script:

how do permission sets work in industries CPQ?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sandboxes and Scratch orgs:

How can you test with the new license structure? This can be done incredibly well in sandboxes and scratch orgs. How do you turn it on? You need to turn on the check for managed package licenses. You do it like this:

How can you test with the new license structure? This can be done incredibly well in sandboxes and scratch orgs. How do you turn those on? You have to turn on the check for managed package licenses. You do it like this:

 

 

 

 

The documentation can be found here

You can incorporate these scripts into your CI/CD process so that all orgs look the same. That way you can detect and fix potential problems early on.

Want to learn more about Permission Set Licenses, Permission Sets or Permission Set Group? Read all about it in this article from Salesforce. Curious to learn more? Subscribe to the Technical Deep Dive series today.

Context: products are not visible in the CPQ cart

You have built a CPQ solution and configured your commercial products within the EPC. But when you view the cart, no products are visible or available. What now? There could be a number of things going on, causing the products not to be visible in the CPQ cart.

The problem: what could it be due to?

The Orderable box is not marked true for this product.

The solution:

Product Visibility in CPQ cart

Dhe 'Product Status' is not active

The solution:

The 'Active' box is not selected for this product

The solution:

Hhe product has an incorrect sell-by date

The solution:

Please note that products within the EPC have a start and end sale date.

Hhe product has a Context Rule that hides the product

The solution:

There is no price for this product in the price list

The solution:

Note: A product without a price is not visible in the CPQ cart.

Insufficient Maintenance jobs have been performed

The solution:

We recommend that you always have a Maintenance job after you have changed a product configuration. Then you can be sure that the product cache and the product hierarchy are properly configured for use in the CPQ Cart.

Make sure each task is completed before you start a new one. This can sometimes take a while because they are like Async jobs are executed. Progress can also be checked in Setup with keyword Apex Jobs.

If you find that you need to do these tasks often, af if you want to integrate them into your development or your CI/CD workflow, you can automate them and run them as Apex scripts:

Product Visibility in CPQ Cart

// Run jobs for hierarchy and cache

for (Pricebook2 pricebook : [SELECT Id FROM Pricebook2]) {

//https://docs.vlocity.com/en/Refresh-Platform-Cache.html

vlocity_cmt.CMTAdminJobService.startProductHierarchyMaintenanceJob(pricebook.Id);

}

You can even use them as post-Deploy step run in the Vlocity Build Tool: (https://github.com/vlocityinc/vlocity_build)

In conclusion

Hopefully these tips will help you configure your EPC and CPQ. I know these problems can be really tricky to solve, but at least your products are now visible again in CPQ cart.

I post Technical Deep Dives on a regular basis. Subscribe today and don't miss a single CaseNine Technical DeepDive episode.

Spring '23 has arrived in Salesforce and with it comes a host of new features and enhancements that are sure to help simplify the way you work and deliver value to your customers. Whether you are an experienced developer or just starting out on the low-code to pro-code spectrum, there is something for everyone in this release.

One of the standout features in Spring'23 is the DevOps Center, now generally available. This tool provides an enhanced experience around change and release management by bringing best practices from the DevOps world to your development team. With the DevOps Center, all developers and admins can work together to deliver value to customers in a scalable and repeatable way. You can manage changes and releases with the point-and-click interface, directly from your source system or a combination of them.

Another feature is the HTTPCallout Builder, a low-code feature in beta. This tool makes it easier to automate processes with external data by creating Flow Builder actions that call Web-based service APIs with HTTP Callout. HTTPCallout Builder lets you set up direct integrations without code or a middleware service, and you can easily map data types from JSON output to flow variables.

If you want to create screens with interactive components, the Spring '23 release helps you with the Build Screens with Interactive Components (Beta) feature. This tool lets you configure supported components or your own Lightning Web Components to respond to changes in other components on the same screen. This allows you to build screens that feel like single-page applications and reduce the number of screens for your users.

Flow users will be pleased to know that Lookup Fields can now be easily added to flow screens with Dynamic Forms for Flow. This feature allows you to create a record- directly from the Lookup field, making it easier than ever to create record-enabled orchestrations.

With the improved Conditional Directives in Spring '23, you can now use lwc:if, lwc:elseif and lwc:else to replace the legacy if:true and if:else directives. These directives make it easier to create dynamic templates based on certain conditions.

If you want to schedule Queueable Jobs with delay, the System.enqueueJob Method in Spring '23 allows you to set a delay when scheduling, from 0 to 10 minutes. This new optional override is a great way to add queueable jobs to the asynchronous execution queue with a specified minimum delay.

Finally, the Dynamically Pass Bind Variables to a SOQL Query-feature in Spring '23 makes it easier to resolve bind variables in a query directly from a Map parameter with a key, rather than from Apex code variables. This means that the variables need not be in scope when the query is executed.

Conclusion: Spring '23 is packed with new features and enhancements that will take your Salesforce experience to the next level. Whether you are an experienced developer or just starting out, there is something for everyone in this release. So feel free to explore and discover all that Spring '23 has to offer.