Tag Archives: Salesforce

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!

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.

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.