Hi, I’m Godwin Mbah
As a Certified Salesforce Consultant, Senior Administrator, and Developer, I possess over 6 years of comprehensive experience in full-stack Salesforce configuration, integration, and implementation of Salesforce cloud technologies. With a proven track record of success in enterprise-level environments, I am committed to delivering high-quality Salesforce solutions that drive digital transformation and enhance business performance.
Salesforce Services
Consultation & Implementation
Carry out Business Analysis to understand the current state of your Salesforce deployment and [......] CLICK TO KNOW MORE
Salesforce Development
Everything regarding your project from development, testing and delivery I will handle, while [......] CLICK TO KNOW MORE
Salesforce Integration
Connecting your Salesforce instance with external systems you use with secure APIs and also [......] CLICK TO KNOW MORE
Salesforce Administraton
Management and configuration of your Salesforce instance, build complex reports and dashb [......] CLICK TO KNOW MORE
Support & System Maintenance
Ensure optimal Salesforce performance and longevity with expert support and system maintenance.
Salesforce Training
Do you want training for your Salesforce users? Or if you want to become a Salesforce Developer or Administrator, I will be your instructor.
Salesforce Solutions
Sales Cloud
Sales Cloud
Service Cloud
Service Cloud
Experience Cloud
Experience Cloud
Project Journey Lifecycle
The Project Journey Lifecycle section outlines the various stages of my implementation process. From Discovery to Support & Maintenance, each stage is critical in ensuring project success. By following this lifecycle, I help clients achieve their business goals and objectives by providing a comprehensive, customized solution that meets their specific needs.
BUSINESS DISCOVERY
First, I get to know your business needs and goals.
Then, I analyze and identify opportunities for improvement.
- Define your business objectives and goals for the project.
- Conduct a thorough analysis of your current processes and systems.
- Identify pain points and areas for improvement in your current workflows.
- Determine opportunities for optimization and increased efficiency.
DESIGN & PLANNING
In the Design & Planning stage, I create a comprehensive plan to guide the implementation process and ensure project success.
- Develop a customized implementation strategy tailored to your business needs.
- Create a project plan with timelines, milestones and all key deliverables.
- Define roles and responsibilities for each team member.
- Provide detailed documentation and specifications for the implementation.
PROJECT DEVELOPMENT
In the Development stage, I execute the implementation plan and build the solution based on the project specifications and requirements.
- Implement the solution based on the project specifications.
- Develop and configure customizations and integrations.
- Perform unit and integration testing to ensure quality.
- Collaborate with your team to ensure a smooth rollout.
UNIT & USER ACCEPTANCE TESTING (UAT)
In the Testing (Unit & UAT) stage, I perform thorough testing to ensure that the solution is functioning as expected and meets your business needs.
- Conduct comprehensive unit testing to ensure quality.
- Develop test plans and scenarios for User Acceptance Testing (UAT).
- Collaborate with your team to execute UAT.
- Identify and resolve any issues or bugs.
DEPLOY & LAUNCH
In the Deploy & Launch stage, I implement the solution and ensure a smooth rollout, providing support and training as needed to ensure user adoption.
- Deploy the solution to your production environment.
- Conduct end-to-end testing to ensure seamless integration.
- Provide training and support to ensure user adoption.
- Ensure a smooth transition to the new solution.
CONTINOUS SUPPORT & MAINTENANCE
In the Support & Maintenance stage, I provide ongoing support to ensure the solution remains functional and up-to-date with the latest upgrades and enhancements.
- Provide timely support and issue resolution.
- Monitor and maintain the solution to ensure optimal performance.
- Perform regular updates and upgrades to keep the solution current.
- Continuously evaluate and improve the solution based on feedback.
Schedule An Appointment Today
Free One-To-One Call
View Recent Projects
Salesforce CRM Full Implementation Project
- Project Salesforce CRM Implementation
- Client Marcus Hurley
- Country United States
- Date 3 November 2022
This was a project from my client Marcus where he wanted to implement Salesforce CRM for his organization migrating from a legacy CRM. He was very concerned about the security of his organization’s data moving to Salesforce and I was acting as the consultant to give them the benefits, implementation procedure, gaps, how to overcome them, strategies for full adoption of Salesforce, and most importantly Security of his Organization. I broke down the implementation process into 8 phases and the project was completed successfully.
1) What they wanted to achieve using Salesforce
2) The available budget for full implementation
3) Other experts needed to manage the org
4) Plan to create awareness in the org
5) Migration process of data into Salesforce
6) Gradual Rollout procedure of features
7) Employee Training and Adoption
8) Maintainance and Support procedure
Find the link to the Figma representation I used for the presentation with my client.
Figma representation link: https://www.figma.com/file/YW6PSCgP6YOXT7Go2rROQb/SALESFORCE-IMPLEMENTATION?node-id=0%3A1&t=uxUmrdhDTOlUp9Cc-1
Asynchronous Apex (Batch) Project
- Project Asynchronous Apex (Batch) Project
- Client Joshua Grills
- Country Australia
- Date 23 October 2022
The Business scenario here was to create a business logic to automate the transfer and update of more than 2k account records of an employee leaving the organization to a new employee joining the organization and notifying the new employee via email about the new records updated to him.
I used Batch Apex which is an Asynchronous Apex type to solve this requirement by implementing Database.Batchable class and Database.Stateful class to count the total number of records processed.
Data Migration From Dynamics 365 To Salesforce Project
- Project Data Migration From Dynamics 365 To Salesforce
- Client Sean Richardson
- Country Australia
- Date 19 October 2022
This was a project from one of my clients named Sean from Australia and the requirement was to migrate their existing data containing about 300k records from Microsoft Dynamics 365 CRM to Salesforce CRM. I was also required to create a data model in Salesforce to match their existing business use case in Dynamics 365. I provided a guided approach on how to go about this migration step-by-step and the project was a great success.
Multiple Account In One Save With Visualforce Project
- Project Visualforce Create Multiple Account At Once Project
- Client Melisa Myles
- Country United Kingdom
- Date 13 September 2022
This requirement from Melisa my client was to create a Visualforce page that will allow users to be able to create multiple accounts and insert them into their salesforce database in one save. I will be walking you through all the steps and codes that I used to make this project a reality.
Restaurant Loyalty Salesforce Management App
- Project Restaurant Loyalty Management Salesforce App
- Client Grayson Leo
- Country Canada
- Date 10th October 2022
This was a requirement from Grayson manager of a major restaurant in Canada that required me to create a Restaurant Loyalty Management App to help them track all customers and provide loyalty to the most spending customers and reward them with incentives to make them come back and spend more.
I was able to use declarative and programmatic tools provided by Salesforce and integrating their Salesforce instance with the existing POS system they used to track and manage the entire restaurant which was another successful project I delivered.
Integration project with Quickbooks
- Project Integration project with Quickbooks
- Client Stella Moore
- Country United States
- Date 5 August 2022
Client Reviews
Let's Connect Today
Godwin Mbah
Salesforce Consultant | Developer | AdminI am open to accepting contract and freelance work, including both small, short-term projects and larger, long-term engagements.
Phone: +971547684659 Email: mbahgodwin24@gmail.comMy Blog
Demystify REST Web Services: The Ultimate Cheat Sheet
REST Integrations In Salesforce
Are you looking to integrate Salesforce with other systems or applications? REST (Representational State Transfer) Web Services can help you do just that. REST is a widely used architectural style that enables communication between different systems over HTTP. It’s a popular choice for building integrations because of its simplicity and flexibility.
In this post, I will cover everything you need to know about REST Web Services, including how they work, the benefits of using them, and some best practices to keep in mind. And to help you get started with implementing REST integrations in Salesforce, I have also included cheat sheet tables with sample code snippets and examples.
What Are REST Web Services?
REST Web Services are a set of rules and protocols for building web-based APIs (Application Programming Interfaces). The main idea behind REST is to use the HTTP protocol to make requests and receive responses between systems. The HTTP protocol is widely used and understood, which makes REST an accessible and versatile option for integrations.
REST APIs have a few key characteristics:
- Resource-based: REST APIs are centered around resources, which are identified by unique URIs (Uniform Resource Identifiers). Resources can be anything from a record in a database to a file on a server.
- Stateless: REST APIs are stateless, meaning that each request contains all the information necessary for the server to process it. The server doesn’t need to remember anything from previous requests.
- Operations-based: REST APIs use standard HTTP operations (GET, POST, PUT, DELETE, etc.) to perform actions on resources.
Why Use REST Web Services?
There are several benefits to using REST Web Services for integrations:
- Simplicity: REST is a relatively simple and lightweight protocol compared to other options like SOAP (Simple Object Access Protocol).
- Flexibility: Because REST APIs use standard HTTP operations, they can be used with a wide range of systems and programming languages.
- Scalability: REST APIs can be designed to scale horizontally by adding more servers to handle increased traffic.
- Ease of testing: Because REST APIs are stateless, it’s easy to test individual requests and responses without worrying about the state of the system as a whole.
Best Practices for Using REST Web Services
Here are some best practices to keep in mind when designing and implementing REST Web Services:
- Use HTTP status codes: Use standard HTTP status codes (e.g. 200 for success, 404 for not found, etc.) to indicate the outcome of requests.
- Follow RESTful principles: Follow the principles of REST, such as resource-based identification and standard HTTP operations, to make your APIs more consistent and predictable.
- Document your APIs: Provide clear and comprehensive documentation for your APIs, including how to authenticate and examples of requests and responses.
- Consider security: Use HTTPS (HTTP Secure) to encrypt traffic between systems, and implement authentication and authorization mechanisms to ensure that only authorized users can access your APIs.
Cheat Sheet: REST Web Services in Salesforce
To help you get started with implementing REST Web Services in Salesforce, we’ve put together a cheat sheet with sample code snippets and examples. Use this cheat sheet as a quick reference guide for creating, testing, and managing REST integrations in Salesforce.
Table 1: REST Resources, APIs, Authentication, Endpoints and More
Use this cheat sheet to understand how to define REST resources and endpoints in Salesforce. Be sure to replace the placeholders with the appropriate values for your integration.
Table 2: REST Request, Response Methods, Status Codes and More
Use this cheat sheet to understand how to format REST requests, understand all the methods used, sending request, getting responses and more.
Conclusion
RESTful APIs have become a standard way to build web services. They provide a flexible and scalable architecture that allows developers to create a wide range of applications. By using this cheat sheet, you can quickly learn the basics of RESTful APIs, HTTP methods, HTTP status codes, and how to format REST requests. With this knowledge, you can start building your own RESTful APIs and consuming third-party APIs.
Remember to always use best practices when building RESTful APIs, such as keeping URLs simple and intuitive, using HTTP methods appropriately, and returning appropriate HTTP status codes.
I hope you found this cheat sheet and guide to RESTful APIs helpful. If you have any questions or feedback, please feel free to leave a comment below.
Want To Discuss Your Integration Project With Me?
Salesforce Object Cheat Sheet for Boosting Sales Success
Overview
Are you looking to boost your sales success? As a certified Salesforce Consultant, I’ve seen firsthand the importance of understanding key objects in the sales process. That’s why I’m excited to share with you this easy-to-use object cheat sheet. Whether you’re new to Salesforce or just need a quick refresher, this cheat sheet will help you better understand the relationships between important objects and ultimately improve your sales process. So without further ado, let’s dive in!
Salesforce Sales Objects Cheat Sheet
Conclusion
By using this cheat sheet, you can streamline your sales process and improve your overall efficiency. As a certified Salesforce Consultant, I highly recommend taking the time to understand these key objects and their relationships. With this knowledge, you’ll be better equipped to make data-driven decisions and ultimately drive more sales. If you have any questions or would like more information about Salesforce, feel free to reach out to me. Good luck and happy selling!
Want A Free Consultation?
15 Must-Know Salesforce Consultant Scenario-Based Interview Questions and Expert Answers In 2023
Overview
Preparing for a Salesforce Consultant interview? Look no further! In this article, I have compiled 15 scenario-based interview questions and expert answers to help you ace your interview and land your dream job. From technical skills to critical thinking, I have covered everything you need to know to impress your interviewer and demonstrate your expertise as a Salesforce Consultant. So let’s dive in and get started!
Q 1. Can you tell me about your experience working with Salesforce, and how it has prepared you for this role?
I have been working with Salesforce for over five years now, and during that time I have gained experience in a variety of areas, including development, customization, and administration. I have worked on projects ranging from small business solutions to large-scale enterprise implementations, and I have experience working with a wide range of Salesforce products, including Sales Cloud, Service Cloud, and Marketing Cloud. My experience has prepared me well for this role, as I have a deep understanding of how Salesforce can be used to solve business problems and drive growth.
Q 2. How do you stay current with the latest developments in the Salesforce ecosystem, and what resources do you rely on?
I stay current with the latest developments in the Salesforce ecosystem by regularly attending conferences, webinars, and local user groups. I also read blogs and follow thought leaders in the Salesforce community to stay up to date on the latest trends and best practices. In addition, I am an active member of the Trailblazer Community, where I participate in discussions, ask and answer questions, and share my knowledge and experience with others.
Q 3. How do you handle challenges and problems when working with Salesforce, and can you give me an example of a difficult situation you encountered and how you resolved it?
When I encounter challenges and problems when working with Salesforce, I like to approach them in a methodical and analytical manner. I start by gathering as much information as possible about the issue, and then I work with stakeholders and team members to identify potential solutions. One example of a difficult situation I encountered was when I was working on a large-scale Salesforce implementation for a financial services client. We encountered some unexpected technical issues that were impacting the project timeline, but by working closely with the development team and leveraging resources available, we were able to resolve the issue and deliver the project on time.
Q 4. How do you prioritize tasks and manage your time effectively when working on multiple projects at once?
When working on multiple projects at once, I prioritize tasks based on their urgency and importance, and I communicate regularly with stakeholders to ensure that their needs are being met. I also make use of tools such as project management software and calendars to help me stay organized and manage my time effectively. I believe that effective time management is essential for success in any role, and I am committed to staying organized and focused in order to deliver high-quality work.
Q 5. How do you communicate with stakeholders and clients when working on a Salesforce project, and how do you ensure that their needs are being met?
When working on a Salesforce project, I believe that clear and frequent communication is essential for success. I make sure to establish regular check-ins with stakeholders and clients to ensure that their needs are being met and to identify any issues or concerns as early as possible. I also make sure to listen carefully to their feedback and suggestions, and I work to incorporate their input into the project plan as appropriate. Overall, I believe that effective communication and collaboration are key to delivering successful Salesforce projects.
Q 6. How do you approach the design and development of Salesforce solutions, and can you walk me through your process?
When designing and developing Salesforce solutions, I like to start by gaining a deep understanding of the client’s business processes and requirements. From there, I work with stakeholders to identify potential solutions and design a solution that meets their needs. I then develop the solution using best practices and efficient coding techniques, and I test it thoroughly to ensure that it meets the client’s requirements. Throughout the process, I make sure to communicate regularly with stakeholders to keep them informed and gather their feedback.
Q 7. How do you prioritize customization and configuration when working with Salesforce, and can you give me an example of a project where you had to make this decision?
When working with Salesforce, I prioritize configuration over customization whenever possible, as it is generally faster, cheaper, and easier to maintain. However, there are certain cases where customization is necessary to meet the client’s requirements. For example, on a recent project, the client needed a specific functionality that was not available through standard configuration. After weighing the pros and cons, we decided to implement a custom solution that met their needs.
Q 8. How do you ensure that Salesforce data is accurate and up to date, and can you describe a time when you had to troubleshoot data quality issues?
To ensure that Salesforce data is accurate and up to date, I make sure to establish clear data governance policies and procedures, and I work with stakeholders to ensure that they are followed. This includes establishing data entry standards, conducting regular data quality checks, and implementing automated data validation rules. One example of a time when I had to troubleshoot data quality issues was when we discovered that a large number of duplicate records had been created in the system. To resolve this, I worked with the client to establish a data deduplication process and implemented a tool to help identify and merge duplicate records.
Q 9. How do you ensure that Salesforce security is properly configured and maintained, and can you describe a time when you had to address a security issue?
To ensure that Salesforce security is properly configured and maintained, I make sure to follow best practices and regularly review and update security settings. This includes establishing clear security roles and permissions, implementing two-factor authentication where appropriate, and regularly reviewing user access. One time when I had to address a security issue was when we discovered that a user had inadvertently been granted access to sensitive data that they should not have had access to. To address this, I worked with the client to update their security settings and conducted a thorough review of user access to ensure that similar issues were not present.
Q 10. How do you stay organized and prioritize your work when working remotely or in a virtual environment, and can you describe a time when you had to overcome challenges related to remote work?
When working remotely or in a virtual environment, I make sure to establish clear communication channels with my team members and stakeholders and use tools such as project management software and calendars to stay organized and prioritize my work. I also make sure to maintain a structured schedule and establish clear boundaries between work and personal time. One time when I had to overcome challenges related to remote work was during a project where we were working with a team in a different time zone. To address this, we established clear communication protocols and adjusted our schedules to ensure that we could work effectively together.
Q 11. How do you stay current with Salesforce updates and new features, and can you give an example of how you have implemented a new feature in a project?
To stay current with Salesforce updates and new features, I regularly read Salesforce documentation, participate in webinars and training sessions, and attend industry events. I also make sure to follow blogs and online forums to stay up to date on best practices and new trends. One example of how I have implemented a new feature in a project was when Salesforce introduced Einstein Analytics. I worked with the client to identify their reporting needs and created a custom dashboard using the new feature, which allowed them to quickly visualize their data in real-time.
Q 12. How do you approach change management when implementing Salesforce solutions, and can you describe a time when you had to manage a complex change management process?
When implementing Salesforce solutions, I approach change management by establishing clear communication channels and involving stakeholders throughout the process. This includes conducting regular status updates, addressing concerns and feedback in a timely manner, and providing training and support to ensure a smooth transition. One time when I had to manage a complex change management process was during a project where we were implementing a major new Salesforce functionality. To manage this, I worked with stakeholders to establish a comprehensive change management plan and created custom training materials to help users understand and adapt to the new functionality.
Q 13. How do you approach data migration when transitioning to Salesforce, and can you describe a time when you had to migrate a large amount of data?
When approaching data migration to Salesforce, I prioritize data cleanliness and accuracy to ensure a smooth transition. This includes conducting a thorough data analysis and cleansing process before migrating the data, and using data migration tools and processes that are tailored to the client’s specific needs. One time when I had to migrate a large amount of data was during a project where we were transitioning a legacy CRM system to Salesforce. To manage this, I worked with the client to develop a comprehensive data migration plan and used specialized tools and processes to ensure a successful migration.
Q 14. How do you approach integration between Salesforce and other systems, and can you describe a time when you had to integrate Salesforce with a complex system?
When approaching integration between Salesforce and other systems, I prioritize compatibility and data consistency to ensure a seamless integration. This includes identifying key data points and ensuring that they are synced between systems, as well as creating custom workflows and automation to manage data flow. One time when I had to integrate Salesforce with a complex system was during a project where we were integrating Salesforce with a legacy ERP system. To manage this, I worked with the client’s IT team to establish a clear integration plan and used custom APIs and workflows to ensure a smooth integration.
Q 15. How do you approach performance tuning and optimization when working with Salesforce, and can you describe a time when you had to troubleshoot performance issues?
When approaching performance tuning and optimization in Salesforce, I prioritize identifying and addressing potential bottlenecks in the system. This includes reviewing code for efficiency and using Salesforce tools to monitor system performance and identify potential issues. One time when I had to troubleshoot performance issues was during a project where we were experiencing slow load times in a custom application. To address this, I reviewed the code for potential performance issues and optimized the code where necessary. I also used Salesforce tools to identify potential system bottlenecks and made adjustments to improve overall system performance.
Conclusion
In conclusion, these 15 Salesforce Consultant scenario-based interview questions and expert answers are just what you need to boost your confidence and stand out during your interview. Remember to prepare thoroughly, showcase your technical skills, and demonstrate your ability to think critically and problem-solve on the spot. With these tips and strategies in mind, you’ll be well on your way to landing your dream job as a Salesforce Consultant. Good luck!
About The Author
Schedule An Appointment Today
Free One-To-One Call
What Does A Salesforce Consultant Do?
Overview
As a Salesforce Consultant with 6 years of experience, I have worked with businesses of all sizes and in various industries. I know that every business is unique and has its own set of challenges. That’s why Salesforce Consultants are so valuable. We help businesses solve their unique challenges by using the Salesforce platform to streamline processes, improve efficiency, and increase revenue.
Whether you’re a small business just starting out, or a large enterprise with complex requirements, a Salesforce Consultant can help you get the most out of the platform. In this blog post, I will explain what a Salesforce Consultant does, the difference between a Functional Salesforce Consultant and a Technical Salesforce Consultant and provide a real-life business use case of how a Salesforce Consultant can help you maximize your Salesforce investment. If you’re looking to hire a Salesforce Consultant or want to learn how to become a Salesforce consultant this blog post is for you.
Understanding the Role of a Salesforce Consultant
Salesforce Consultants are experts in the Salesforce platform and its capabilities. They work with businesses to understand their unique needs and requirements, and develop customized solutions that address those needs. Salesforce Consultants help businesses with a range of tasks, including:
- Designing and implementing Salesforce solutions
- Configuring the platform to meet specific business requirements
- Developing custom applications and integrations
- Migrating data to Salesforce
- Providing training and support to users
Functional vs. Technical Salesforce Consultant
Functional Salesforce Consultant
 A Functional Salesforce Consultant is responsible for understanding the business requirements of the client and translating them into technical solutions using the Salesforce platform. They focus on the functional aspects of Salesforce and are responsible for configuring the platform to meet specific business needs.
They work closely with business stakeholders to identify their requirements and develop solutions to meet those needs. A Functional Salesforce Consultant typically has a strong background in business analysis, project management, and system design.
Technical Salesforce Consultant
A Technical Salesforce Consultant is responsible for developing technical solutions that meet the specific requirements of the client. They focus on the technical aspects of Salesforce, such as custom development, integrations, and data migration.
They work closely with developers to ensure that solutions are implemented effectively. A Technical Salesforce Consultant typically has a strong background in software engineering, programming languages, and web technologies.
In summary, the main difference between the two roles is that a Functional Salesforce Consultant focuses on the functional aspects of Salesforce, while a Technical Salesforce Consultant focuses on the technical aspects. It’s important to note that both roles are critical for the successful implementation of a Salesforce solution.
A Functional Salesforce Consultant may work on the design and configuration of a solution, while a Technical Salesforce Consultant may be responsible for developing custom code to meet specific requirements. Both roles require a deep understanding of the Salesforce platform and its capabilities.
Real-Life Business Use Case
A real-life example of how a Salesforce Consultant can help a business is in the case of a healthcare company which I was contracted to work for. The healthcare company had a number of disparate systems that they were using to manage their patient information, including spreadsheets, paper forms, and an outdated database. The company was experiencing a number of challenges, including:
- Difficulty accessing patient information in a timely manner.
- Inefficient processes that were leading to errors and delays.
- Inability to track patient information across the organization.
The healthcare company engaged with me to help them address these challenges. I worked closely with the company to design and implement a Salesforce solution that met their specific needs. The solution included:
- Consolidating patient information into a single system in Salesforce.
- Developing custom applications in Salesforce to manage patient appointments and referrals.
- Implementing Flows, Apex triggers to automate processes and reduce errors.
- Providing training to users on how to use the Salesforce platform effectively.
As a result of working with me, the healthcare company was able to:
- Access patient information quickly and easily increasing productivity by 50%.
- Streamline their processes and reduce errors improving patient data management by 30%.
- Improve communication and collaboration across the organization.
Career Path of a Salesforce Consultant
The career path of a Salesforce Consultant can vary depending on their interests and skill set. Some may specialize in a particular area of Salesforce, such as Sales Cloud, Service Cloud, Experience Cloud or other clouds while others may focus on a specific industry. Here are some common career paths for Salesforce Consultants:
-
Salesforce Administrator – An entry-level role that focuses on the day-to-day administration of Salesforce. This role may involve tasks such as managing user accounts, creating reports and dashboards, and maintaining data quality.
-
Salesforce Consultant – A more senior role that involves working closely with business stakeholders to identify their requirements and develop solutions. Salesforce Consultants may specialize in either functional or technical aspects of the platform.
-
Salesforce Architect – A high-level role that involves designing and implementing complex Salesforce solutions. Salesforce Architects have a deep understanding of the platform and are responsible for ensuring that solutions are scalable and sustainable.
Contact Me for Salesforce Consulting Services
As a Salesforce Consultant with 6 years of experience, I have worked with businesses of all sizes and in various industries. If you are looking to hire a Salesforce Consultant, I would love to help. Contact me to learn more about my services and how I can help your business achieve its goals.
Want To Discuss Your Project With Me?
What Does Marketing Cloud Do?
What Does Marketing Cloud Do?
Discover the Power of Salesforce Marketing Cloud
The world of marketing is constantly evolving and the key to success is staying ahead of the curve. In this blog post, we’ll take a closer look at how this innovative company “Smart Cloud Tech” utilized the key components of Salesforce Marketing Cloud to transform it’s marketing efforts and achieve massive success.
From the basics to advanced techniques, you’ll learn how to harness the full potential of Salesforce Marketing Cloud and create impactful customer experiences that drive results. Join me on this journey as I explore the world of Marketing Cloud and show you how to take your marketing strategy to the next level.
To know what Marketing cloud does, I will begin by stating the key components of Marketing Cloud so you can understand better when I start telling you how Smart Cloud Tech achieved massive success with Marketing Cloud.
- Email Studio: A powerful email marketing tool to create, send, and track personalized and automated email campaigns.
- Mobile Studio: A mobile marketing platform to create and manage SMS and push notification campaigns.
- Social Studio: A social media management tool to plan, publish, and measure social media campaigns across multiple channels.
- Advertising Studio: A cross-channel advertising platform to plan, execute, and optimize digital ad campaigns.
- Interaction Studio: A real-time, cross-channel engagement platform to personalize customer interactions in real-time.
- Journey Builder: A visual drag-and-drop tool to create and manage customer journeys across multiple channels.
- Data Management Platform (DMP): A platform to collect, manage, and activate customer data for more personalized experiences.
- Content Builder: A cloud-based content management system to create and manage digital content.
What Does Marketing Cloud Do?
To know what Marketing cloud does, I will tell you how Smart Cloud Tech used Marketing cloud to revolutionize their business. They were facing a common challenge: how to effectively reach and engage customers in a constantly evolving marketing landscape. They had tried various solutions, but nothing seemed to deliver the results they were looking for. That was until they discovered Salesforce Marketing Cloud.
With Marketing Cloud, Smart Cloud Tech was able to utilize all the key components of the platform, including the Email Studio, Mobile Studio, Social Studio, Journey Builder, and Data Management, to transform its marketing strategy. They used the platform’s advanced segmentation capabilities to send targeted and personalized messages to specific groups of customers based on their interests and behaviors.
The Power of Personalization
By leveraging the Email Studio, Mobile Studio, and Social Studio, Smart Cloud Tech was able to create a multi-channel approach to its marketing efforts. The platform’s advanced personalization capabilities allowed them to send relevant messages to each customer, resulting in a higher open and click-through rate for their campaigns.
Journey Builder
The Key to Customer Engagement: Smart Cloud Tech also utilized Journey Builder to create personalized customer journeys. The platform’s drag-and-drop interface made it easy to design and execute complex campaigns, resulting in a more engaged customer base. Journey Builder allowed Smart Cloud Tech to track and analyze customer behavior, allowing them to make real-time adjustments to their marketing strategy.
Data Management
The Foundation of Success: Smart Cloud Tech knew that having a solid foundation of data was key to their marketing success. With Salesforce Marketing Cloud’s Data Management component, they were able to cleanse, standardize, and enrich their customer data, resulting in a more complete picture of their customers. This allowed them to make data-driven decisions and deliver even more relevant and personalized messages.
Real-Time Campaign Tracking
With Salesforce Marketing Cloud’s robust reporting capabilities, Smart Cloud Tech was able to track the performance of their campaigns in real-time. This allowed them to quickly pivot their strategy if a campaign wasn’t performing as expected and double down on what was working. The platform’s reporting also provided a clear picture of the impact their marketing was having on the business, allowing them to make informed decisions.
The Bottom Line
By implementing Marketing Cloud, Smart Cloud Tech was able to transform its marketing strategy and see a significant impact on its business. The platform’s advanced personalization capabilities, real-time campaign tracking, and data management capabilities all contributed to the success they saw. It’s clear that Salesforce Marketing Cloud is a powerful tool for any company looking to elevate their marketing game.
Conclusion
Salesforce Marketing Cloud is the number one solution companies have been looking for to transform their marketing strategy. With its advanced personalization capabilities, real-time campaign tracking, and data management capabilities, the platform has the power to drive significant business impact.
Smart Cloud Tech was able to streamline its marketing efforts and achieve impressive results. From personalized email campaigns to cross-channel messaging, they were able to engage with their customers in a whole new way. Don’t miss out on the opportunity to take your marketing strategy to the next level with Salesforce Marketing Cloud.
If you’re looking to implement Marketing Cloud in your own business, the time to act is now. With the right strategy and execution, you too can achieve amazing results and take your marketing efforts to the next level. As a Salesforce Consultant, I have extensive experience helping businesses like yours leverage the power of Salesforce Marketing Cloud. If you’re interested in learning more or want to get started, feel free to reach out to me here. I’m here to help you achieve your marketing goals and drive success for your business.
Don’t miss out on the opportunity to transform your marketing efforts with Marketing Cloud. Take the first step today and reach out to me for a consultation. Let’s work together to make your marketing vision a reality!
Loyalty Management In Salesforce?
Get to Know what Is Loyalty Management In Salesforce.
In today’s competitive business landscape, customer loyalty is more important than ever. It’s not enough to simply acquire new customers; you need to keep them coming back for more. That’s where Salesforce loyalty management comes in. By utilizing the power of Salesforce, you can create a loyalty program that not only boosts customer retention but also drives business growth.
In this blog post, we’ll explore how Salesforce loyalty management can help you build a stronger bond with your customers and take your business to the next level. Whether you’re a small business owner or a large corporation, Salesforce loyalty management can help you stay ahead of the competition and achieve your business goals.
5 Core Components Of Salesforce Loyalty Management.
- Loyalty Program: This is the backbone of the loyalty management system. It defines the rules and rewards for the loyalty program and can be customized according to the business’s needs.
- Points Management: This component allows businesses to assign points to customers based on different actions, such as purchases, referrals, or engagement with the brand. Points can be redeemed for rewards or used to move up in tier levels of the loyalty program.
- Tier Management: This component allows businesses to create different levels or tiers within the loyalty program, with increasing rewards and perks for customers who reach higher levels.
- Reward Management: This component allows businesses to create and manage rewards for customers, such as discounts, special offers, or exclusive access to products or events.
- Analytics and Reporting: This component provides businesses with valuable data and insights about their loyalty program, such as customer engagement, redemption rates, and ROI.
5 ways Salesforce Loyalty can help boost customer retention.
- Personalized Rewards
Salesforce Loyalty allows businesses to create personalized rewards for customers based on their purchasing habits and preferences. This personalization helps to increase customer engagement and loyalty, as customers feel valued and appreciated. Personalized rewards can include things like special discounts, early access to new products, or exclusive offers.
- Gamification
Gamification is a great way to increase customer engagement and retention. Salesforce Loyalty allows businesses to create gamified loyalty programs that incentivize customers to keep coming back. This can include things like point systems, leaderboards, and badges. Gamification adds a fun element to the loyalty program, making it more engaging for customers.
- Seamless Integration
Salesforce Loyalty can be seamlessly integrated with other Salesforce products, such as Sales Cloud and Service Cloud. This integration allows businesses to have a complete view of their customers, including their purchasing history, support tickets, and more. This information can be used to create targeted and personalized rewards, as well as improve customer service.
- Easy to Use
Salesforce Loyalty is easy to use and set up, making it accessible for businesses of all sizes. The platform is user-friendly and intuitive, allowing businesses to quickly create and manage their loyalty program. This ease of use helps to increase adoption and engagement among customers.
- Analytics and Reporting
Salesforce Loyalty includes analytics and reporting tools that allow businesses to track the success of their loyalty program. This includes metrics like customer engagement, redemption rates, and ROI. This data can be used to make data-driven decisions and improve the loyalty program over time.
Conclusion
In conclusion, Salesforce loyalty management is a powerful tool for building a stronger bond with customers and driving business growth. By creating a loyalty program that rewards customers for their repeat business, you can boost customer retention and increase revenue. With Salesforce, you can easily track customer behavior, personalize rewards, and automate the loyalty program. By leveraging the power of Salesforce, you can create a loyalty program that truly resonates with customers and sets your business apart from the competition.
So, start building a stronger bond with your customers today and see the positive impact it can have on your business growth. Remember, loyal customers are the backbone of any successful business, so invest in building loyalty and watch your business thrive.
If you are looking for an experience Salesforce Consultant to implement Salesforce Loyalty Management in your organization kindly reach out to me here.
Omnichannel Experience with Salesforce: A Step-by-Step Guide
Business Insights
In today’s fast-paced business environment, providing a seamless customer experience across multiple channels is more important than ever. With an omnichannel experience with Salesforce, customers are able to interact with your business through various touchpoints, such as email, phone, social media, and in-person, and they expect these interactions to be consistent and personalized. With its powerful marketing automation tools, analytics capabilities, and customer relationship management (CRM) features, Salesforce can help businesses create an omnichannel experience that will delight customers and drive sales.
Step 1: Track and Manage Customer Interactions Across All Channels
The first step in creating an omnichannel experience is to track and manage customer interactions across all channels. Salesforce’s CRM features allow you to do this by providing a single view of the customer, where you can see all interactions and activity across different channels in one place. By having a complete picture of your customer, you can better understand their needs and preferences, and tailor your communication to meet them.
To track and manage customer interactions, you can use Salesforce’s Contact, lead, or opportunity Management feature, which allows you to store and organize customer information, such as contact details, lead status, opportunity stage, and account history. You can also use Salesforce’s Activity Management feature, which allows you to track customer interactions, such as emails, calls, and meetings, and associate them with specific contacts and leads.
Step 2: Use Marketing Automation Tools to Personalize Communication
The next step in creating an omnichannel experience with Salesforce is to use Salesforce’s marketing automation tools to personalize communication. Personalization is critical to creating a customer-centric experience, as it allows you to tailor your communication to each customer’s unique needs and preferences.
Salesforce’s Marketing Cloud feature allows you to create targeted and personalized email campaigns, and track their performance. You can also use Salesforce’s Pardot feature, which allows you to create automated marketing campaigns, such as lead nurturing and lead scoring, and track their performance. Salesforce Genie comes in here which uses AI to give you a 360 view of your customer’s interaction with your business
Step 3: Use Analytics to Gain Insights into Customer Behavior
The final step in creating an omnichannel experience with Salesforce is to use Salesforce’s analytics capabilities to gain insights into customer behavior. With Salesforce’s Analytics Cloud feature, you can create reports and dashboards that provide insights into customer behavior, such as which channels are most effective for reaching different customer segments, and which products or services are most popular.
You can also use Salesforce’s Einstein Analytics feature, Salesforce Genie, and integrations with Mulesfoft, which allows you to gain insights into customer behavior using advanced machine learning algorithms. With Einstein Analytics and Genie, you can analyze customer data in real-time to identify patterns and trends and predict future customer behavior.
Examples of a Successful Omnichannel Experience
Many businesses have successfully implemented an omnichannel strategy with Salesforce, and have achieved impressive results. For example, a retail company was able to improve its customer engagement and increase its sales by using Pardot and Marketing cloud automation to personalize its communication. By segmenting their customer base, they were able to create targeted email campaigns and offer personalized discounts to their customers. As a result, the company saw a 20% increase in sales.
Another example is a financial services company that was able to improve its customer retention and reduce its customer churn rate by using Salesforce’s analytics capabilities to gain insights into customer behavior. By analyzing customer data, they were able to identify which customers were at risk of leaving and took proactive steps to retain them. As a result, the company saw a 15% reduction in customer churn.
Very Important
Creating an omnichannel experience with Salesforce is a powerful way to delight customers and drive sales. By tracking and managing customer interactions across all channels in your organization, using marketing automation tools to personalize communication, and using analytics to gain insights into customer behavior, businesses can create a seamless and personalized customer experience that will set them apart from the competition.
It’s important to note that implementing an omnichannel strategy with Salesforce requires a solid plan and consistent execution. Businesses should start by setting clear goals and objectives, and then identify the specific Salesforce features and tools that will help them achieve those goals. It’s also important to involve all relevant stakeholders, such as sales, marketing, and customer service teams, in the planning and implementation process, to ensure that everyone is on the same page and working towards the same goals and above all the right implementation partner.
Conclusion
In conclusion, it’s essential to continuously monitor and measure the performance of your omnichannel strategy to ensure that it’s meeting your goals and objectives. Salesforce’s analytics capabilities allow you to track the performance of your campaigns and customer interactions, and make data-driven decisions to optimize your strategy.
In short, implementing an Omnichannel experience with Salesforce is a comprehensive process that requires a strategic approach, cross-functional collaboration, and consistent optimization. With the right approach, businesses can create a personalized, seamless, and consistent customer experience that will help them stand out in the market and drive sales. To get all this up and running in your organization, connect with me today, and let’s talk.
The Difference Between Partner & Customer Portals In Salesforce
What Is The Difference Between Partner & Customer Portals In Salesforce
As businesses continue to expand and operate on a global scale, it’s increasingly important to have efficient and effective ways to communicate and collaborate with partners and customers. This is where Salesforce partner and customer portals come in. Leveraging Experience Cloud, we are able to build these community portals on your Salesforce instance.
A partner portal is a secure online platform built on your Salesforce instance that allows businesses to collaborate with their partners, such as distributors, resellers, or suppliers. A customer portal, on the other hand, is a secure platform for businesses to communicate and collaborate with their customers. Both partner and customer portals provide numerous benefits to businesses, including improved communication and collaboration, increased customer satisfaction and loyalty and retention, and increased efficiency and productivity.
Key Benefit of Having A Partner Portal In Your Organization
One key benefit of partner portals is that they allow businesses to centralize and streamline their communications with partners. For example, a company that sells its products through a network of distributors can use a partner portal to provide sales and marketing materials, training resources, and other important information to its distributors in one convenient location. This not only saves time and resources but also helps to ensure that partners have the most up-to-date and accurate information.
9 Features To Include On Your Partner Community Portal
1. A dashboard that provides an overview of key metrics and data, such as sales and revenue figures, customer satisfaction ratings, and partner performance.
2. A document library where partners can access sales and marketing materials, product documentation, training materials, and other resources.
3. A knowledge base or FAQ section where partners can find answers to common questions about products, services, and policies.
4. A discussion forum or message board where partners can ask questions, share best practices, and engage with other members of the community.
5. A calendar of events, such as webinars, training sessions, and industry conferences, that partners can attend to learn more about your products and services.
6. A directory of partner contacts and resources, including sales reps, technical support staff, and other key personnel.
7. A resource center that provides access to sales and marketing tools, such as presentation templates, email templates, and social media graphics.
8. A feedback form or survey tool that allows partners to provide feedback and suggestions for improving the community site and your products and services.
9. Integration with other sales and marketing tools, such as CRM and marketing automation platforms, to provide a seamless experience for partners.
Key Benefit of Having A Customer Portal In Your Organization
Customer portals can also provide numerous benefits to businesses. For example, a customer portal can be used to provide a self-service support center, allowing customers to find answers to common questions and troubleshoot issues on their own. This can help to reduce the workload of customer support teams and improve customer satisfaction. In addition, customer portals can be used to provide customers with access to their account information, order history, and other important data, which can help to improve the customer experience and build customer loyalty.
10 Features To Include On Your Customer Community Portal
1. A self-service center where customers can find answers to common questions, troubleshoot issues, and access product documentation and other resources.
2. A discussion forum or message board where customers can ask questions, share best practices, and engage with other members of the community.
3. A knowledge base or FAQ section where customers can find answers to common questions about products, services, and policies.
4. A case management system that allows customers to submit and track support requests and provides access to customer service representatives and other support staff.
5. A document library where customers can access product documentation, training materials, and other resources.
6. A calendar of events, such as webinars, training sessions, and industry conferences, that customers can attend to learn more about your products and services.
7. Integration with other customer service and support tools, such as help desk software, to provide a seamless experience for customers.
8. A feedback form or survey tool that allows customers to provide feedback and suggestions for improving the customer community and your products and services.
9. Customizable profiles and avatars for community members, to encourage engagement and build a sense of community.
10. A notification system that alerts customers to new content, updates, and other important information.
Concepts to consider when building and designing a partner or customer community portal
When designing a partner or customer portal in Salesforce, there are a few key concepts to consider including:
1. Customization: The portal should be customizable to fit the unique needs and branding of your business. This can include the ability to customize the look and feel of the portal, as well as the ability to add or remove specific features and functionality.
2. Security: The portal should have robust security measures in place to protect sensitive data and ensure compliance with industry regulations. This can include measures such as secure login, data encryption, and access controls.
3. Integration: The portal should be able to integrate with other systems and tools that your business uses, such as CRM or ERP systems. This can help to improve the flow of information and ensure that all relevant data is available in one place.
4. Collaboration: The portal should provide tools and features that enable partners or customers to collaborate, such as document sharing and real-time communication. This can help to improve teamwork and increase productivity.
5. Analytics: The portal should provide analytics and reporting tools that allow businesses to track and analyze key metrics, such as customer satisfaction or partner performance. This can help businesses to identify areas for improvement and make data-driven decisions.
Conclusion
Overall, The difference between a Partner and a Customer portal has been clearly explained above. Salesforce partner and customer portals can provide numerous benefits to businesses, helping to improve communication and collaboration between partners and customers, streamline support and customer service processes, and increase customer satisfaction and loyalty. These portals can also serve as a valuable source of data and insights, providing valuable insights into customer and partner needs, preferences, and behaviors, which can be used to inform business strategy and decision-making.
If you want to implement a Partner or Customer Community portal in your organization don’t hesitate to contact me and I will do a full implementation, maintenance, and support of these portals in your organization.
Salesforce Genie + MuleSoft + Einstein Analytics: Customer 360
A Simple Understanding Of These Tools
Salesforce Genie, MuleSoft, and Einstein Analytics are three most powerful tools that can be used together on the Salesforce platform to improve productivity and drive business results. Here’s how they work together to deliver amazing and profitable business outcomes:
MuleSoft
MuleSoft is a platform that helps organizations connect their systems, data, and applications to enable digital transformation. By integrating with Salesforce, MuleSoft allows organizations to connect their Salesforce data with other systems and applications for example, SAP, QuickBooks, DocuSign, Workday, HubSpot, Slack, Zendesk and more, enabling a more seamless and unified experience.
Genie
Salesforce Genie is a virtual assistant powered by artificial intelligence that helps users get the most out of their Salesforce experience. With the ability to understand natural language queries and provide instant, personalized answers, Salesforce Genie makes it easy for users to find the information they need and take action within the Salesforce platform. Genie is quite a new product in the market by Salesforce. Here are some business use case were you can see the power of Genie.
Business Use Case 1
Imagine a customer service representative using Salesforce Genie to quickly and easily answer customer inquiries.
With natural language processing capabilities, Genie could understand the customer’s question or issue and provide an immediate response. If the issue requires further action, such as updating a customer record or escalating the issue to a manager, Salesforce Genie could perform these tasks on behalf of the representative. This could help to speed up the resolution process and improve the overall customer experience.
Business Use Case 2
Another advanced business use case for Salesforce Genie could be as a sales support tool. Sales representatives could use Salesforce Genie to quickly access and analyze customer data, such as purchase history or demographics, to help them identify upsell or cross-sell opportunities.
Salesforce Genie could also provide recommendations for personalized product or service offerings based on the customer’s past interactions and needs. With its ability to understand natural language queries, perform tasks, and provide personalized recommendations, Salesforce Genie has the potential to significantly improve efficiency and effectiveness in a variety of business scenarios.
Einstein Analytics
Einstein Analytics is a tool that uses AI to helps organizations visualize and analyze their data to gain insights and drive better business decisions. By integrating with Salesforce, Einstein Analytics allows organizations to analyze their Salesforce data alongside other data sources, providing a comprehensive view of their business.
Conclusion
By working together, these three tools can help organizations get the most out of their Salesforce investment. For example, an organization could use Salesforce Genie to quickly and easily find the information they need, MuleSoft to connect their Salesforce data with other systems and applications, and Einstein Analytics to visualize and analyze the data to drive better business decisions.
Overall, the combination of Salesforce Genie, MuleSoft, and Einstein Analytics provides a powerful set of tools for organizations looking to maximize the value of their Salesforce investment and drive profitable business results.
Let me know your thoughts in the comments and if you find this post useful kindly share on your social networks.
Reusable Custom Calendar LWC Using FullCalendar JS Library
We needed a calendar to show information like event information, opportunity closing deadlines, customer verification deadline dates, etc. We can use Salesforce Calendars to show these data when information is available in Salesforce objects. If we have temporary data to show then we need some components.
We have a few limitations in Salesforce Calendars as well like the maximum number of events on the calendar is 150 and we can not hide weekends from it. See all limits here Considerations for Using Events and Calendars in Lightning Experience.
Let us create Lightning Web Component which is reusable and we can use it inside other lightning components as well as in lightning experiences like Lightning App Builder.
We are going to use the FullCalendar Js library to create a reusable lightning web component. The below steps are required to implement this library in LWC.
- Download and add JS library in Static Resource
- Create reusable LWC
- Test reusable LWC
1. Download and add JS library in Static Resource
The latest build of the FullCalendar JS library is not compatible with LWC. We can use versions 3 and 4 to implement it. I have used v3.10.0 and it is available at FullCalendar
Upload this JS library in Static resource with the name fullcalendarv3. It should be available to the public.
2. Create reusable LWC
Let us create a reusable component that will get records/data from the caller component and Lightning App Builder page. For this, we need public properties which will set data in the calendar component.
We can also raise events to be handled by caller components like event click, event selection, etc. In this component, I have raised eventclicked event which will be handled in the child/caller component. Similarly, you can raise other events as well for the caller component. They can handle that event based on their requirement.
Properties events and eventDataString are created for assigning event data in the calendar. Property events is assigning event data in calendar events. This will be used by the caller component to pass array data. As this property is reactive it will update event data whenever events data are changed in the caller component.
Property eventDataString will be used to pass a string into the calendar. This property will convert the string to a JS array and then assign it to the calendar’s event property. This will be used in the Lightning App Builder page to pass event data in string format.
See block code below to better understand programatically
<template>
<div style="background:#ffffff;" class="slds-grid">
<div id="calendar" class="fullcalendarjs"></div>
</div>
</template>
import { LightningElement,api,track } from 'lwc';
import FullCalendarJS from '@salesforce/resourceUrl/fullcalendarv3';
import { loadStyle, loadScript } from 'lightning/platformResourceLoader';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class Calender extends LightningElement {
jsInitialised = false;
@track _events;
@api
get events() {
return this._events;
}
set events(value) {
this._events=[...value];
}
@api
get eventDataString() {
return this.events;
}
set eventDataString(value) {
try
{
this.events=eval(value);
}
catch{
this.events=[];
}
}
renderedCallback() {
// Performs this operation only on first render
if (this.jsInitialised) {
return;
}
this.jsInitialised = true;
Promise.all([
loadScript(this, FullCalendarJS + '/FullCalenderV3/jquery.min.js'),
loadScript(this, FullCalendarJS + '/FullCalenderV3/moment.min.js'),
loadScript(this, FullCalendarJS + '/FullCalenderV3/fullcalendar.min.js'),
loadStyle(this, FullCalendarJS + '/FullCalenderV3/fullcalendar.min.css')
])
.then(() => {
this.initialiseCalendarJs();
})
.catch(error => {
alert(error);
new ShowToastEvent({
title: 'Error!',
message: error,
variant: 'error'
})
})
}
initialiseCalendarJs() {
var that=this;
const ele = this.template.querySelector('div.fullcalendarjs');
//Use jQuery to instantiate fullcalender JS
$(ele).fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
defaultDate: new Date(),
navLinks: true,
editable: true,
eventLimit: true,
events: this.events,
dragScroll:true,
droppable:true,
weekNumbers:true,
selectable:true,
//eventClick: this.eventClick,
eventClick: function (info) {
const selectedEvent = new CustomEvent('eventclicked', { detail: info.Id });
// Dispatches the event.
that.dispatchEvent(selectedEvent);
}
});
}
}
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>55.0</apiVersion>
<isExposed>true</isExposed>
<masterLabel>Generic Calender</masterLabel>
<targets>
<target>lightningCommunity__Page</target>
<target>lightningCommunity__Default</target>
<target>lightning__RecordPage</target>
<target>lightning__AppPage</target>
<target>lightning__HomePage</target>
<target>lightning__Tab</target>
</targets>
<targetConfigs>
<targetConfig targets="lightning__AppPage, lightning__HomePage, lightning__RecordPage">
<property name="eventDataString" type="String" />
</targetConfig>
</targetConfigs>
</LightningComponentBundle>
targetConfig is required to pass data from the lightning app builder so create it in the meta.xml file.
3. Test reusable LWC
As we have built our reusable LWC component, let us consume this component. As mentioned, We can consume this component from another component as well as the lightning app builder page.
1. Test by using it in another LWC
Let us consume created calendar component in another component which is showing event records. Based on our requirement we can retrieve data from any object and show it on the calendar.
LWC Code
<template>
<c-calender events={events} oneventclicked={handleEvent}></c-calender>
<!-- Open a modal with event data -->
<template if:true={openModal}>
<div data-modal="custom-modal" class="modalclass">
<section
role="dialog"
tabindex="-1"
aria-labelledby="modal-heading-01"
aria-modal="true"
aria-describedby="modal-content-id-1"
class="slds-modal slds-fade-in-open">
<div class="slds-modal__container">
<header class="slds-modal__header">
<lightning-button-icon icon-name="utility:close"
class="slds-modal__close "
alternative-text="Close"
title="Close"
size="large"
variant="bare-inverse"
onclick={handleCancel} >
</lightning-button-icon>
</header>
<div class="slds-modal__content slds-p-around_medium"
id="modal-content-id-1">
<lightning-input label="Title" name="title" type="text" required value={title} onkeyup={handleKeyup}></lightning-input>
<lightning-input label="Start Date" name="start" type="datetime" required value={startDate}></lightning-input>
<lightning-input label="End Date" name="end" type="datetime" required value={endDate}></lightning-input>
</div>
<footer class="slds-modal__footer">
<lightning-button-group>
<lightning-button label="Close" title="Close" icon-name="utility:close" onclick={handleCancel}></lightning-button>
</lightning-button-group>
</footer>
</div>
</section>
<div class="slds-backdrop slds-backdrop_open"></div>
</div>
</template>
</template>
import { LightningElement,track,wire } from 'lwc';
import getEvents from '@salesforce/apex/EventController.getEvents';
export default class CalenderTest extends LightningElement {
@track startDate=new Date();
@track endDate;
error;
openModal = false;
@track events=[];
@wire(getEvents)
eventObj(value){
const {data, error} = value;
if(data){
//format as fullcalendar event object
let records = data.map(event => {
return { Id : event.Id,
title : event.Subject,
start : event.StartDateTime,
end : event.EndDateTime,
allDay : event.IsAllDayEvent};
});
this.events = JSON.parse(JSON.stringify(records));
this.error = undefined;
}else if(error){
this.events = [];
this.error = 'No events are found';
}
}
handleEvent(event) {
var id=event.detail;
let task = this.events.find(x=>x.Id=id);
this.startDate=task.start;
this.title=task.title;
this.endDate=task.end;
this.openModal = true;
}
handleCancel(event) {
this.openModal = false;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>55.0</apiVersion>
<isExposed>true</isExposed>
<masterLabel>Calender Test</masterLabel>
<targets>
<target>lightningCommunity__Page</target>
<target>lightningCommunity__Default</target>
<target>lightning__RecordPage</target>
<target>lightning__AppPage</target>
<target>lightning__HomePage</target>
<target>lightning__Tab</target>
</targets>
</LightningComponentBundle>
Apex Code
public class EventController {
@AuraEnabled(cacheable=true)
public static List<Event> getEvents() {
return [SELECT Id, Subject, StartDateTime, IsAllDayEvent, EndDateTime
FROM Event
ORDER BY CreatedDate DESC
LIMIT 100];
}
}
I am getting event data using LWC apex, these data can be taken from any object. After retrieving apex data create a JS array in the format of FullCalendar event data.
2. Test by using it on Lightning App Builder Page
We can add the above-created generic component to the lightning app builder age and put calendar events as string. This will render event detail on the component. This will be useful when you have fixed events for any work. Below is a sample JSON string.
[
{
title: 'Front-End Conference',
start: '2022-09-16',
end: '2022-09-18'
},
{
title: 'Hair stylist with Mikes',
start: '2022-09-20',
allDay: true
},
{
title: 'Car mechanic',
start: '2022-09-14T09:00:00',
end: '2022-09-14T11:00:00'
},
{
title: 'Dinner with Garav',
start: '2022-09-21T19:00:00',
end: '2022-09-21T22:00:00'
},
{
title: 'Chillout',
start: '2022-09-15',
allDay: true
}
]
Add this JSON string into the eventStringData property to show events as a calendar.
When To Avoid Batch Apex And Use Queueable Apex In Salesforce
Salesforce has four asynchronous apex ( Queueable Apex, Scheduled Apex, Batch Apex, Future Methods) to run code asynchronously to handle different need of business application. These apex is used for syncing data in two systems, handling longer jobs which will hit Salesforce Governor limits. This asynchronous apex can be used in different use case. This post is to explain where to avoid batch apex and use Queueable Class instead. Although there are lot of use cases where batch job is sufficient to handle processing.
This post will explain how to handle callout issue You have uncommitted work pending. Please commit or rollback before calling out
Use Case To Solve:
We have around 30K+ account records of health care providers, we need to validate address of all records using address API (any API like SmartyStreet, Google Places, ZipCode ). After API call we need to update record with outcome of API call like address validation is successful or failed in ValidationStatus field. ValidationStatus is custom field in account object. All health care data are stored in account object.
Solution:
To solve this use case we can use batch apex which will handle 200 records (100 in case of callout in batch) in a single batch and batch job will be created for all records. As it will run in batch, we have to put some condition in batch SOQL so that it will not process same record again and again. So we can use query like
Select id, ValidationStatus__c from Account where ValidationStatus__c=false
This will only process record which is pending but there is another problem with this approach. As validation is not successful due to some reason that record will be pending and same records will be fetched in each job for process. This issue we can handle using adding another filter last modified date in SOQL
SOQL in Asynchronous Apex gives us the advantage of higher governor limits
Select id, ValidationStatus__c from Account where ValidationStatus__c=false and LastModifiedDate<>TODAY
Using this batch it will solve issue of not processing same record again and again. We will face another problem after that is , if we want to re-process pending record or error records after correction, it will not re-process those record on same day.
So what will be efficient solution for our use case. Can we use another asynchronous apex as we have lot of records to process? Yes, we have to use another asynchronous apex Queueable to handle this. We can query all pending records in one parent queueable class and then process records in another queueable class which will support callout. We will run chain of Queueable child class to process 100 records at once. Once 100 records are processed, start another queueable child job. This way we can call external system and make list of records to update before we start another job. This way we can avoid uncommitted work pending issue also.
Uncommitted work pending issue throws when we are calling external system and then updating response in object, when system start processing next record, previous records is still pending for commit so we get that error. This issue will be address by below approach
- We will call external callout for reach record one by one
- We will not update records immediately, instead we will add all records in collection
- Once 99 records are processed, we will start new queueable job for processing another set of 99 records
- Before we start new batch, we will update all records for status update.
Above approach will handle issue uncommitted work pending for commit issue.
Let us see code for this solution
public class AddressValidationQueueableRunner implements Queueable, Database.AllowsCallouts{
public void execute(QueueableContext context) {
integer counter=0;
try
{
Map<Id,Account> recordMap=new Map<id,Account>([SELECT ID,ShippingStreet,ShippingCity,ShippingState,ShippingPostalCode,ValidationStatus__c from
Account Where ShippingStreet!=null and ValidationStatus__c = false]);
system.debug('record to process...'+recordMap.size());
if(recordMap !=null && recordMap.size()>0){
AddressValidationQueueable esync = new AddressValidationQueueable(recordMap);
System.enqueueJob(esync);
}
}
catch(Exception ex)
{
ApplicationException.logException(ex);
}
}
}
Above queueable apex code is getting all records which need to process and passing all records to another child queueable class. As we are passing all records to child queueable class we don’t require to run this class multiple time. So if any error occurs for any records and we want to re-process those records, we can run this class once again after record correction.
Let us see code for child queueable class which will process each record and also handle uncommitted code pending issue.
public class AddressValidationQueueable implements Queueable, Database.AllowsCallouts{
public Integer MAX_RECORD = 99;
public Integer processingCount = 0;
Map<Id,Account> accounts;
List<Account> accts;
public AddressValidationQueueable(Map<Id,Account> acts)
{
accounts=acts;
}
public void execute(QueueableContext context) {
integer counter=0;
boolean startNewQueue=false;
try
{
accts=new List<Account>();
for(ID index:accounts.keySet())
{
Account act=accounts.get(index);
if(!startNewQueue)
{
if(act!=null)
{
try
{
accts.add(AddressVerification.processRecord(act));
}
catch(Exception ex)
{
system.debug('ex:'+ex.getMessage());
ApplicationException.LogException(ex);
}
counter=counter+1;
accounts.remove(index);
}
system.debug('accts:'+ counter);
if(counter>MAX_RECORD)
{
startNewQueue=true;
break;
}
}
}
if(startNewQueue)
{
processTargets(accts);
AddressValidationQueueable esync = new AddressValidationQueueable(accounts);
counter=0;
System.enqueueJob(esync);
}
}
catch(Exception ex)
{
ApplicationException.LogException(ex);
}
}
public void processTargets(List<Account> accounts){
if(accounts!=null && !accounts.isEmpty())
{
update accounts;
}
}
}
public class AddressVerification{
public static string NAMED_CREDENTIAL ='SmartyStreet';
public static Account processRecord(Account act)
{
APIConfiguration__mdt mdt = APIConfiguration__mdt.getInstance('SmartyStreet');
Map<String, String> ncParams;
if(string.isNotBlank(act.ShippingCity) && string.isNotBlank(act.ShippingState))
{
ncParams=new Map<String, String> {
'auth-id' => mdt.UserName__c,
'auth-token' => mdt.Password__c,
'street' => act.ShippingStreet,
'city' => act.ShippingCity,
'state' => act.ShippingState,
'zipCode' => act.ShippingPostalCode,
'candidates' => '10'
};
}
else if(string.isNotBlank(act.ShippingPostalCode))
{
ncParams=new Map<String, String> {
'auth-id' => mdt.UserName__c,
'auth-token' => mdt.Password__c,
'street' => act.ShippingStreet,
'zipcode' => act.ShippingPostalCode,
'candidates' => '10'
};
}
else
{
ncParams=new Map<String, String> {
'auth-id' => mdt.UserName__c,
'auth-token' => mdt.Password__c,
'street' => act.ShippingStreet,
'candidates' => '10'
};
}
system.debug('Auth:' + ExternalCallout.AUTH_TYPE.NAMED_CREDENTIAL);
Map<String, String> headers=new Map<String, String> {'Content-Type' => 'application/xml'};
HttpResponse response=new ExternalCallout().get('SmartyStreet', ncParams,headers);
system.debug('response:'+response.getBody());
if(response!=null)
{
act.ValidationStatus__c=true;
}
return act;
}
}
AddressVerification class do external callout to Smarty Street address API. External callout code is available in another blog Generic Apex class for Calling External System. To store API detail, I have used named credential SmartyStreet which will store API url https://us-street.api.smartystreets.com/street-address , username and password.
AddressValidationQueueable is child queueable class which will call AddressVerification class for each record and add those accounts in list. Once set of 99 records are processed, we will update those records and start new child queueable class to process next set of 99 records. We are also removing that record from list so that it will not process again.
Pass lightning-input field Value from a Button Click to LWC Controller
Big Idea or Enduring Question
How to pass lightning-input field value as a parameter to controller class method in Lightning Web Component?
Objectives:
After reading this blog, you’ll be able to:
- Understand what is lightning-input field and how to work with them
- Understand when to use querySelector vs querySelectorAll to access element
- Use custom data attribute to query or set the lwc component
- Pass lightning-input field value to lightning web component (lwc) controller
Business Use case
Godwin Mbah is working as a Developer at Salesforce innovate LLC. he just started learning the lightning web component and wondering if someone could help him understand how to build the following screen and pass email and mobile field values to the lwc JavaScript controller on a button (Next) click.
What is a lightning-input component?
The lightning-input component is used to create interactive forms in order to accept data from the user; a wide variety of types of input types and attributes are available, depending on the use cases. The lightning-input element is one of the most powerful and complex in all LWC components due to the sheer number of combinations of input types and attributes.
This component supports the following input types:
- checkbox
- checkbox-button
- date
- datetime
- time
- file
- password
- search
- tel
- url
- number
- text (default)
- toggle
Data attributes in Lightning Web Components
While working with a lightning web component, sometimes, we want to pass components’ values to JavaScript on a button click. You can do this in many ways, and data attribute is one of them.
For example, we are showing a form with few input fields. We want to pass entered values to the component JavaScript file on the button click. To achieve this, create the custom attributes by appending any string to data- and providing the information to it, like data-name, data-element, data-title, etc. Remember, you can only be able to enter string values to the data attributes.
<lightning-input
type="email"
data-element="user-input-email"
label="Email Address">
</lightning-input>
Using querySelector and querySelectorAll
The querySelector() and querySelectorAll() are DOM APIs available on modern web browsers. They are used to query DOM elements that match a specified selector.
The difference between these two is that querySelector() returns a single element matching its selection criteria. querySelectorAll(), on the other hand, returns all elements matching the search criteria in an iterable list.
Syntax
this.template.querySelector('p'); // Selects first paragraph element in document
this.template.querySelectorAll('p'); // Selects all paragraph elements in document
this.template.querySelectorAll('[target]'); //Get all elements that contain the attribute target
So Here is How I will approach this:
Now you have a basic understanding of all ingredients we need to build the lightning web component for the given business requirement. Let’s get started.
lightningInputExample.js-meta.xml
A lightning web component can be used to build custom pages for Lightning Experience and the Salesforce mobile app quickly with point-and-click tools. Make sure to add the right target for it.
This configuration file makes the component available for all Lightning page types but restricts support on desktops.
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>54.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__RecordPage</target>
<target>lightning__AppPage</target>
<target>lightning__HomePage</target>
</targets>
</LightningComponentBundle>
lightningInputExample.html
Every UI component must have an HTML file with the root tag <template>. The template contains two lightning-input tags that create input for email and mobile. The template includes one lightning-button (Next) with the onclick method handleNext.
It is possible to use data-element attributes in the lightning-input component to pass email and mobile details to javascript for further logic. But we will use onchange event and store the values in variables in LWC controller.
When a user clicks on the Next button, it will call a JavaScript method handleNext() which will usevariablesto get the email and mobile field values.
<!-- lighntingInputExample.html -->
<template>
<form>
<div
class="slds-p-top_small slds-p-bottom_medium slds-align_absolute-center slds-theme_default slds-text-heading_medium">
<b>Lightning-Input Example</b></div>
<div class="slds-box slds-theme_default">
<lightning-input
type="email"
label="Email Address"
value={emailvalue}
onchange={handleEmailChange}>
</lightning-input>
<lightning-input
type="tel"
name="mobile"
label="Mobile"
value={mobilevalue}
onchange={handleMobileChange}>
</lightning-input>
<div class="slds-m-top_small slds-align_absolute-center">
<lightning-button
variant="Neutral"
label="Cancel"
class="slds-m-left_x-small"
onclick={handleCancel}>
</lightning-button>
<lightning-button
variant="brand"
class="slds-m-left_x-small"
label="Next"
onclick={handleNext}>
</lightning-button>
</div>
</div>
</form>
</template>
lightningInputExample.js
Use variables from LWC controller to get the email and Mobile values. The alert will display the value of email and mobile when clicking on the Next button.
import { LightningElement } from 'lwc';
export default class InputExample extends LightningElement() {
emailvalue ="username@example.com";
mobilevalue= "000-000-0000";
handleEmailChange(event){
this.emailvalue = event.target.value;
}
handleMobileChange(event){
this.mobilevalue = event.target.value;
}
handleNext() {
alert('email '+ this.emailvalue);
alert('Mobile '+ this.mobilevalue);
}
}