14 July 2016

Omni-Channel for Administrators

Omni-Channel for Administrators

Omni-Channel is a comprehensive customer service solution that lets your call center route any type of incoming work item—including cases, chats, or leads—to the most qualified, available agents in your organization. Omni-Channel integrates seamlessly into the Salesforce console-.
Available in: Salesforce Classic
Omni-Channel is available in: ProfessionalEnterprisePerformanceUnlimited, and Developer Editions

User Permissions Needed
To set up Omni-Channel:“Customize Application”
To modify permission sets and profiles:“Manage Profiles and Permission Sets”
Omni-Channel is a flexible, customizable feature, and you can configure it declaratively—that is, without writing code. Use Omni-Channel to manage the priority of work items, which makes it a cinch to route important work items to agents quickly. Manage your agents’ capacity to take on work items so that they’re given only the number of assignments that they can handle. You can also define which agents can work on different types of assignments. For example, you can create one group of agents to respond to leads and sales inquiries, and another group that helps customers with support questions.
Best of all, Omni-Channel routes all these assignments to the correct agents automatically. Agents no longer have to pick and choose work assignments manually from a queue, which saves everyone in your call center time, effort, and brainpower. Because it’s easier for agents to work on their assignments, they can assist your customers faster and more effectively and close assignments more quickly.
Let’s get started!
I'm liking this option but need to come back to it.  Don't see any options in the lookup list.
                     Update Status on Decline


Create a permission set and assign the customer support users to have this access...

Service Presence Statuses Access

Doing this will allow the users to be assigned to a Presence Configuration.


Choose Console Components - move to left in the app configuration setup.

So far so good.  Emails coming from customers are getting routed directly to the reps based on availability.



read up on this . 


ROLLING OUT TO PRODUCTION

7/21/2016

By matching what's in the sandbox this should be a swift update. 

Turn on Omni-Channel
Create a Service Channel, Support Channel for Cases
Create a Routing Configuration, US Email Routing 


Add the US Queue to this Routing Configuration
Presence Statuses, Busy and Online - Email


Presence Configurations, **  In order to add reps to the presence config I gave them Live Agent user access and don't forget. Create a permission set and assign the customer support users to have this access...  Service Presence Statuses Access

Set One 'From' address for reps to choose from.

Set One 'From' address for reps to choose from. 

Added Org Wide email address for the customer support email.  Verified the address
all this did was add another From address to the drop list to choose from.  
Trying to remove the personal email option to email from. 
Will this work?   Asking Mike if he can help. 


In lieu of code I've set up a validation rule instead. 


Validation Rule Detail

from_address_is_support_email_onlyChecked
NOT(FromAddress = "supporttest@company.com")
'From' Email Address must be Support...Top of Page
from address is support email only
Created ByModified By





Updated: 

OR (NOT(Incoming),(FromAddress = "supporttest@confirmation.com"))

7/20/2016 update

added filter that this only triggers the validation for the customer support role reps. 

AND 
(OR 
($UserRole.Id = "00E12000000Wu22", $UserRole.Id = "00E120000012x39", $UserRole.Id = "00EA0000000aY19", $UserRole.Id = "00E12000000FPvB") 
,(OR (NOT(Incoming),(FromAddress = "supporttest@confirmation.com") 


)

Setting this up for APAC too. 

AND 
(OR 
( $User.ProfileId  = "00e12000000bWKh",  $User.ProfileId  = "00e12000000fJ2B",  $User.ProfileId  = "00e12000000fJ2u") 
,(OR (NOT(Incoming),(FromAddress = "supporttest@confirmation.com") 
)

Notify Reps when customer responds to case.

Notify Reps when customer responds to case. 

Building this so that when emails come in from the customer reps can see a notification of that in a list view.
_____

Hi,

There is a workaround,  First you need to create a custom field or flag (Checkbox) on Case, The use workflow to update the field whenever a new email arrives,  Use this steps

To create the workflow rule that updates a case field on an inbound email:

  • Go to Setup | App Setup | Create | Workflow & Approvals | Workflow Rules and click New Rule.  
  • Select Email Message as the Object the workflow rule applies to and click Next (note that Email Message will only be available if email-to-case has been enabled in the org). 
  • Enter a name for the workflow rule and select when it should be evaluated.
  • Enter the following criteria to enable the workflow rule to fire when an email is inbound:
  • 'Email Message: Is Incoming' equals 'True'
  • Add additional criteria if you only want the workflow rule evaluated under certain circumstances such as Case: Closed equals True, or Case: Status does not contain Closed.
  • Click Save & Next
  • Click Add Workflow Action and select New Field Update
  • Enter a name for the Field Update and then select the case field to update.
 Then, You Can Create a list view based on Filter value using that custom field.

Note:- You have to update that field again via using Workflow once any step taken on the email.

Hope this helps,

--
Thanks,
Swayam

_____

Need to remove the New Email checkbox check after the case is replied to.
Done:


Re-Open a closed case when an email is received

Re-Open a closed case when an email is received


Knowledge Article Number000220076
DescriptionSometimes a case is closed, and then the customer replies with new information or a new issue. The email gets attached to the original case, however, since the case is closed, there's no notification that the customer is waiting on a response. We'll show you how you can use a simple workflow rule/field update to reopen such cases.
Resolution
  1. Go to Setup.
  2. Under "App Setup" or "Build" click Create | Workflow & Approvals | then Workflow Rules. 
  3. Click New Rule
  4. Select Email Message as the Object the workflow rule applies to.
  5. Click Next
  6. Enter a name for the workflow rule and select when it should be evaluated. 
  7. Enter the following criteria to enable the workflow rule to fire when an email is inbound and the case is closed: 
  • Email Message: Is Incoming' equals 'True.
  • Case: Closed equals True.
  • Please note that you can add more to the rule, but these are the only steps truly required
        5. Click Save & Next.
        6. Click Add Workflow Action.
       
 7. Enter a name for the Field Update and then set the Status case field to update.
        8. Select the value you would like the re-opened case to be set to, and then Save (please note, you might want to add a new Case Status value for "Case Reopened", to signify when one is reopened via email - you'll need to have that value created before you can select it.) 
                     9. Activate the rule, and you should be able to make it working. 

Putting this in now. 

Added the Case REOPENED item too.  Needed to update list views to add reopened cases to them. 

This gets me half-way there. 
If the customer emails back to an open or closed case we want the case to go back through the Assignment rules. (in case rep is out of the office or something)

came across this
I'll admit.  I have no idea what this code means but I've created an email Trigger (setup - email - triggers) and pasted the code in there. 
Posting the trigger here just to get it out there. 

trigger EmailMessage on EmailMessage (after insert) {
    List<Case> casesToAssign = new List<Case>();
    AssignmentRule ar = [SELECT Id FROM AssignmentRule WHERE SObjectType = 'Case' AND Active = true LIMIT 1];
    Database.DMLOptions dmlOpts = new Database.DMLOptions();
    dmlOpts.AssignmentRuleHeader.AssignmentRuleId = ar.Id;
    for(EmailMessage e : Trigger.new) {
        if(e.Incoming) {
            Case c = new Case(Id = e.ParentId);
            c.setOptions(dmlOpts);
            casesToAssign.add(c);
        }
    }
    update casesToAssign;
}

Created by frontendloader



When I was speaking with one of the support reps a few months ago, they were showing me what they did with emails from customers.  The rep who was going to handle a particular email notified the rest of the team that she was taking that email.   So, in order to eliminate this ambiguous case assignment I'm enabling Omni-Channel routing with the ability to push cases to reps.

Email address from Case not updating the Contact record. Here's the fix.

Email address from Case not updating the Contact record.   Here's the fix. 

Create a Process


 This will allow the case's email address to populate the associated contact's email address IF that contact's email address is not already populated. 

Have Cases Sent Back Into the Appropriate Queue if Customer Replies

Have Cases Sent Back Into the Appropriate Queue if Customer Replies

Our support team wants customer email responses associated with open or closed cases to go back into the Support Queue they were assigned to. 
Using the New Email field I created earlier I'm creating a Process that assigns Cases to queues based on the Account's region, Account Type AND when New Email IS CHANGED and IS TRUE. 

Working so far...


Issue: Some cases are closed and not associated with an account OR the account doesn't have a region assigned.  This flow will break.