Craig Isakson, Author at Perficient Blogs https://blogs.perficient.com/author/cisakson/ Expert Digital Insights Tue, 16 Apr 2024 16:21:52 +0000 en-US hourly 1 https://blogs.perficient.com/files/favicon-194x194-1-150x150.png Craig Isakson, Author at Perficient Blogs https://blogs.perficient.com/author/cisakson/ 32 32 30508587 Introducing Salesforce Einstein Copilot for AI https://blogs.perficient.com/2024/03/25/introducing-salesforce-einstein-copilot-for-ai/ https://blogs.perficient.com/2024/03/25/introducing-salesforce-einstein-copilot-for-ai/#respond Mon, 25 Mar 2024 18:26:41 +0000 https://blogs.perficient.com/?p=360249

Do you struggle to optimize user experience and maximize productivity? If so, your team is spending valuable time on repetitive tasks like data entry, locating the right information, and follow-ups, limiting time for core functions and strategic initiatives.

What if an AI assistant could streamline workflows and unlock hidden efficiencies?

Enter Salesforce’s Einstein Copilot, a game-changer that surpasses basic AI suggestions. Powered by your data and customizable actions, Copilot adapts its assistance to your specific business needs and processes.

By using your company’s data, Einstein Copilot understands the unique context, terminology, and nuances of your operations, mitigating potential biases present in external datasets, and delivering the right information in the context your users expect.

Another exciting feature is Actions. These are predefined routines that Copilot can execute. It comes with several, with more constantly added. You can also create custom Actions for your specific use cases.

Actions can be built using Flows, Apex classes, or Prompt Templates, extending Copilot’s capabilities. It then uses the context of the record you’re working on and your natural language prompt to trigger the right Action at the right time.

The use cases for Einstein Copilot are vast. It offers a secure, reliable, and efficient way to personalize AI experiences, improve productivity, and gain valuable insights for business success. I’m excited to see the progress and how this tool helps our clients!

Learning new features can be overwhelming, but don’t worry. At Perficient, we are Einstein Copilot experts. Read more about our AI capabilities and Salesforce Data Cloud expertise.

Contact us today to unlock the full potential of this game-changing technology!

Perficient + Salesforce 

As a leading Salesforce consulting partner, we are on a mission to harness the power of Salesforce to solve complex business problems. With specialized knowledge in Data Cloud, Einstein AI, Marketing Cloud, and Experience Cloud, our team is dedicated to crafting innovative digital experiences that drive client success.

We aren’t just experts; we’re storytellers who understand the unique needs and challenges in the manufacturing, automotive, healthcare and life sciences, and financial services industries. We team up with our industry and solution experts to build complex enterprise ecosystems for our clients, and through our commitment to building authentic relationships with clients and partners, we foster collaboration and trust that lead to sustainable growth.

At the heart of our mission is our belief in lifting up people and communities. By leveraging our global team’s skills and resources, we strive to solve complex business problems and leave a meaningful impact on society.

Join us in our journey to revolutionize the way businesses connect, engage, and thrive in the digital era.

]]>
https://blogs.perficient.com/2024/03/25/introducing-salesforce-einstein-copilot-for-ai/feed/ 0 360249
The Importance of Simplifying System Architecture https://blogs.perficient.com/2018/01/05/the-importance-of-simplifying-system-architecture/ https://blogs.perficient.com/2018/01/05/the-importance-of-simplifying-system-architecture/#respond Fri, 05 Jan 2018 18:55:27 +0000 https://blogs.perficient.com/?p=244960

As a Technical Architect at Perficient, I have the opportunity to help a number of our clients determine and shape the landscape of their system architecture. It’s honestly one of my favorite parts of the job. Over the years, we’ve seen a lot of different types of implementations. And the more we see, the more patterns start to emerge. We get to see what works really well – and what can leave room for improvement.

If you’ve worked in technology, you can probably relate to seeing some of the less desirable implementations. You start out with the best intentions, but maybe the scale of the systems that need to be supported changes along the way. After initial determinations, certain types of integration concepts are no longer feasible for the small scale. And as the scale incrementally expands, the status quo changes. Before you know it, you are trying to manage 30 different systems with interwoven dependencies – and you start to see more and more failures in the data integrity.

3 Potential Problems & Pitfalls

There are a number of downsides once you’re dealing with a disparate type of system architecture:

  1. It makes it very hard to debug issues that emerge. There could be multiple points of failure, which means it’s that much more difficult to find and monitor issues as they arise.
  2. It can be very hard to maintain data integrity in your systems. As systems grow and expand without master data management, it becomes more difficult to identify the source of truth for your information. And that means you may not be able to trust the data in front of you.
  3. Since there are interwoven dependencies, it’s more difficult to deploy updates. That means your team will spend time trying to figure out clever ways to deploy changes that should be rather straightforward, instead of spending their efforts on future projects that can help drive business.

In the end, all of these issues really boil down to time, which could be much better spent helping your organization reach its goals. It can happen to anyone, and the circumstances are fairly common. In fact, we have seen very innovative companies struggle with the same challenges.

Sundog Blog Simplify Your System Architecture 01

Need Any Help?

Here at Perficient, we have a lot of experience in helping clients simplify. If you have questions or want to talk about options, reach out and contact us anytime.

]]>
https://blogs.perficient.com/2018/01/05/the-importance-of-simplifying-system-architecture/feed/ 0 244960
Manufacturing & MDM: From Cleaner Data to Better Forecasting https://blogs.perficient.com/2017/08/02/manufacturing-mdm-from-cleaner-data-to-better-forecasting/ https://blogs.perficient.com/2017/08/02/manufacturing-mdm-from-cleaner-data-to-better-forecasting/#respond Wed, 02 Aug 2017 21:28:58 +0000 https://blogs.perficient.com/?p=246817

Let’s start by painting a picture. You’re working for a manufacturing company, building some cool stuff that people love. That’s awesome! However, as you grow, it starts to become increasingly difficult to maintain data integrity across your organization. Different departments use different systems to work with the same or similar information. You may even have purchased other smaller companies and have to shoehorn their systems in to work with yours. All of these types of scenarios create inefficiencies and inaccuracies, which cost your company money. Nobody wants to spend money on wasteful issues like that, right?

If that sounds familiar, let me introduce you to Master Data Management (MDM). MDM gives you:

  • A way to standardize data across your organization from many disparate systems
  • A single system of record by use of integrations
  • Formalized standards and processes from systems of entry

Sundog Blog Manufacturing And Master Data Management 01

The Challenge: Data from Different Sources

Let’s take customer data, for example. A customer may interact with your systems from a number of different areas, like your website, mobile app, commerce transactions, etc. While it’s the same customer each time, where and how he/she interacts is different. That means you could potentially have the same information (and updates to that information) for the customer in any number of locations. That can quickly become a nightmare to maintain.

The Solution: One Source of Truth

With MDM, all of those systems are integrating with a single location for the customer’s data, while maintaining standards for that data, too. Not only does this help eliminate duplicate/redundant data, it helps keep create more accuracy, since you always have the latest information no matter what system it came from.

Sundog Blog Manufacturing And Master Data Management 02

One of my favorite outcomes of MDM, besides clean data, is the magic that can happen when you have all of your data in a single location. You can start to run analytics, business intelligence (BI) and forecasting. And since the data is accurate, you can trust the results of your analytics, which is a huge help for making business decisions.

Here at Sundog, we have a lot of experience with MDM implementations, helping companies reap the benefits of having an MDM system in place. Depending on your situation, there are a number of different tools and offerings. While the initial implementation can be daunting, the benefits are huge. The important thing is to get the conversation started and know there are solutions to your problems. Let us help you find them!

 

]]>
https://blogs.perficient.com/2017/08/02/manufacturing-mdm-from-cleaner-data-to-better-forecasting/feed/ 0 246817
Customizable CMS & Search for Salesforce Communities https://blogs.perficient.com/2015/10/19/customizable-cms-search-for-salesforce-communities/ https://blogs.perficient.com/2015/10/19/customizable-cms-search-for-salesforce-communities/#respond Mon, 19 Oct 2015 16:18:54 +0000 https://blogs.perficient.com/?p=247010

What do I love about working at my company?

The tough challenges that our clients bring us, not to mention the way we challenge ourselves. Around here, we’re all obsessed with quality and the drive to make our clients heroes in everything we do. And as a Systems Architect, that means I get to do some really cool things.

Recently our team created a fully customizable CMS system built on Salesforce Communities. In short, it was awesome – with a long list of different features to meet our client’s needs. We are talking customizable CMS for CRM on a whole other level.

The Customizable Search Component

What good is a fancy new look and feel for CRM if you aren’t able to find the information you are looking for? This would be like riding a Kawasaki H2R on old tires that have no traction. In other words, it would take all of the fun out of the user experience. That’s where our customizable search component comes in. We built it from the ground up to use standard Salesforce technologies, kicked up a notch for even better performance.

This component uses a predictive search algorithm to show suggested search results based off just a few characters that are entered and the context of where in the community the user is making the search from. Everything was built in an abstract manner that facilitates ease of extension and polymorphism for components that wish to implement the functionality. With this architecture, we are able to add any number of customize search parameters for the global search within the community.

Faster Search: The Secrets to Speed

  1. What makes this search fast is the fact that we are utilizing standard Salesforce SOSL queries for full text searches across any number of different objects. We use this in conjunction with JavaScript Remoting to provide a seamless experience for our clients.
  2. One of the other reasons why the community is so fast is the fact that it is stateless. That means we are able to quickly pass data with JavaScript Remoting and don’t need to pass along large viewstates to and from a controller. You might be thinking, that sounds good but how does it relate to the search that was built? Simple: deep linking. All of our searches and results support deep linking. While deep linking doesn’t require stateless, it does go hand in hand with the architecture of the site. As the user searches, the URL reflects the parameters that the user used to search, which allows for sharing of the link to other users with the same context (except security) passed along.

Customizable Tagging & Filtering

The search we built also supports many different types of tagging and filtering. These too are all customizable based on the user’s context. It is entirely possible to use the same model only in different ways in two different parts of the site, all dependent on where and how the search component is being used.

At Sundog, we are often presented with some pretty daunting challenges. Through them, we can further our knowledge and expand upon our innovation. That was particularly true for this specific customized search component we built for one of our clients. Not only does it work fantastically, it exceeds our client’s needs – making them the hero of the day by giving their customers a better way for the day-to-day.

Want to know more about this custom community implementation? Let us know, and we’d be glad to give you more info.

]]>
https://blogs.perficient.com/2015/10/19/customizable-cms-search-for-salesforce-communities/feed/ 0 247010
5 Lessons I’ve Learned From User Experience https://blogs.perficient.com/2015/06/18/5-lessons-ive-learned-from-user-experience/ https://blogs.perficient.com/2015/06/18/5-lessons-ive-learned-from-user-experience/#respond Thu, 18 Jun 2015 21:32:35 +0000 https://blogs.perficient.com/?p=248242

I have been around technology for a long time – just about as long as I can remember. Back when I started computing, the concept of user experience (UX) wasn’t even a thing. You knew the commands to tell your computer what to do. And if you didn’t know a specific one, you’d have a way of finding it. Soon after, graphical user interfaces (GUI) came to be, and UX became vital even before people really knew what to call it. Just like today, everybody was looking for the most pleasing way to present information – and trying to make every action a little easier.

Today technology evolves by the minute, but some truths don’t change. In fact, here are five lessons I’ve learned from UX over the years:

  1. Everyone is different. Not everyone is going to use an app or website the same way. While there are certain trends that humans as a whole tend to gravitate toward, there are no absolute certainties. I may expect a button to do one thing while someone else may expect it to do something entirely different. But you should maintain consistency within your site and take cues from top industry leaders.
  2. Listen to feedback. Again, users expect something to happen when they perform an action. Listen to their feedback, frustrations and sources of confusion. And if there is a lag time between when they click/tap/press and what happens next, they may assume something is wrong and become frustrated, too.
  3. Make it easy. I do a lot of software development, and developers hate repetitive tasks. Instead of spending hours doing one job, we’ll create code that does it for us. The reasons are pretty universal – people don’t like doing more work than necessary. They want the easy path to get to their destination. So if you can save a user two clicks to perform a frequent action, that creates a simpler user experience. And if you can remove the need for separate page loads, that user is going to be even happier. Case in point? One of my favorite examples is Amazon’s one-click ordering. They’ve made it super easy to shop and save the user a ton of time.
  4. Performance is key. Make it fast, and make it accurate. I love writing code that not only does what it is supposed to do, but does it quickly. These days, users expect everything to be as instant as a Google search. While it may not always be possible to emulate that kind of speed, do everything you can to make your app or website perform as fast as it can.Remember, your app or website is always going to be compared to industry leaders. If you users are waiting longer than expected, they are going to have a negative experience and may view your brand differently simply because of slow page loads. So if all else fails and you cannot speed up your page or app any further, mimic fast speeds by presenting the user with images or content that make it look like the page/app is doing something.
  5. Test, test, test. Just because that one feature worked in that one browser, on that one machine, it doesn’t mean it will work for all your users. Know your users and what devices and browsers/OSs they are using, and test on those devices in real world scenarios. Building a mobile app that depends on data? Make sure you know what happens when the user does not have access to a data network. Building an app that or site that relies on location? Give the user a way to set their location if it isn’t available. If you built an awesome desktop website, what happens if half of the users are mobile users? All of these different scenarios and contexts need to be considered when, not only designing, but testing and implementing your UX. It is a multi-device world today, and we need to be building the best products we can for each one.

Now … What Are YOUR Biggest Lessons?
While there are more things to consider when building the best user experience, these are the biggest insights I’ve found in the context of my work. What are yours? If you have any other great lessons you have learned through UX, leave a comment below. We’d love to hear from you.

]]>
https://blogs.perficient.com/2015/06/18/5-lessons-ive-learned-from-user-experience/feed/ 0 248242
Context Matters: How to Engage Your Customers with Mobile https://blogs.perficient.com/2015/06/17/context-matters-how-to-engage-your-customers-with-mobile/ https://blogs.perficient.com/2015/06/17/context-matters-how-to-engage-your-customers-with-mobile/#respond Wed, 17 Jun 2015 21:35:03 +0000 https://blogs.perficient.com/?p=248244

It’s safe to say that the customer is the lifeblood of any business. Without customers buying your products or using your services, your business would cease to exist. That’s why it’s so important to engage with your customers and provide them with personal journeys tailored to their personas. And the best way to start? Use the platform preferred most by your customers.

Treat Mobile as the New Norm
From mobile apps to mobile web, we’re all using our mobile devices for everything – every day. It’s become like a Pavlovian response: if we need information of any kind, we pull out our phones and look to either a favorite app or the web to figure it out.

Start with 4 Key Questions
To engage your customers on their mobile devices, you need to be cognizant of their context. Ask yourself:

  1. What are your customers doing at that moment?
  2. Why are they doing it?
  3. Where are they?
  4. What information would be helpful?

If you know the answer to these questions, you can provide them with a mobile moment that’s delightful. And if you provide them with delightful moments designed for their context, they’ll be hooked. Your app or mobile site will be where those users turn the next time they need information. Plus, it will raise the opinion of your company to those customers. They’ll begin to wonder what else your company can do for them.

Take Advantage of More Tools & Features
Again, the key to providing these moments is understanding the context of your users. This can be done through journey mapping and using analytics to know where customers are on their personal journeys and tailor content to them accordingly.

You can also use the full power of mobile to incorporate elements like GPS and low-energy Bluetooth beacons for location services, accelerometer and gyroscope for knowing what your user is doing (e.g., biking, walking, driving, sleeping), and even Near Field Communication (NFC) for completing mobile payments. The possibilities are endless for providing your customer with a great mobile experience with these types of features.

Remember, context is key for engaging your customers on mobile and providing them with relevant information. This will provide unforgettable mobile moments that will boost your company’s image and promote repeat customers. There is so much power with mobile. Let’s use it!

]]>
https://blogs.perficient.com/2015/06/17/context-matters-how-to-engage-your-customers-with-mobile/feed/ 0 248244
How To: Call Batch Apex from Batch Apex https://blogs.perficient.com/2015/01/13/how-to-call-batch-apex-from-batch-apex/ https://blogs.perficient.com/2015/01/13/how-to-call-batch-apex-from-batch-apex/#respond Tue, 13 Jan 2015 16:35:31 +0000 https://blogs.perficient.com/?p=246982

Batch Apex is a powerful tool that can be used to do all sorts of cool stuff on the Salesforce platform. Batch Apex is typically used to perform larger operations that would normally be restricted by governor limits. It allows you to break that larger operation up into smaller bite-size chunks that are easier to deal with.

Since batch jobs are meant to deal with one query and processing records from that query, there may be times when you want to spin off another batch job when one is complete to finish your processing. An example of when you might want to do this would be if you needed to perform a batch job to delete thousands of records but once those records were deleted, you need to create thousands of records based off of another query or object.

Starting a batch job from a batch job is fairly straightforward. The key is placement of the code that actually starts the new batch. The code that starts the new batch needs to be placed in the finish method of the initial batch.

global void finish(Database.BatchableContext BC){ //Add your start code for the other batch job here Database.executeBatch(new YourOtherBatchClass()); }

That’s pretty much it. Calling executeBatch from the finish method of one batch job will kick off the new batch job. There are a lot of fun things you can do with this. One thing I have done has been to create a recursive batch job that calls itself. If you are ever in a situation where you need to call a batch from a batch, I hope this helps!

]]>
https://blogs.perficient.com/2015/01/13/how-to-call-batch-apex-from-batch-apex/feed/ 0 246982
How To: Call an Apex Controller Method From Lightning Component https://blogs.perficient.com/2015/01/13/how-to-call-an-apex-controller-method-from-lightning-component/ https://blogs.perficient.com/2015/01/13/how-to-call-an-apex-controller-method-from-lightning-component/#respond Tue, 13 Jan 2015 16:23:03 +0000 https://blogs.perficient.com/?p=246978

Lightning seems to be all the rage these days! How could it not? It is exciting stuff and changes the way that Salesforce developers need to think when coming up with their solutions on the platform. One of the most common things you will need to do with Lightning will be to call methods on an Apex controller for any server side logic you need to perform.

If this is something you are trying to figure out then you have come to the right place. If you are familiar with using Javascript Remoting in Visualforce, then calling Apex methods from a Lightning component will look very very similar.

The following assumes you have your namespace setup and you are able to create a Lightning app that you can hit from the preview in the developer console. Once you have a Lightning app created, you can create a component to add to the app. This component will be what makes the callout to the controller.

<aura:component controller="yournamespace.YourController"> <aura:attribute name="yourAuraVariable" type="String"/> ... </aura:component>

Here you can see that we have a controller called YourController. This controller will have the method that we use to populate the aura attribute yourAuraVariable. The controller code will look something like this.

public class YourController { @AuraEnabled public static String getMyAuraVariableFromTheController() { return 'Here is the text from my controller'; } }

Now that we have our controller code built, it is just a matter of calling this code from a little bit of Javascript in the Lightning component.

({ getMyAuraVariable : function(component) { //this will be the method name on the controller contained within the // controller property on our aura component var a = component.get("c.getMyAuraVariableFromTheController"); var self = this; //build the callback since all controller calls are batched and sent //asynchronously a.setCallback(this, function(action){ //action.getState() will let you know if it was successful or not. //a good idea would be to check this to make sure everything //worked as expected. console.log(action.getState()); //set the return value from the controller to the variable on our component component.set("v.yourAuraVaraible", action.getReturnValue()); //do more stuff }); //fire off the action .enqueueAction(a); }, ... })

This bit of code is contained within the helper of our component. You simply call this function from anywhere, either on init or another action on the page and it will populate our aura variable with the results that are returned from the controller. In this case ‘Here is the text from my controller’. Obviously in most cases you will want to return more complex data than just a string but this is just to get you off the ground and running with how calling controller methods work. Good luck and let me know if you have any questions!!

]]>
https://blogs.perficient.com/2015/01/13/how-to-call-an-apex-controller-method-from-lightning-component/feed/ 0 246978