Blog
Simple Volunteer Management
With Apex and Visual Force allowing more and more complexity to the implementations we deliver, I tend to forget that Salesforce provides very powerful built-in functionalities.
We started a project with a nonprofit organization that relies on about 1,000 volunteers. Their challenge was summarized in 2 questions: How to collect & track new applications from volunteers? How to capture the hours spent by volunteers?
For this project we were able to combine 2 Salesforce built-in functionalities to answer these questions.
Web2Lead
Web2Lead provides an easy way to capture Contact information online. Once submitted on your website, the information is stored in Salesforce automatically as Lead. For this project, we renamed Lead to Volunteer Application. Now that the basic volunteer information is in Salesforce, staff can review the application. Once the volunteer has gone through the volunteer recruitment process, the application is converted to a Contact. The Lead conversion process will check for potential duplicates.
Web 2 Case
Web 2 Case is a built in functionality in Salesforce that was originally designed for allowing customers to log tech support tickets. With minimal customization we re-purposed that for allowing volunteers to log their hours from the organization’s website. Once the volunteer submits the web form, a volunteer hour record (Case renamed) is created and automatically matched to the right contact record based on the email address.
One surprise was that we could not roll up total number of hours and the last/first volunteer date on the volunteer contact record. We had to write an apex trigger.
The end result is a simple yet robust implementation that meets the needs of this nonprofit and helps limit paperwork and save them time in data entry every day.
Visual Force
Last month we delivered our first component using Visual Force for an existing nonprofit organization using Salesforce.com. This organization helps families with children that have special needs. Families call the organization daily to request information, and a Case needs to be created in Salesforce to store all related information.
This is working great if the family already exists in the database… Create new Case, attach the right contacts (parent and child), etc. But what happens if it is a brand new family that does not already exist in the database?
Well…The case worker has to create a Contact usually a parent (the caller), one for the other parent, and finally one for the child. Once this is done a Case can be created to capture the requested information…all of that while being on the phone with the parent calling. This is very inconvenient and time consuming.
We decided to use Visual Force to simplify this process. We built a page that includes information about both parents, the child and the inquiry all in one

Spring 08 really? But it is snowing…
I know, I know, the release name could seem a bit off but the new features are there! This realease is packed with many enhancements but here are some I am particularly excited about:
- Opportunity Roll-Up Summary Fields on Accounts. You can now add all (or only some) opportunities under an account and bring the total into an Account field. For example, you can add all the organizational donations and show the total on a field on Account (Organization). More info
- Ideas. Have you ever looked on http://ideas.salesforce.com ? This allows you (the Salesforce user) to post and share your feature ideas. Others can vote/promote ideas. Some ideas become features in future Salesforce.com releases. It is a little bit like American Idol for Salesforce features. Now this functionality is available to you and you can create your own Ideas Community. An example would be to use this between board members to exchange ideas. If your organization is offering services, you could have an Ideas Community to allow your constituents to share their feedback and new ideas for your services.
- Outer Joins reporting. You now can create a report that will include records with related records AND without. For nonprofit organizations, this means you can now create a report that will show all the contacts who donated AND contacts who did not. More info
Dashboards: dashboard is a great feature in Salesforce. It helps you to drive your organization by providing you with graphical views of some key metrics. For example, a dashboard could show a pie chart representing the gender of the children your are serving, the average attendance of your workshops, how much money has been raised against your goal. Spring 08 brings some enhancements to this already great functionality:
- Dashboard refresh scheduling. You probably realized that unless you press the Refresh button above your dashboards the date will NOT be updated. You can now schedule dashboards to be refreshed automatically. More info
- Email dashboard. Instead of having to log into Salesforce to view dashboards, you can now send them via email. For example, you could now schedule to send the updated donations dashboard to all your board members before a board meeting or share a program performance dashboard with funders.
For the full list of features http://blogs.salesforce.com/features/spring_08/ and https://na5.salesforce.com/help/doc/en/salesforce_spring08_release_notes...
Do you hate custom object names?
When creating a custom object, you are posed with the dilemma of choosing a name. Often, you decide on a "Auto Number" which means that Salesforce.com will attribute a number automatically. You can even choose the format of this auto generated number. Great, right? True but visually the result is a bit confusing. Thought this number usually does not mean anything to you, it is still present in UI.
If we take the example of the "Contact Connection" custom object, what I care about is the contact and the organization I connect more than the Connection Name which looks like "CC-00XX". Here is an example.

It is hard to ignore this field because one needs to click on it to access the detail record page. This obviously results in many questions from users asking about this number and if a new procedure was put in place they have missed.
A trick I have seen in a demo last week at the Salesforce.com event in NYC is to create a formula field and enter the following code: HYPERLINK(Id,"View" ,"_self")
This will basically create a hyperlink to will bring the user to the record detail page.

The result is an interface a bit more intuitive.
