Wednesday, December 31, 2014

Salesforce: Opportunity Age and Stage Duration

Few months back, we discussed Last Activity date fields, which only available in  Report, List View, and API (including Formula Field, Workflow and Validation Rule) for Account, Contact, Opportunity and Lead object.

This blog will cover 2 more fields : Age and Stage Duration. These fields only available in Standard Opportunity report type, but not using custom opportunity report type.

For open opportunity, the number of days since the opportunity Created Date until Today.

For closed opportunity, the number of days between opportunity Created Date until Close Date (not when it closed). This include Closed Won and Closed Lost opportunities.

Stage Duration
The is number of days of opportunity from the date when opportunity change to current Stage until Today. The number of days still counting even for closed opportunity. You can monitor Last Modified date in Stage History of opportunity related list .


Thursday, December 25, 2014

Salesforce: Subscribe Report in Classic

Coming to Spring '15, Salesforce introduce ability for user to Subscribe for reports they care about most. This is not the same with Schedule report for future run, which enables you to email reports at specified times (without specifying conditions).

But here, you subscribe to reports and receive notifications daily, if conditions that you specify are met. You do not need additional permission to subscribe report, but your admin able to disable this feature for the whole organization.

To subscribe to a report, user define set of conditions to trigger:
  • When: every time conditions are met OR only the first time
  • Conditions: aggregate of field in the report, which is record count or a summarize field, then define the operator and value
  • Schedule frequency: weekday, daily, weekly and time
  • Actions:
    • Salesforce1 Notification
    • Post to Chatter Feed, 
    • Email Notification
    • Execute a Custom Action
Use Case: user would like to get notification to Salesforce1, email, and also Chatter feed once Closed Won opportunity for the month has reach $50,000

1. Create Report
Make sure the report has the right filter, right Close Date time frame and Amount field summarize.

2. Subscribe 
Click Subscribe button,enter the condition, frequency, actions and activate it.

3. Test and Save
Rather than wait until the time it trigger, you can test it straight away by click "Save & Run Now" button. So here is the result:

Salesforce1 Notification
Open your Salesforce1 mobile app, look for the notification icon, notice a new alert from report you subscribed.

If you click the notification, it will bring you to the report.

Chatter Feed
If you select Post to Chatter Feed, the same alert will go to your Chatter feed as well, click the link to open the report in your Salesforce1 mobile app or from web browser.

Email Notification

For Custom Action, notifications can trigger a custom Apex class. The custom Apex class must implement the NotificationAction interface. 

This feature will be available by default for all user able to run the report, but system admin able to turn off this feature for the whole organization wide, navigate to Setup | Customize | Reports & Dashboards | Report Notifications

To monitor users subscribe for report notification, admin can navigate to Setup | Jobs | Scheduled Jobs, look for Type = "Reporting Notification"

  • Up to five conditions per report
  • One user can subscribe to notifications for up to five reports


Sunday, December 21, 2014

Adding Quota in Collaborative Forecast

This would be another blog on Collaborative Forecast, see adding Opportunity Split and Configuring Collaborative Forecast blog earlier.

What is Quota?
  • Revenue target or sales goal within a time frame
  • To keep track of performance against plan
  • Keeps revenue goals in sight
  • Can be expressed as dollar amounts, units or product or both.
Back to Universal Container scenario, each sales rep should have quota they have to achieve as part of their performance. Here is the role hierarchy:

Each user have their own quota, include Sales Manager and Country Manager.
Each user also owned opportunity, the opportunity number of Sales Rep will roll-up to their Sales Manager, and Sales Manager number will roll-up to the Country Manager. So, all number will roll-up to the user in top hierarchy.

1. Enable Quota
Navigate to Setup | Customize | Forecasts | Settings, enable Show Quotas and click Save button.

2. Set User Quota
Until Winter '15 release, there are no manual to load or set quota to user manually from Salesforce website, You have two option:
  1. Use Data Loader to load quota to all users, see the details and step-by-step here Load Quota Data for Forecasts
  2. Install an app from AppExchange called Edit Quotas, this is a free app developed by Salesforce Labs, although it is an app salesforce from salesforce labs, but it still consider as external app, meaning no support from Salesforce support.
You need to select a Forecast Type for each quota (if you have more than 1 forecast type). 
The data loaded in Salesforce to Forecasting Quota object, you can use any API to check and confirm it loaded successfully.

3. Forecasts with Quota
Now, it's time to confirm if it works. Click Forecasts tab, you should see a new column Quota at the left before all 4 columns for Forecast Category value.

When you click the period, as user in top role hierarchy, you will see all opportunity number will roll-up to the Forecast Category included opportunity owned by the user itself, it showed as "My Opportunities" after all direct user in the Period. 

Each user will have their own quota and it is not related to the quota owned by other user in the role hierarchy.

Notice at the top right area, you will see new link Display Options, you can enable to show Quota % Attainment.

Once you select Show Quota % Attainment, it will show percentage of amount for each user compare to the quota for each Forecast Category.

When you drill down to your sub-ordinate, it will show the same thing for people under that sub-ordinate.


Saturday, December 20, 2014

Adding Opportunity Split in Collaborative Forecast

In the previous blog, we discuss basic setup to implement Collaborative Forecast in Next, we will continue with adding Opportunity Split into the forecast. Opportunity Split allowing team members share sales credit for an opportunity.

1. Add Forecast Type
Remember that we can only have a maximum of 4 forecast type. To enable forecast by Opportunity Split, navigate to Setup | Customize | Forecasts | Settings. Click + Add another forecast type link and select Opportunity Revenue Splits.

Select the columns that you want to display in the list of related opportunities. I would suggest to add following fields Opportunity Name, Account Name, Forecast Amount, Amount, Split, Owner Full Name, Close Date, Stage and Forecast Category.

Click OK button to continue, Opportunity Revenue Splits will be shown in Forecasts Settings page. Remember to click Save when done, otherwise new forecast type added will be lost.

2. Add Opportunity Splits
In the opportunity page layout, make sure Opportunity Splits and Opportunity Team is visible. The opportunity owner is automatically included in the opportunity team and initially assigned 100% of the split types that must total that amount. Before adding a user into Opportunity Splits, that user must be added in Opportunity Team.

For Split on Opportunity Amount, each split assignment for this split type must total 100%. Enter the member name, adjust percentage of the owner, amount will be auto calculated.

3. Forecasts with Opportunity Split
Now, it's time to confirm if it works. Click Forecasts tab, you should see a new value Revenue Splits in the dropdown of forecast type, click this forecast type.

When you select a period, it will show all opportunities with close date on that month owned by you and or people under your team. Notice in Split column, opportunity with split will show 100 %, while the one without split shown with ---

If you click the split value, in this case 100%, it will show you the split details.

When you click the user name, opportunity information will be refresh and it will show exact Split percentage. If you see here Forecast Amount is Split percentage multiply by Amount, it doesn't effect with the Probability.

For Forecast using Overlay Splits, see this blog Setup Overlay Splits Forecasts.

Friday, December 19, 2014

Configuring Salesforce Collaborative Forecast

What is Forecast?
  • Revenue projection or aggregates of individual opportunities
  • Can be expressed in dollar amounts, unit of products, or both
  • Individual forecast roll up into the forecast for entire sales organization

Background: Universal Container would like to implement Forecast based on opportunity Amount, Expected Revenue, Margin and Expected Margin. Margin and Expected Margin is custom currency field in opportunity.

Solution: to implement Collaboration Forecast, the old Customizable Forecast (before Winter '12 release) do not support to forecast by custom field. For complete different between Customizable Forecasts with Collaborative Forecasts, see reference below.

1. Key Fields
There are five fields of opportunity are important for the forecast:
  • Amount - when you select Opportunity Revenue as Forecast Type, this value rolls up into forecast aggregates
  • Expected Revenue - this value calculate Probability multiply by Amount, you can use this value as a Forecast Type 
  • Forecast Category - populated by default by sales stage, admin can hide this field from opportunity page layout to disable user possibility to change forecast category. This aggregate summary of amount into forecast
  • Probability - represent the likelihood of the opportunity will be close, by default admin set the probability for each stage, but user able to overwrite it
  • Stage - identify where an opportunity in the sales pipeline

2. Setup Opportunity Split
Even Universal Container does not have requirements for Opportunity Split, but to enable custom currency field for you need to enable Opportunity Split.

Note: the custom field needs to be currency field, not a number and not even formula with return currency.

Opportunity Split lets team members share sales credit for an opportunity. Multiple team members working on an opportunity can roll their individual sales credits into quota and pipeline reports for the entire team.

To setup Opportunity Split, navigate to Setup | Customize | Opportunities | Opportunity Splits | Settings.

If you do not see Opportunity Splits menu, you need to enable Opportunity Teams, navigate to Setup | Customize | Opportunities | Opportunity Team Settings

Click Set up Opportunity Splits button. By default, it will activate Revenue and Overlay. For our case, since we do not need Overlay, just disable it. Click + Add a new split type to add Expected Revenue, Margin and Expected Margin, tick all for 100%. Click Save button and make sure all Split type is Active

3. Enable Forecast
Navigate to Setup | Customize | Forecasts | Settings - click Enable Forecasts

Click Add a Forecast Type link, for Amount, select Opportunities, click OK to continue then click link + Add another forecast type
- Expected Revenue, select Expected Revenue from dropdown value
- Margin, select Margin from dropdown value
- Expected Margin, select Expected Margin from dropdown value
If you do not see any of them, make sure they are added in Opportunity Split. Click Save button to save.

4. Forecasts Tab
If users get an error message or Introducing Forecasts page when clicking this tab, make sure Allow Forecasting is enabled for the user in the user detail.
If users do not see Forecast tab, even after click + tab at the right, check user profile and make sure Forecast in Standard Tab Settings is not Tab Hidden.

When you click forecast tab, it will show forecast based on your forecast setting in "Configure the default forecast display". Column show here is based on Forecast Category values defined, except Omitted.

When you click forecast for a month, it will show all opportunities with Close Date for the month at the bottom panel. Each forecast type may have the different column of the opportunity information. To modify column shown in this table, go to Forecast Setting and click the Forecast Type. See the last screenshot above.

Notice that you can change forecast type in the forecast page use dropdown value, when you select a new type, all values in the forecast and opportunity table layout will be updated as Forecast Type selected.

In Customizable Forecasts, the forecast categories reflect aggregate information; for example, Pipeline contains amounts for all open opportunities (excluding omitted), see this blog for the detail.

In Collaborative Forecasts, the forecast categories display information for that specific category; for example, Best Case only reflects amounts in the Best Case category, or to Enable Cumulative Forecast Rollups.


Thursday, December 11, 2014

Salesforce: Report Time Frame

In Salesforce, when we run a report, there is a Time Frame option predefined and available for us to use, see below list. But it will not have ALL date range as we want.

Fiscal Year
Current FY
Previous FY
Previous 2 FY
2 FY Ago
Next FY
Current and Previous FY
Current and Previous 2 FY
Current and Next FY

Fiscal Quarter
Current FQ
Current and Next FQ
Current and Previous FQ
Next FQ
Previous FQ
Current and Next 3 FQ

Calendar Year
Current CY
Previous CY
Previous 2 CY
2 CY Ago
Next CY
Current and Previous CY
Current and Previous 2 CY
Current and Next CY

Calendar Quarter
Current CQ
Current and Next CQ
Current and Previous CQ
Next CQ
Previous CQ
Current and Next 3 CQ

Calendar Month
Last Month
This Month
Next Month
Current and Previous Month
Current and Next Month

Calendar Week
Last Week
This Week
Next Week

Last 7 Days
Last 30 Days
Last 60 Days
Last 90 Days
Last 120 Days
Next 7 Days
Next 30 Days
Next 60 Days
Next 90 Days
Next 120 Days

When you implement Custom Fiscal Year, you will get additional option:
Fiscal Period
Last FP
This FP
Next FP
Current and Previous FP
Current and Next FP

Fiscal Week
Last FW
This FW
Next FW

Use Case 1: get all opportunities with Close Date = Last 3 months, example: now = 11 Dec 2014.
So, we would like to show all opportunities close date from 1 Sep 2014 – 30 Nov 2014.
With above available Time Frame option, we do not have option to filter by Last 3 Months.

In the Time Frame, leave it Custom and set both From and To = blank
Add a filter Close Date equals LAST 3 MONTHS
See this blog for sample of using Relative Date Value

Use Case 2: get all opportunities with Close Date = Year-to-date (YTD), as of Wikipedia, YTD = Year-to-date is a period, starting from the beginning of the current year, and continuing up to the present day.  
With above available Time Frame option, we do not have option to filter by YTD.

In the Time Frame, leave it Custom and set both From and To = blank
Add a custom formula field in Opportunity with return type = Chekcbox, applied this formula YEAR(Today()) = YEAR(CloseDate) && Today() >= CloseDate
Example the field name is YTD, use this field as report filter YTD equals True

Monday, December 1, 2014

Salesforce: Opportunity in Campaign

Last year we wrote a blog what happened when we convert a Lead to Account and Opportunity and how it reflect in Campaign Influence & Primary Campaign Source in Opportunity.

You will notice that Primary Campaign Source field in Opportunity is always the same with selected Primary Campaign Source in Campaign Influence. But, only one campaign can tick as Primary Campaign Source in Opportunity.

From above screenshot, you notice two campaigns related in Opportunity Opty Hello, but My One is the one marked as Primary Campaign Source.

Now, if we go to Campaign and look for both campaigns above. There is Opportunity related list in the Campaign. But only in campaign selected as Primary Campaign Source (for this case My One) , the Opportunity will be displayed. For the other campaign You Two, although it is listed in the Opportunity page layout, it will be not shown in Campaign, because it is not Primary Campaign Source.

This is out of the box Salesforce functionality and no way to modify it, unless you totally do not want to use Campaign Influence & Primary Campaign Source, you can create junction object to relate Campaign and Opportunity.

Page-level ad