23
Developing Applications for the Service Cloud Developers Gautam Vasudev: salesforce.com Scott Sanders : Stone Cobra

Df10050 vasudev

  • View
    997

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Df10050 vasudev

Developing Applications for the Service Cloud

Developers

Gautam Vasudev: salesforce.comScott Sanders : Stone Cobra

Page 2: Df10050 vasudev

Session Objectives

Develop requirements typical of a customer service

organization to Service Cloud functionality

Discover new functionality in the Service Cloud like

Entitlements and Service Cloud Console that enable

goals of the customer service organization

Page 3: Df10050 vasudev

Session Outline

Entitlement Management and Entitlement Processes – Setting up a First

Response Milestone

Variations on ownership changes: The Get Next Case and Get Next Lead

button

The Service Cloud Console Integration Toolkit: Developing with the

Service Cloud Console

30 Minutes

Stone Cobra Service Cloud Console Integration

15 Minutes

Q&A

15 Minutes

Page 4: Df10050 vasudev

Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year ended January 31, 2010. This documents and others are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 5: Df10050 vasudev

Entitlements & Service Contracts – An Introduction

Define service levels for support products and

programs

Manage customers’ entitlements & service contracts

Verify customers are eligible for support

Enforce detailed service levels with time-dependent,

automated processes

Page 6: Df10050 vasudev

A First Response Milestone

Represents how quickly your support organization must

respond to a customer case

Often defined as the elapsed time from when a case is

opened until a member of the support organization

starts diagnosing the problem

Usually marked by notifying the customer that their

issue is being addressed either via email, a comment

on the case or both

Page 7: Df10050 vasudev

Case Comment First Response Milestone

Objective – Set up first response milestone with triggers

Demo, Code , milestoneUtils

Page 8: Df10050 vasudev

Auto-completion of First Response Milestone: Code Snippet

1 trigger completeFirstResponseCaseComment on CaseComment (after insert) {

2 if (UserInfo.getUserType() == 'Standard'){

3 DateTime completionDate = System.now();

4 List<Id> caseIds = new List<Id>();

5 for (CaseComment cc : Trigger.new){

6 if(cc.IsPublished == true) // Only public comments qualify

7 caseIds.add(cc.ParentId);

8 }

9 if (caseIds.isEmpty() == false){

10 List<Case> caseList = [Select c.Id, c.ContactId, c.Contact.Email, c.OwnerId, c.Status, c.EntitlementId, c.SlaStartDate, c.SlaExitDate

11 From Case c Where c.Id IN :caseIds];

12 if (caseList.isEmpty() == false){

13 List<Id> updateCases = new List<Id>();

14 for (Case caseObj:caseList) {

15 if ((caseObj.Status == 'In Progress')&&

16 (caseObj.EntitlementId != null)&&

17 (caseObj.SlaStartDate <= completionDate)&&

18 (caseObj.SlaStartDate != null)&&

19 (caseObj.SlaExitDate == null))

20 updateCases.add(caseObj.Id);

21 }

22 if(updateCases.isEmpty() == false)

23 milestoneUtils.completeMilestone(updateCases, 'First Response', completionDate);

24 }

25 …

Page 9: Df10050 vasudev

No Cherry Picking – The Get Next Case Button

Call centers sometimes want to prevent agents from

cherry-picking cases and leads from queues those

agents belong to

Easily done in salesforce.com by –– Looking up the queues that the agent is a member of

– Finding the next open case or lead assigned to one of those

queues

– Assigning the case or lead to agent

Page 10: Df10050 vasudev

Get Next Case and Get Next Lead button

Objective – Create a “Get Next” button to assign cases/

leads to agents

Demo, Code, Get Next Case Button

Page 11: Df10050 vasudev

Get Next Case – Code Snippet1     webService static Id retrieveNextCase(String userId){

2            …

3         //First find out which queues this user is a member of

4         List<Id> listGroupIds = getQueuesForUser(userId);

5         if(listGroupIds.size()>0){

6             //Find an open case that is assigned to one of those queues

7             Case caseObj = [select c.Id,c.OwnerId from Case c where

8                                                         c.IsClosed=false

9                                                         and c.OwnerId in :listGroupIds

10                                                         limit 1

11                                                         for update];

12             if (caseObj!=null) {       

13                 //If we found one, assign it to the current user

14                 caseObj.OwnerId = userId;

15                 update caseObj;

16                 return caseObj.Id;

17             }

18         }

19         return null;

20     }

Page 12: Df10050 vasudev

Service Cloud Console

Many customers have high transaction volume

environments

Agents are not always able to wrap up a case

Agents require contextual information

Fewer clicks make better user experience

Easier navigation makes learning easier

Page 13: Df10050 vasudev

Developing with the Service Cloud Console

Objective – Use Service Cloud Console Integration

Toolkit to open tabs within the Service Cloud Console

Demo, Code

Page 14: Df10050 vasudev

Service Cloud Console Integration – Code Snippet

1 <apex:page showHeader="false" sidebar="false" standardController="Bill__c">

2 <apex:includeScript value="/support/console/20.0/integration.js"/>

3 <script type="text/javascript">

4 <!-- Set the title of the current tab -->

5 function setTitle() {

6 sforce.console.setTabTitle('Bill 09/2010');

7 }

8 function goToBalances() {

9 <!-- Open a subtab under a given primary tab -->

10 var loadScreen =

11 function loadScreen(result) {

12 sforce.console.openSubtab(result.id,'/apex/OracleBilling3',true,'Balances');

13 }

14 sforce.console.getEnclosingPrimaryTabId(loadScreen);

15 }

16 </script>

17 <img src="{!$Resource.OracleBilling1}" usemap="#bill" border="0" onload="setTitle()"/>

18 <map name="bill">

19 <area shape="rect" coords="571,431,742,459" href="javascript:goToBalances()"/>

20 </map>

21 </apex:page>

Page 15: Df10050 vasudev

Scott Sanders

Stone Cobra

Page 16: Df10050 vasudev

Service Cloud Console – Benefits

First Javascript API built specifically for partners

Improved performance– Fewer objects in a transaction

– Smaller page size, faster response time, fewer re-loads

Richer user experience– No longer limited to ‘just a related list’

– Need a VF component on the page in edit mode?

– Better way to show sibling or child relationships

Better Salesforce citizen– No need to take over an entire page to add a feature

Page 17: Df10050 vasudev

Service Cloud Console – Best Practices

Smaller pages– Focused features improve UX, code maintenance

– Prevents duplicating existing work (no need to override the

case page)

Discipline for componentization– Code level – think re-use

– Package level – do one thing well

Prepare for the Service Cloud Console– Test pages in both modes

– API defense (checking for one mode if necessary)

Page 18: Df10050 vasudev

Service Cloud Console – Tips & Gotchas

Pre-load console tabs on case open– Zero height VF component can open multiple subtabs

automatically via JS API

Think user experience, not data model– Task completion is the goal, not just listing fields

Javascript Debugging can be challenging– If you run into problems, open the page outside the console

VF Page Editor doesn’t show in console mode– Use Eclipse to do quick VF editing

Page 19: Df10050 vasudev

Q&A

Questions

Best Practices

Useful Links– Developing With The Service Cloud-

http://wiki.developerforce.com/index.php/DevelopingWithServiceAndSupport

– Service Cloud Console Integration Toolkit Developer's

Guide -

http://www.salesforce.com/us/developer/docs/api_console/index.htm

Page 21: Df10050 vasudev

Thank you!

Page 22: Df10050 vasudev

D I S C O V E R

Visit the Developer Training and Support Booth in Force.com Zone

Discover

Developer

Learning Paths

Developer training, certification and support resources

S U C C E S SFind us in the Partner Demo Area of

Force.com Zone 2nd Floor Moscone West

that help you achieve

Learn about Developer

Certifications

Page 23: Df10050 vasudev

How Could Dreamforce Be Better? Tell Us!

Log in to the Dreamforce app to submit

surveys for the sessions you attendedUse the

Dreamforce Mobile app to submit

surveysEvery session survey you submit is

a chance to win an iPod nano!

OR