salesforce.com Chatter at Cloudforce London 2010

September 18, 2010

Cloudforce London 2010 – 8th September 2010 at Royal Festival Hall

During Cloudforce London 2010 I attended Marc Benioff’s keynote session where the theme was “Chatter”. Benioff was saying how he wished all enterprise software could be more like Facebook – it seems salesforce is positioning Chatter as some kind of “Facebook for the enterprise”.  He also announced Chatter Mobile which is supported on iPhone, iPad and BlackBerry (and later Android) and some of the demos below were done using these mobile devices.
 
Chatter ScreenChatter allows salesforce.com users to track data as well as people within their organisation – users can monitor information flow, for example open support cases, opportunity updates, price list changes as well as updated documents such as slide decks, account plans etc. 

Benioff said that he regularly taps into various information flows and uses it as an early warning sign and indicator of good performance or areas of concern.  A demo was given showing quick and easy real-time communication and collaboration and was compared to current enterprise collaboration, which rely heavily on email, embedded files and/or web links. Benioff said that it had reduced email usage, claiming a reduction of 40% within salesforce and also claimed that it has improved structured file sharing and versioning far better than say SharePoint.
 
Benioff went on to say that outside an organisation, when trying to find information about a product or solve a problem, today, most often people use google, twitter, facebook etc instead of contacting a company directly.  There was a demo showing how Chatter can also now monitor conversations happening in the outside world so that salesforce users who need to see what people are saying outside the organisation can do that alongside their internal Chatter conversations. A demo showed a twitter poster, as an example requesting customer support information.  The feed was received in salesforce by the customer support team, a knowledge base was referred to, and the answer posted back out via Twitter in real-time.  It seems that salesforce is still expanding this functionality by linking with Seesmic.  (Seesmic aggregates more than 40 social networks and geolocation applications and it was announced that it now aggregates Chatter too).
 
What was interesting is that Benioff claimed that nearly 25% of their current customer base (83,000 customers) has adopted Chatter within the past few months.  Also, in the Winter ’11 salesforce.com release, Chatter is to be switched on by default (which is unusual as you normally have to opt-in for such major features in new releases).

By the way if you are a customer and do not want Chatter auto enabled you can use the following online form. https://www.salesforce.com/form/contact/chatter.jsp
 
I began to look at Chatter last year as part of a developer beta and to be honest I was a bit sceptical – it seemed merely an attempt by Salesforce to extend the user base – by enabling collaboration within a company and thus requiring extra licenses in addition to the CRM teams. 

However the demos were impressive and the whole concept seems far more compelling.  Chatter is now free to current users and salesforce provide a Chatter-only license model to allow non CRM users to collaborate. (although there may be limits to what not CRM users can access as I believe only account and contacts are included ; opportunities may not)


Salesforce Quick Reference & Tip Sheets

June 3, 2010

I often have mixed emotions when starting work for any existing salesforce.com client and finally getting to see their established org for the first time. 

Often there are some really great design and innovative ideas in which the platform has been extended (which is great) but just as often I find myself puzzling why some things have been done (not so great).

One of the “not so greats” is the creation of custom fields to store data where there is already a perfectly adequate standard field.  For example “SIC Code”; “Annual Revenue”; “Industry” etc are all standard fields on the Account object.

Salesforce’s ease of field creation can create issues if some simple governance is not applied.

Fortunately salesforce has many great resources to help prevent this; here is a field names quick reference which list all the standard fields by object in a really neat PDF document.

https://na7.salesforce.com/help/doc/en/salesforce_field_names_reference.pdf

Of course sometimes the standard field name or data type may not be appropriate for the business in which case a new field justifiably needs to be created (but of course there are limits to the number of customisations that can be applied). 

This raises another issue I tend to encounter is understanding the customisation limits associated with a particular salesforce edition. 

In the early days it used to be a bit of a chore tracking these down either from memory, from the online help section or on independent blogs for the related function area but thankfully there is now a single reference PDF document that has the limits listed.  Excellent!

https://na7.salesforce.com/help/doc/en/salesforce_app_limits_cheatsheet.pdf

Finally I have discovered the following very useful page (non salesforce from www.cloud-consulting.nl) which lists many useful tip sheets, documents and quick references.

http://www.cloud-consulting.nl/en/Articles/Whitepapers/salesforcecom-tip-sheets-a-user-guides.html

Paul


Salesforce Schema

January 31, 2010

Salesforce Schema Documentation

Last week I attended the London Salesforce.com user group meeting where I had some very interesting conversations with other Salesforce.com developers and consultants – good to meet you all.

In one conversation I overheard a discussion about the Salesforce documentation and how it was apparently difficult to understand the way that the underlying structure all fitted together. 

Salesforce Sales Objects

Salesforce Sales Objects

I admit I had similar concerns in the past but find that the web services documentation to be absolutely superb in this respect and so passed this on and thought I mention it here too. 

Here is the link to the online documentation Force.com Web Services API Developer’s Guide  where the above diagram shows the sales objects.  To see the structure diagrams navigate to Reference – Data Model. 

What is particularly impressive is how the online documentation is so fresh and up to date.  Well done Salesforce documentation team. 

As an example here is the diagram for the products; you will notice that it includes Quotes which are coming in the Spring ’10 Edition – fantastic!

Salesforce Product Objects

Salesforce Product Objects


Pesky Calendar popup on Visualforce page load.

September 30, 2009

Stopping Calendar Popup on Visualforce page load.

Salesforce.com provides many useful field types from formulas and roll-up summaries to the simple URL field. 

One field that can be a little frustrating or rather the way it is rendered is the date field.

When including a date field on a page the user is automatically presented with a popup calendar whenever focus is placed on the field.

This is useful (hero Salesforce) and avoids the need to click a separate link or image to select from a calandar.

However this automatic display of the popup calendar is not always useful (or wanted). 

For example Whenever the date field is positioned as the first editable field on a page the focus is automatically placed there and the result is an unwanted popup when the page loads (zero salesforce).

 Date field popup calendar
Fortunately when developing a Visualforce page we can prevent the focus from being placed on a field  (and any potential calendar popup) when the page loads with the use of a javascript function.

Simply add the javascript function setFocusOnLoad() {} (just the function with no code) between script tags on the page and no longer do we see the popup calendar when the page loads.

Visualforce page - script setFocusOnLoad()


Salesforce.com Help Screen using Apex and Visualforce to read Setup Information

August 10, 2009

 

Salesforce.com Sales Stages Help Screen

Recently I was asked to change the sales stages configured in a salesforce.com org.

Visualforce PDF Sales Stages

Visualforce PDF Sales Stages

 After the configuration and then the manipulation of historic opportunity data I patted myself on the back, grabbed a coffee and thought job done… right?

Well not quite.. although the new sales stages had been well communicated in advance I hadn’t bargained for the number of sales and marketing users who were totally unaware of the new stages.

I needed to resend my notification email about the planned changes again and again and again…

the org is global with hundreds of users so I thought there had to be a better way.

So I wrote a help screen using Apex and Visualforce to read the actual setup and display the sales stages within Salesforce itself; the beauty being that both the link and the actual information is stored within Salesforce so should the sales stages change in the future the help information will change dynamically.

Having filled out the description of each Sales Stage during the configuration as below:

Stage Stage Description

Stage Stage Description

The APEX class and Visualforce Page was developed

clsHelpSalesStages Apex Class

clsHelpSalesStages Apex Class

public class clsHelpSalesStages
// Controller code for Help Sales Stage VisualForce Page Handler
// PGoodey Aug 2009
// Version 1.0
{
private List<OpportunityStage> opp_sales_stages;
public List<OpportunityStage> getSalesStages()
{
opp_sales_stages = [SELECT MasterLabel, IsClosed, IsWon, ForecastCategory,
ForecastCategoryName, DefaultProbability, Description
FROM OpportunityStage
WHERE IsActive = true
ORDER BY SortOrder ASC];
return opp_sales_stages;
}
public static testMethod void testMyController()
{
clsHelpSalesStages hSs = new clsHelpSalesStages();
List<OpportunityStage> oppStageTest = hSs.getSalesStages();
}
}
  

  

vfpHelpSalesStages Visualforce Page
vfpHelpSalesStages Visualforce Page
<apex:page controller=”clsHelpSalesStages” tabStyle=”Opportunity” renderAs=”pdf” sidebar=”false” >
<apex:form >
<apex:sectionHeader title=”Setupforce: Sales Stages Description. Date: {!NOW()}” />
<apex:pageBlock title=””>
<apex:pageMessages ></apex:pageMessages>
<apex:pageBlockTable value=”{!SalesStages}” var=”s” rendered=”{!NOT(ISNULL(SalesStages))}”>
<apex:column >
<apex:facet name=”header”>Name</apex:facet>
<div style=”background-color:{!CASE(s.ForecastCategoryName,’Closed’,’maroon’, ‘Omitted’,’#FFA07A’,
‘Commit’,’green’, ‘Funnel’, ‘blue’,’gray’ )};
color: {!CASE(s.ForecastCategoryName, ‘Omitted’,’black’, ‘white’)} ” >
{!s.MasterLabel}
</div>
</apex:column>
<apex:column value=”{!s.DefaultProbability}”></apex:column>
<apex:column value=”{!s.Description}”></apex:column>
<apex:column value=”{!s.ForecastCategoryName}”></apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>

Code done.  All that was now needed was to add the link to the users’ Home Page with the use of the Custom Links.

Sales Stages Help Added to Custom Links

Sales Stages Help Added to Custom Links

And that’s it – Users click the link at: 

Custom Link - Help Sales Stages

Custom Link - Help Sales Stages

And the following PDF is displayed.

PDF Sales Stages

PDF Sales Stages


Force.com Development Lifecycle Guide

June 23, 2009

Force.com Development Lifecycle Guide

This new guide describes how an IT organisation can build, test and deploy applications using a combination of Web-based and traditional development practices. It’s meant for IT architects, developers, and administrators who want to understand how the development process for a Force.com app is different from the development process of an app on another platform.

It offers a good overview of the stages in the application development lifecycle and covers:

  • Choosing and configuring environments for development, integration, testing, and staging
  • Planning the delivery of multiple applications on different schedules
  • Using development tools such as the Force.com IDE, Force.com Migration Tool, and Data Loader
  • Tracking and synchronizing changes from multiple developers
  • Migrating setup data between environments
  • Deploying to a production organization

Ref:  Salesforce.com 

http://blog.sforce.com/sforce/2009/06/new-book-the-forcecom-development-lifecycle-guide.html


Summer ’09 Release Preview Webinar – May 14

May 16, 2009
Salesforce Summer 09

Salesforce Summer 09

Summer ’09 Release Preview Webinar – May 14 2009

It’s that time again, (these last few months seem to have flown by!), when the Salesforce.com focus for me is on the next release preview and the preview webinar provided by Salesforce on Thursday May 14th 6pm (UK time).

This is the time when I always wish I had spend more time monitoring and adding my wishes for the CRM system to the ideas exchange area, many of which have found their way into the Summer ’09 release.

Of course the full set of release notes will be published in due course so I’m just covering the areas that grabbed my interest on a rainy Thursday evening in the Thames Valley in England and so these include:Chart Analytics 2.0

 

  • Analytics Enhancements
  • Visualforce code in Dashboards and Help
  • Picklists in Formulas
  • Workflow Visualizer

Analytics Enhancements

This includes Chart Analytics 2.0 and offers

  • Improved colour schemes
  • New chart types: funnel and donut
  • Data printed on charts

Visualforce code in Dashboards and Help

You can now use Visualforce Pages as components within dashboards and as help pages on custom objects.

Picklists in Formulas

Pick-lists

Finally there is no need to use the ISPICKVAL syntax when checking for selected pick-list values.  ISPICKVAL is still supported but you can now use TEXT functions and operators.  This is great news!

So instead of cobbling:

ISPICKVAL(Stage, “Closed Won”)
ISPICKVAL(Stage, “Closed Lost”)
etc.

You can use:

CONTAINS(LEFT(TEXT(Stage),5), “Closed”)

(I know you could use IsClosed Status here but this just an example)

Multi-Select picklists

Formulas can now use multi-select picklists.

Similar to SOQL queries there is now the new function INCLUDES which checks if one of the selected multiple values equals a given string. 

For example:

INCLUDES(Stage_Actions__c, “Quote Sent”)

With the new support for multi-select fields in formulas the following can all be used  : ISCHANGED; ISNULL; and PRIORVALUE. for example:

ISNULL(Stage_Actions__c)

Workflow Visualizer

This is in beta for Summer 09 and does not allow printing but the concept is superb.  It allows the graphical viewing of workflows.

Workflow Visualizer


Introducing Setupforce.com

August 5, 2008

setupforce

Setupforce.com – The Salesforce.com Setup Blog is provided by Paul Goodey, an IT professional with 20 years development experience living near London in the UK.

Having spent several years working in a combined applications development / Salesforce.com admin roles he is particularly excited by the development opportunities that Salesforce.com affords with its APEX and VisualForce technologies.

In addition to the technical and commercial setup and development of Salesforce.com it is envisaged that this site will also address related issues such as application and database integration; cloud development methodologies and general CRM best practices.

It is hoped that Setupforce.com will keep expanding in its content, but please let us know if you have any suggestions or would like to contribute.  Please, also, feel free to add any comments or questions to the posts and we’ll endeavour to answer them.