Category Archives: CRM/Salesforce

3 Quick Principles of Re-engineering a Process in Salesforce

Designing a process from scratch is already a task and a half for your Salesforce org, but re-engineering a process is even a bigger undertaking when the process has been in use for some time. Many considerations need to be paid towards how to begin re-engineering, how to maintain the design after the solution is built and deployed, and what tools are required to plan its design and execute all this. Recognizing that there are a lot of things to think about, here is a small compilation of ways to tackle some of these questions. These are things that Salesforce solution designers are thinking of when it comes to designing a process to replace another one that just doesn’t fit the bill anymore.

1. Prioritize for value and technical complexity

In my interactive webinar series on how to design a process like a pro, I talked about prioritizing parts of the process to re-engineer based on business values that ranged from revenue generation, to user productivity, to customer experience. While these are important drivers in deciding which parts of a process to re-engineer, the technical effort also needs to be considered because these are the details that give way to an estimate of work involved. Since time and effort are also factors in prioritizing, here are things that we, as a team, discuss, evaluate and estimate effort on, to help prioritize which part of a process to re-engineer.

  1. Consider the existing Salesforce objects involved and the possibility of needing to deprecate or change them to fit the new process.
  2. Review the relationships between Salesforce objects and the possible need to change them.
  3. Consider the number of records that may need to be transformed, and the possibility of leaving them to coexist in the system.
  4. Analyze the existing automation being used given that there is usually a mix of automated processes, flows, triggers, and such, that need to be deprecated, modified, or potentially cannot be changed immediately.
  5. Account for the existing security and access, and the possible need to change them.

2. Demo early, demo often

Much like “save early and save often”, proactively keep tabs on how a re-engineered process is received by users. Don’t wait until it cuts over and is live in production before surveying users how things are going with the newly re-engineered part of the process. A reveal day like this can go awry if you didn’t have a good sense of user acceptance. Since we practice Agile, we demonstrate functionality at the end of each sprint. With sprints being relatively short, users see new releases early and often, as we complete them. Each time we demonstrate functionality, users have an opportunity to point out issues and provide feedback as we walk through functionality. Being able to get feedback from users, on-demand gives us a chance to adjust the solution so that it meets user needs. We consider this to be a pre-emptive quality check before handing the sprint release over for UAT, which is yet another period for users to validate that the changes meet their goals before accepting it in production.

This is not to say we haven’t gone through system testing, sprint demos and UAT with customers, deployed to production, and still had to come back and make adjustments during the support period. We might make changes then or add new improvement ideas to the project backlog, since changes in business and with customers often happen quickly. This is just part of reacting to live situations, find the next best way to work faster, and get more done—practically living and breathing productivity, progress and satisfaction.

3. Traceability, a buzz killer, and absolutely necessary

Certainly, documenting the design of a solution delves deeper than what was talked about in my webinar series, so let’s cut to the chase. Traceability is a bit of a buzz killer. It’s like the heaping pile of clean laundry I haven’t folded and accounted for, but I know eventually, I have to clear it so I don’t buy more socks, impulsively. Traceability is exactly this. It’s a mission to reduce, reuse and recycle, so that you have less technical debt and conflicting processes clobbering each other. Plus, if you’re working in a team all the time like we are, adding traceability helps everyone keep up with changes, decisions, the general understanding of how the solution functions and which user story is fulfilled.

Now, how is the hard part. Currently, my team writes a short design document for each user story we’ve identified. Each design document has two important things for traceability: 

  • A list of pre-existing API names of each declarative and programmatic item that will be modified because we’re recycling it into something else, enhanced, and re-used. 
  • A list of objects that will be created, modified, and re-used. 

These design documents are then related back to the user stories that we’ve released for each sprint. By the time the project is complete, every user story has at least one design document related to it pertaining to what we built and how it functions for users. To take it further, we can search our documents by the project, by the object, by the API name, almost any keyword, to find what we need months later. We can re-establish our understanding of the designed solution and continue with the next stages of transformation and optimization.

Design principles we like

Between my team of Salesforce Consultants and Developers, each group has a noticeably favorite approach in design principles that they use over and over again.

The developers favor complete user stories with clear acceptance criteria. Whenever these were not clear, they felt that they could not design something that would represent what users needed, ultimately lowering the value of the solution. As for the consultants, who concentrate in declarative work and business analysis, they favor the end-to-end flow of process carrying out the expected outcome. For me, my attention over the years have gravitated a lot towards data normalization, and security and access. Even though I am a process engineer at heart, well-designed data and security have proven to be a key factor to the success of re-engineering a process.

Bringing SDLC back! 

Life is a lot different than it was. Salesforce has always been a DIY platform that made it easy for admins and developers to build on-demand. The last 2 years have seen a widespread trend on architecting solutions. Salesforce solution designers are pausing their thoughts to build on-demand because they are concerned about technical debt, extensive org administration and support, and just simply being able to scale for growth. Traditional practices of change management and quality assurance have also made their way back into the fold where solutions are deployed from a Developer Sandbox, to a Full Sandbox and then finally to the production org. I am very excited to see so many great software design principles are being echoed in the Salesforce community. A lot of care is being given to designing processes and solutions holistically in Salesforce. We plan to continue being a part of this movement.

How Aria Solutions Can Help

Are you designing a process and have questions about how to tackle it? Download our design template to start planning out a process solution.

Our team is also here to helpContact us today if you’d like to continue the conversation 

Building a Fully-Integrated Contact Center with Amazon Connect and Salesforce

When AWS launched the Amazon Connect cloud-based contact center service, our breath was taken away by the power and the flexibility – making us quickly become one of the first APN partners and take part in creating new add-on functionality and services.

Having experience building customer engagement functionality in Salesforce that only supports digital channels, our team realized that Amazon Connect and its voice-based channel was a natural fit. So, this was the obvious first place for Aria to invest in to provide customers with a fully-integrated contact center.

Bridging the silos with pre-built components

No one wants to have their technology run in silos. By integrating both cloud-based solutions, organizations can:

  • Improve customer experiences by properly managing customer interactions across voice and digital channels
  • Improve employee productivity by automating tasks and reducing the number of screens they must use to handle customer interactions
  • Gain full visibility of how well the contact center is meeting customer demand

To make this happen fast with less effort and lower risk, Aria built two options:

1.  Free toolkit to try things out on your own

This is an advanced adapter that’s using Salesforce’s Open CTI, which brings Amazon’s Contact Control Panel right into Salesforce. The toolkit offers out-of-the-box integration between Salesforce and Amazon Connect, which is built on industry best practices. Agents can receive and control the calls and see customer information right within Salesforce – the same place where they handle digital channels.

As part of this integration, the toolkit migrates Amazon Connect call data into Salesforce, for all interaction data to reside in one place. Providing contact center managers with a clear view of their operations across all channels.

Other AWS applications that are often used in the contact center, such as Lex bot data, and transcriptions with Amazon Transcribe, are also made available right within Salesforce.

Not only does it provide some great features out-of-the-box, it’s also meant to be customizable and extensible, by giving you the rights to copy and modify almost all pieces of code to adjust the functionality to your own needs.

2.  More advanced, supported integration through Legato

Another option to consider is Aria’s Legato, which includes all the same functionality as the free toolkit plus a customizable softphone. It is a packaged and fully supported product that includes automatic upgrades and will soon be available on the Salesforce AppExchange.

This option lets organizations skip the internal development stage and go straight to a supported product – should that be the desired path.

Making your customer engagement center even more advanced

Aria has over 20 years of contact center experience and a depth of knowledge on how everything interconnects as a single solution.

If you want to add more functionality to improve customer and employee engagement in an efficient manner, here are some service options:

  • Setup of Amazon Connect
  • Voice and digital bots with Lex
  • Integration of industry-leading CRM and WFM tools
  • Advanced functionality provided by Amazon Connect partners, such as advanced sentiment analysis, dynamic phone numbers, fraud detection, and in-session SMS

To learn more about these options and what’s possible with Amazon Connect contact us to talk to our experts!

3 Tech Trends & Factors That Impact Employee Experience

Who does not love a nice dinner out on a Friday night? It’s a great way to start the weekend and relax after long days at work. But then a server—clearly unmotivated—shows up, does not answer my questions, and gets my order wrong. What was supposed to be a relaxing evening turns out to be a stressful disappointment. Even if the food ends up being good, or even delicious, the moment is ruined. And if it was my first time at this restaurant, I would not come back, ever. 

Sounds familiar? I am sure many of you can relate. 

Well, the experience in a contact center is no different than the one in the restaurant. At a time when all products are similar and switching services happens seamlessly, the customer experience can make it or break it. This means the people on the front line of your company are key to your success, whether you like it or not. Consequently, it is in your best interest to motivate them, so that they represent your business in the best way possible. 

In other words, satisfaction of your employees has a direct impact on your customers’ loyalty, and therefore on your revenue and profits. While leadership, employee engagement, and other HR related measures obviously play a big role, the importance of technology in the workplace is steadily increasing. The primary reason is a steady increase of demands, and technology helps employees work more efficiently to meet their goals. It’s as simple as that. 

What are the key technological factors and influences that improve the employee experience (EX) and as a result make a company more successful? 

1. Automation

Automation is still one of the most important factors. Unfortunately, many companies are not fully leveraging it.  

Painful, repetitive tasks such as copying and pasting data between multiple systems are the result of these shortcomings. It is one of those common productivity roadblocks that is increasingly frustrating in an environment where performance is rigorously measured.  

Building integrations between multiple systems allows automation and is essential to improving the EX.  

For instance, a common scenario is the handling of an order or return between Customer Relationship Management (CRM) software and an Order Management system (OMS). If agents have to create an order by copying all customer details and product line items between the two systems, they can become extremely frustrated over time. Adding a button that does all that work with one click, where the agents only have to validate the order before booking it, makes a big difference. 

2. User Experience

“It’s all about saving clicks” is what people say when talking about automation. But automation is not the only means to save “clicks” for the user. An often overseen factor is the user experience (UX).  

With the high level of configurability and customizability of today’s applications, such as a CRM software, it matters what agents see on the screen. This is all about showing the right information in the right place at the right time. Button locations, dialogs, and wizards are just some of the tools that can improve system usability, and consequently employees’ satisfaction. Even the look and feel plays an important role, since the users are spending several hours a day looking at the software.  

UX has been crucial for product development, but it is often neglected when building systems for internal users. For example, screen pops are a common feature utilized in any contact center. If an agent only sees the service record for the customer’s current incident, it is certainly helpful. But, if the system is configured to show key customer information (besides just the name), for example, recent history and other related information (such as the products the customer owns) – all on one screen, the agent can operate much faster and provide better service, leading therefore to reduced handle time. 

3. Artificial Intelligence

Last but not least, the power of artificial intelligence (AI) offers a huge potential to improve EX. This is a real game changer because AI is not meant to improve how users do things, but what they are doing.  

This is significant because every employee can now be a rockstar sales person or a customer service champion. In an environment that thrives on success metrics, such as sales numbers and service level agreements (SLA), this can help each individual meet or even exceed their goals.  

Lead scoring is a great example. If a sales representative handles 50 leads a day out of a pool of several hundred, success depends on converting those leads into real opportunities. Based on historical data, lead scoring algorithms will help choose leads that have a higher chance of converting into a sale. This will not change the number of leads the agent will call, but it will improve the number of sales during a day.  

It will make the agent successful, and there is no better motivator than success. If people feel empowered and effective, they are more willing to face obstacles in their way. 

But keep in mind that AI is still an emerging technology. It needs to gain trust from business users and technology experts alike. Rolling out features to smaller groups first can be helpful in collecting valuable data, thus proving the positive impact of AI. Building a success story is key to getting acceptance. 

Evaluate and Apply Technology Properly

From my experience working with contact centers, I know that a great employee experience is driven by productivity. A productive and rewarding day can boost your employees’ happiness and engagement, leading to an even better performance in the future.  

Technology is a key ingredient in nurturing this successful experience, and it is crucial to make it a standard, not an exception. However, it is important to understand that there is no silver bullet. There should be an evaluation first – to understand the greatest weaknesses and how the technology can help resolve them. 

Technology can only reach its full potential when applied properly. Often, business users describe their needs by providing a solution to the problem. Unfortunately, their solution does not include a full understanding of features and dependencies within the systems they are using. So in short, IT and business users should work closely together to come up with the best implementation. 

With technology evolving so quickly, the journey is the reward. 

If you need help with business challenges, choosing the right solution for your pain points, or evaluating specific technology – Aria is here to help!

We offer expert services on the Salesforce platform and can help you customize your crm to fit your needs. We also have many omni-channel desktop products, including our newest product Legato which includes a robust softphone and integrates Salesforce with Amazon Connect Voice so your agents can see everything on one screen. Contact us today to learn more or visit us at booth 2226 during Enterprise Connect Orlando.

Cloud + Automation: The Future of the Contact Center Infrastructure

Technology fuels so many aspects of businesses today, that it is now the lifeblood of the organization. CIOs and Infrastructure leaders must own the design for the full eco-system to deliver an infrastructure that can be the foundation for the business.

Evolved infrastructure trends

Infrastructure powers everything and therefore is the foundation of every customer experience. For CIOs and Infrastructure leaders this means they must focus on the technology, systems, and processes to win, serve, and retain customers.  But new and emerging technology has changed traditional infrastructure and infrastructure design must now be looked at in a new way.

1.Cloud services

It’s true, infrastructure now comes in more forms than ever including the always expanding family of cloud services. But even though cloud has certainly changed the game, we must embrace it!

Instead of trying to control what happens within these technologies, CIOs should focus on governing how their organization should use services, such as cloud, and the best way to integrate these services into technology, systems, and processes.

When looking at cloud services, it’s helpful to consider the 3 main types, and analyze where these fit in the transformation strategy:

IaaS (Infrastructure-as-a-Service) – organizations keep pre-owned or custom software, but save on hardware infrastructure costs

SaaS (Software-as-a-Service) – organizations migrate a business application to the cloud, doing away with the app infrastructure completely

PaaS (Platform-as-a-Service) – offers organizations many infrastructure options, from acting as cloud based “glue” between existing systems, or a way to more quickly build your own cloud app without starting from scratch


Automation has become extremely powerful and created a changing environment when it comes to traditional infrastructure. Embracing automation gives organizations the agility to change, speed of execution, security, and dependability that delights customers.

For example, by integrating CRMs such as Salesforce with other systems, organizations can centralize data and eliminate silos that impact customer and employee experience. As the company grows, this type of infrastructure can also scale providing the organization with the agility it needs to adapt to changing customer demands.

How to start the infrastructure transformation journey?

In Forrester’s Infrastructure Transformation Playbook, they define 4 phases that Infrastructure teams should consider when approaching their transformation. In our view, these 4 phases can be described in the following manner:

First, you need to discover how you will transform your infrastructure to service design which includes thinking about the role that cloud services might play in your organization especially if you have existing on-premise systems.

After that, you’ll plan your transformation path, which should not only include your timeline and steps, but also the purpose for doing the transformation.

This brings you to phase 3, implementation, which will likely be the longest of the 4 phases.

And finally, the last phase is where you’ll optimize service experiences by continually measuring and refining. Once you’ve reached this phase, you can benchmark your progress against your competition and, depending on where you fall, determine the area to look at next.

To learn more, download the complimentary January 2018 Forrester report where the above phases are discussed: “Master Automation & Software To Transform Your Infrastructure”.


Why Tech Start-Ups Should Start Their Customer Journeys Early

There are more and more start-ups in the tech industry every year. They have become an integral part of our business landscape, driving innovation and entrepreneurship.

All of these start-ups begin with a vision and a few individuals who want to bring it to life. Over time, they will find investors to back them up and the people to transform it into a product. Everyone works hard for the success of the newly founded company. But building this success is difficult, and developing a product to a point where it is marketable requires a lot of hard work and fortitude.

At the beginning, the product is the one and only focus. It’s about developing a platform for the business idea to come alive and building the artifact (product, app, etc.) that customers will want to use or buy because without the product, there is no business.

Later, once the product has matured and larger audiences start using it, the business aspects need to be embedded into the process. Customers need to be managed, sales handled, licensing applied, and even more importantly, the moment the first customers are on board (while the product is still in an infant stage), customer service is crucial to keep the users engaged.

Today, success is not only defined by a vision or product itself, but also by timing and the execution of the company’s ability to attract users. This becomes even more crucial once others start to copy your business model.

However, customer service does not just stand for troubleshooting anymore. These days, customer engagement represents a journey, which starts with:

1. Attracting a consumer to your product (marketing)

2. Followed by collecting information about the product usage (analytics)

3. Then supporting the consumer through common early stage issues (support)

4. To finally – building a brand allegiance that leads to future purchases (overall business)

It is no secret that great products fail due to poor execution of those steps.

But how can start-ups succeed in those areas without devoting too many resources? Last thing anyone wants is to jeopardize the execution of the product itself.

Well, I believe that it is important to pay attention to those business aspects right from the beginning. The product vision needs to be combined with the customer engagement vision.

The Power of CRM in Building Customer Journeys

Customer Relationship Management (CRM) is a key aspect of the customer journey and should be done using the right tools instead of improvisation. At some point, the Excel worksheets and emails won’t cut it anymore and then it will be even more difficult to migrate the loosely collected data to a proper CRM solution.

Since we are dealing with a start-ups, cost is obviously an important factor. Today’s CRM cloud solutions with their different tiers and subscription models help mitigate large financial commitments.

Investing into a CRM tool as soon as the product gets released is a logical choice. However, there are advantages to signing up at an even earlier time. If the product supports connectivity features that allow for an Internet of Things (IoT) business use case, there is an option to collect valuable information about the device and its usage.

The collected data can be very valuable when making product roadmap decisions or for marketing purposes. In the situation of a support service request, having access to the device information can be crucial in locating a root cause and solving the problem.

Of course, there are many ways to implement such a solution. Plus, there are many platforms that offer great services. Salesforce is one of the top cloud CRM companies, and it is named a leader for the ninth consecutive year in the Gartner Magic Quadrant in the CRM space. This platform should definitely be on the list of vendors to evaluate.

Besides being a very feature-rich CRM, what is often overlooked is the development platform Salesforce is built on, including its large set of APIs and tools to integrate with (Standard SOAP/REST APIs, custom SOAP/REST APIs using Apex, Javascript toolkits, Heroku, etc.). A great number of options are offered for integrating your product or other systems with your customer data.

On the business side, everything is there and ready when you need it. Whether it is marketing, sales, customer service, billing… As long as you maintain your customer data on the platform, you can plug in those functions and use them whenever you are ready. And with the per-user payment model, the cost will only grow when your company does.

Using a CRM application early allows you to start building customer journeys right when your product hits the market. Using a CRM may not guarantee the success of your innovation, but it significantly decreases your chances of failure. Plus, it can set you up for a much quicker transition from a start-up to an established, successful company.

If you require assistance in optimizing Salesforce, enabling omnichannel, or integrating it to various business systems – see us at Dreamforce 2017 or contact us here.


Salesforce Data Loads: Using Feature Switches to Manage Apex Triggers

Dealing with larger data loads in Salesforce often leads to the task of turning off automations, such as validation rules, workflows or process builder flows. This can be done directly in the Production Org, or even better, by using tools such as the Ben Edward’s Salesforce Switch.

Although the tool also offers to turn off triggers, it isn’t quite that simple. That is because any changes to triggers can only be done through code deployments, and those require the unit tests to succeed for the changes to take effect. However, some unit tests may depend on other triggers or automations to be active, which can make this a very complex and time-consuming undertaking.

Turning Apex Triggers On and Off with Feature Switches

A possible solution to this dilemma can be the implementation of feature switches. Feature switches are a simple concept of turning features on and off. In traditional software development, especially in cloud applications, this practice is used for controlled feature deployments, A/B testing, and more. In Salesforce, this principal can be used to quickly turn off all your trigger functionality to run data uploads – without the risk of trigger errors. This also improves the speed of your data upload.

How to Implement Feature Switches For Data Loads in Salesforce

Feature switches are based on a configuration object. This can either be done by using Custom Metadata Types or Custom Settings.

Custom Settings have the advantage that they allow for hierarchical overrides of the global settings. Depending on what use cases the feature switches are needed for, this might be a desirable option. Each feature switch would be represented as a checkbox field in the Custom Setting. The downside to this approach is that any new feature switch requires the Custom Settings metadata to change, which is not ideal.

In Salesforce, I would consider feature switches to typically be of a global scope only. So, my personal preference is to work with Custom Metadata Types. Each feature switch is represented as a new record in the Metadata Type, which does not require changing the actual type itself as it would for Custom Settings. Those records can also be migrated as part of a metadata deployment.

Now, Let’s See What Such an Implementation Could Look Like

1. Creating custom metadata type

We start by defining the Custom Metadata Type. Create a Custom Metadata Type called “Feature Switch”. The type will need a new custom field.

Creating Custom Metadata Type - Salesforce Data Loads

2. Creating custom field on metadata type

From a development perspective, it will be easier to consider an exceptional case for when the feature is turned off, so I will create the custom field type “checkbox” and label it “Turned Off”. Creating Custom Field on Metadata Type - Salesforce Data Loads

3. Adding a record to turn off triggers

Now, let’s add a record to turn off triggers, by clicking the “Manage Records” button or link and select “New”. I named the record “All Triggers”, used the default API name, and left the “Turned Off” checkbox unselected. The image below shows the list of records for the feature switches including the record that was just created. Note that I created a new view to include the custom field.

List View of All Trigger Feature Switches

4. Creating an Apex class 

Next, create an Apex class that can be used elsewhere in the code to conveniently retrieve the state of a feature switch. The class will contain a single function to ask if a switch is turned off.

In our environment, feature switches are commonly used, so it makes sense to load them statically. However, using lazy loading is also a good option here. Making the SWITCH_MAP visible for unit tests decouples the manager from the actual configuration and allows the unit tests to inject the values they need for testing. In this case, changing the value of feature switches will not impact the success of an Apex unit test run.

5. Querying feature switch in the trigger

Last, the feature switch needs to be queried in the trigger. This can be as simple as introducing an early return statement in the code. If a central trigger dispatch pattern is used, the All Triggers feature switch requires the following snippet to be introduced in a single class only. However, if the pattern isn’t used, simply add the snippet to any trigger deployed in the Org.

6.  Adding a unit test for the manager class

All that is left to do is to add a unit test for the manager class to ensure the code coverage requirements are fulfilled and you are good to go.

That’s all! Now, when another data load is about to happen, all that needs to be done to turn off triggers is to set the “Turned Off” flag for the “All Trigger” record to checked and you are ready to go.

There is no deployment or code hack necessary anymore. We used this pattern successfully during large projects with numerous data loads. It has saved us a lot of time and stress, as well as allowed us to focus on the data migration tasks, instead of getting distracted with environmental prerequisites.

Using Feature Switches for Integration Classes

Using the feature switches for all triggers is only one use case. Feature switches are also extremely useful for any integration classes using web requests to third-party services.

For example, if the third-party service is currently experiencing an outage, the feature switch can be used to activate a routine that deals with this situation. This allows your organization to inform users of the current outage. Plus, it will give the third-party service time to recover without penetrating the system with additional requests.

If there are triggers that should run during data loads, I would just rename the trigger to “Data Load Sensitive” or similar.

Are you looking for help with Salesforce implementation? Let’s meet at Dreamforce 2017, or contact us to discuss over the phone.

Your Agents are Not Superheroes! Increase Efficiency by Connecting Data Silos

I am sure you’ve come across several resources that talked about digital channels now dominating over traditional ones.

Even though your contact center might still be in the process of deploying or optimizing these channels, customers don’t care. They want their issue addressed now, and they expect you to know everything about their journey, no matter what communication channel they use.

These new demands add a lot of pressure into what is already a hectic agent experience. Now agents need to know all about the customer’s journey, which means all interactions across multiple channels, as soon as the interaction comes in. This is a tough thing to do if systems and data are siloed.

Agent efficiency in the world of multichannel

Most agents are dealing with several disconnected systems, such as CRM, siloed voice and digital systems, and knowledge repositories, in an attempt to access customer interaction data. They need to know the history of what has been done and communicated to this customer throughout multiple channels. Finding, reading, assimilating and using information within a call or chat is very difficult and is rarely done seamlessly.

On top of having to do it efficiently, agents need to make sure they don’t deliver conflicting messages. As the hosts in a Westworld storyline might mistakenly say: “I’m only human”. Keep in mind – even if you really want your agents to be superheroes, they just aren’t.

The longer the agents look for information, the longer it takes to address customer needs, which results in agent and customer frustrations. Asking them to repeat information already provided elsewhere only adds to customer dissatisfaction.

It’s about costs too. On average, 15% of agent time is spent shifting between systems and applications. Extrapolating that over the course of a full year means significant cost to your business. Can you afford to let that continue?

Accessing customer data through one platform

Top contact center performers understand the importance of reducing the agent’s struggle, by empowering agents with easy access to all customer data on one platform.

This is primarily a technology struggle that can be addressed with unified agent technology. When telephony and other channels are integrated into CRM for omnichannel capabilities, agents can pull customer data and complete work without opening another window.

If an agent can quickly see that a customer has already reached out about a certain request via a different channel, this customer doesn’t have to repeat everything all over again, while the agent can go ahead and complete the task.

By seeing customer purchase history, agents get an opportunity to cross-sell or up-sell, or ask for feedback on product satisfaction and try to improve their experience.

From implementing projects for our clients, we saw a strong need to enable agents with such integration. So, we built a softphone capable of integrating multiple systems in a seamless way. It lets contact center professionals leverage the value of CRM, by making it the focus of their agent interactions as well as minimizing the need to leave the system to accomplish tasks.

When businesses discover a need for connecting CRM with a contact center platform, some of them start building a custom solution. A pre-built, flexible API-based integration saves a lot of time and money, compared to custom development.

Ultimately, the key to a great customer experience lies with a team of successful agents. Successful agents depend on merging of technology with people and processes, combined with training, and molded into a complete solution.


5 Questions to Think About When Planning System Integration

System integration planning is the process of incorporating smaller sub-systems into one larger system to ensure they all work together. Integration is a cornerstone of today’s enterprise environments with their multitude of enterprise resource planning (ERP) systems.

The power of those software applications does not lie only in the functionality that they provide themselves, but in their ability to communicate with one another, in order to make data flow seamlessly through the environment. This improves processes and makes a company more efficient as a whole.

When thinking of integration, web services standards such as SOAP and REST come to mind. Those are meant to simplify the integration with the large number of support tools that are built around them.

Unfortunately, the tools themselves are not the solution to your integration problems, but only the means to a faster implementation. The real solution is proper system integration planning and design, which need to be based on the right criteria. And that is not always the case in a project.

So, what are the best methods for the design when integrating two systems? Well, there are a number of questions that need to be answered in the planning stage.

Let’s go through these 5 key questions:

1. What is the data that the target system requires to complete the integration task?

Identifying the target data is an important first step. It defines what objects or tables need to be accessed, and the rules the data needs to comply to. Typically, the target data model drives the design of a custom integration point, should one be required.

2. Where is the data required by the target system located in the source system, and what transformations are needed?

Common examples for data types that need to be transformed are numbers and dates. For example, date formats and time zones may be different between the systems and have to be converted.

3. What is considered a transaction within the integration task and are there any dependencies between the transactions?

A transaction is an atomic unit of work. It only changes the state of the target system if the data was successfully transferred and processed.

If any failure occurs, whether it is during the transport or processing (i.e. validation), it must be ensured that the target system remains unchanged. For example, if a transaction creates multiple records in the target system (i.e. an account and a contact, and the account was successfully created but the contact failed the validation), it must be ensured that the account record is removed again. This way the target system has the same state at the end of the transaction as when it started.

4. How will you connect to the target system (domain name, IP, etc.) and what security constraints apply (certificates, credentials, etc.)?

Connectivity and security constraints should be identified and verified early on in the project. As those can often be reasons for a project to be delayed or even fail altogether. The reasons are manifold like: missing firewall rules, required certificates, setup of new security roles and credentials, protocol incompatibilities between source and target system – just to name a few.

From a technical perspective, most of those issues can be resolved. But it is often the processes or additional constraints that are only identified during the validation, which add more risk and effort to the system integration project.

For example, the target or source system may need to be patched up before they can communicate with one another. On the other hand, the networking team may need to open up the firewall and create new domain name (DNS) entries for the connection to be established. These are typically not very complex technical problems, but depending on the size of the company, they may require approvals and involvement of other groups requiring additional time.

In some cases, changes such as patching a system may introduce conflicts to other parts of the organization, which may make the integration much more difficult or even impossible.

 5. What interface options do you have available (REST, SOAP, Custom, etc.)?

The interface options have an impact on the tools and implementation design. This is because they help determine whether the solution must be entirely custom or whether productized solutions are an effective system integration method.

Creating the right design may not always include the path of the simplest or most straightforward solution.

The Influence of Transactional Requirements on the System Integration Process

To demonstrate the impact of transactional requirements on an integration design, let’s look at the example of an order submission from a Customer Relationship Management (CRM) system to an order management system (OMS). Before the order can be submitted, the system needs to ensure that an account exists since the order must be linked to it. If it does not exist, let’s assume the requirement is to create one as part of the integration as well. The account should only be created for a successful order submission, but not if the order submission fails.

The OMS provides a standard SOAP interface that allows for the typical data operations (CRUD – created, updated, delete) on the entities, such as account and order. It also provides the ability to create custom web service endpoints exposed through the same SOAP interface.

Now, choosing the standard SOAP interface has the advantage that no custom development is needed inside the OMS. The CRM can first create the account using the account interface and then create the order through the order interface. However, while this seems like a desirable approach for the implementation, there are disadvantages that need to be considered.

Since the account and order interface are separated by different endpoints, it requires two independent SOAP requests to submit the order. This means that the risk of a communication channel causing an error doubles. It also means that it requires an additional request to delete the account if the order submission fails to fulfill the transactional requirement for accounts to only be created with a successful order. That deletion request itself has the risk of failure, and that would leave the OMS in an invalid state, because the account exists, but the order does not.

Better Integration Planning

To address all those issues mentioned above, a custom endpoint could be created in the OMS that would consume the data for the account and order in a single request. The logic processing the request would have the ability to validate all the transmitted data for the account and order creation before even attempting to persist the information in the database. And it would be able to handle the cleanup of the account should the order entry fail.

On top of that, only a single request would be made from the CRM, which means less overhead, less risk of failure, and the overall integration process is completed faster than if using the multiple requests through the standard interface.

This is just one example. Of course, even though there are many reasons to consider custom endpoint in the given case, it does not mean that it is always an option to go down that path. Using the standard interface is obviously a feasible option as well, but it comes with increased risk and complexity, and that needs to be understood and included in the project planning.

Every system integration comes with its own challenges. Answering the questions listed above will help to solve those challenges the right way. In addition, if the right validations are done upfront to identify and address those risk factors around connectivity and security, it will just be a matter of time until the two systems are integrated with one another, boosting the productivity of your company.

Need help with your system integration plan?

Our enthusiastic and highly experienced team can assist with your software integration planning and contact center integration needs.  Let us know how we can help!

Softphones – Finding the Last Piece for Your Salesforce Service Cloud Puzzle

Many companies are using Salesforce Service Cloud with Omni to engage with customers and handle their service requests. With Service Cloud, you can connect with your customers through social media channels, email, and chat.  Setting up those features paints a great picture to your service team.

However, the picture is not complete because voice still remains the most important way for many businesses to communicate with their customers. Consequently, it is crucial to enable your agents to handle phone calls through the Service Cloud Console as well. Only then will the full picture of the customer journey be completed.

But Integrating the Voice Channel Can Be Tricky!

Salesforce offers voice capabilities through third party vendors that are using their Open CTI toolkit. As a customer, that means you are free to choose from a wide variety of vendors and products. Integrating the voice channel into Salesforce also means that there will be a second routing engine active, which is evidently not aware of Salesforce’s Omni routing engine, and vice versa.

This also extends to the handling of agent capacity and can make the management of your workforce more complicated. Agents will have to deal with two separate interfaces to select their presence status and handle the interactions, which introduces more complexity to their daily work and can lead to more mistakes.

Now, What Can Be Done About This?

One option could be to separate the voice channel from the other channels and have a group of agents (or multiple groups) dealing with phone calls exclusively. This will get you out of the Workforce Management and reporting nightmare, where you can use the reporting capabilities of the voice platform for your voice agents and Salesforce’s reporting capabilities for all other media types.

However, an increasing number of agents do not solely deal with phone calls anymore, but either operate in a blended environment handling multiple media types, or they work on back office tasks during times of low call volumes.

All of this requires a deep integration of the voice channel into Salesforce Omni in order to give your agents, and therefore your organization, the most powerful platform to build on the processes and customer service strategies.

While the softphone needs to fulfill your business needs first and foremost, I would recommend adding the following questions to your checklist when evaluating Open CTI vendors:

  • Does the softphone support both Open CTI frameworks, ̶  the classic and the lightning version?
    Although both integrations require the Open CTI framework, there are actually two different libraries available today. The softphone must be able to utilize the correct library for each of the user interfaces.
  • Does the softphone integrate with Omni’s or Live Agent’s user presence?
    Ideally, the agent should really only have one presence control, but if there are two of them, do they at least synchronize their states, so that one routing agent can be influenced by the other?
  • Does it support screen pop configurations beyond the simple contact or case search?
    Depending on your framework, you may have more things you want to look up based on IVR choices, or create and open multiple records. You may also want different screen pops at different times of the call (i.e. ringing, answered, or released). 
  • Does it properly record the phone call in Salesforce, with the correct records (case and contact/account) associated to it? 
  • Does the softphone provide an API for additional integration?
    An API would allow for the most flexible integration. Depending on capabilities, you might be able to create very sophisticated screen pop behaviors, provide softphone controls from Salesforce record pages, and it can be used to couple your voice channel very tightly with Salesforce Omni-Channel. 

Based on your needs, the perfect puzzle piece to complete your customer service picture may seem elusive. Nonetheless, looking at the above mentioned criteria very closely will help you to find a piece that will be a very good fit. As a result, your contact center agents will see a seamless workflow and your customers will have a better service experience – leading to the customer engagement goals that your business set out to achieve.

When to Move to a Push Model?

Are your team members spending at least 5-10 minutes a day “cherry picking” their work? If your team is handling lots of work items per day, then saving even 5 minutes per person can make a difference. It can increase productivity enough to have a cost, revenue, and customer experience benefit.

Notice that I said “lots of work items”. Why? Well, because to take advantage of the time savings from eliminating cherry picking, you’ll need to use that saved time to do work. So, if you save 5 minutes a day, and the average task takes about 5 minutes, then your team will be able to get more work done (probably 1 more work task per day). But if you save five minutes and the tasks take an hour, then it would be difficult to squeeze in more work.

The third thing is team size. I’m going to go out on a limb here and say that the time to consider moving to a push model is when there are at least 25 employees handling Salesforce interactions (e.g. email, social, chat) or work, such as cases or leads.

This is because moving to a push model needs to make enough of a difference to your operation – sufficiently valuable to be worth the cost of implementation.

If the team size is less that 25, it is unlikely that enough benefit can be accomplished with push. On the other hand, if there are more than 75 agents then a push model is likely already in use. If not, then justifying making the switch is typically easy.


So, if the team is between 25 and 75, then what? How can you tell if you need to consider a push model? Well, let’s start with a look at those two extremes:

  • At 75 seats, if you can save 5 minutes a day per person (with an average task duration of 15 minutes), then that would be like adding one full person to the team.
  • At 25 seats, the same benefit could be achieved if the average task duration is 5 minutes a day and each person can save only about 15 minutes per day.

So, a push model should seriously be considered if your team has these characteristics:

  1. Team is between 25-75 seats
  2. Likely time saved per day is 5-15 minutes (or more)
  3. The average task duration is 5-15 minutes (or less)

The payback would be less than a year, and likely just a few months. It would be even quicker if one or more of number of tasks, time saved, or team size are bigger than what were used here.

What I’ve attempted to do is to give Salesforce teams some numbers to compare themselves to, in order to decide to move to a push model. There are other factors that increase the benefits, which haven’t been factored it, such as eliminating manual re-prioritization of work and closer team monitoring, which can further save time, provide better customer experiences, as well as improve revenue. Factoring those in would simply add to the overall benefit, and further reinforce that it’s time to consider moving to push.

Team Growth Issues in the Real World – a Customer Example

Consider an organization that has the enviable problem of experiencing significant team growth over a short period of time. This happened to one of our clients!

Our client delivers a perishable product that streams content for live events. The content is available through an on-line subscription. As a forward-thinking organization, they adopted Salesforce – a world-class CRM system to help them engage their customers.

So, what issues does such an organization start to experience?

Significant growth creates an issue with staffing. They’ve got to have the staff available to sign-up customers, right? They may consider off-shore staffing solutions, in addition to internal hiring. No one can just hire willy-nilly – even with growth. There are budgets and profitability targets, so they need to understand how many people they need and when they need them. Organizations always need to focus on productivity.

Then, there is the issue of scheduling – you’ve got to know when you need all these new folks. You may have a workforce management (WFM) solution – but you need to make sure you can feed the new data to the WFM. How do you monitor employee presence and schedule adherence? In addition to agent productivity, this company has to be efficient with their resource scheduling.

Since this company hires new employees all the time, there are new people mixed with experienced people. There are senior people who’ve seen it and done it all. Like most companies, they want to send the straightforward and basic work to the new employees, and make sure that more experienced people receive the complex cases. This method optimizes sales conversion rates.

It all seems pretty straightforward, but there is no easy, automated way in Salesforce to intelligently push work to employees, so a third-party solution should be considered.

A “push” model is commonly used in the contact center world, and is a way of systematically delivering the right work, to the right person, at the right time. It is based on rules and works by knowing a person’s skill and availability and what work needs attention. Then, it matches that work to the skill and delivers it to the right employee that is available.

This animation video will tell you more about the issues of “Cherry Picking”, and will introduce our ‘push’ model solution.