Archive for March, 2006

Next week, lamb with roasted vegetables?

Tuesday, March 28th, 2006

I worte earlier about how wild salmon is one of the best foods in the world, and the great nonprofit Friends of Wild Salmon. One of my clients raises sheep when the fish aren’t running. She had to postpone a training a couple weeks ago because her sheep were lambing…and here they are!
lambs

Speechcasting: podcasting feeds for new website content in Plone

Tuesday, March 28th, 2006

Alan Runyan, one of the founders of the Plone open source CMS, just posted his latest proof of concept: speechcasting.

And then I started thinking, “What if every time I added a News Item on my website, if I could automatically generate a decent text-to-speech .mp3 file and use podcasting to keep people up-to-date?” After hacking on it I asked someone “Is this a good idea?” and they said “If I can read it why would I care to listen to computer generated voice?” and that confirmed it — people arent thinking about the visually impaired.

It sounds like a really interesting way to extend Plone’s world class accessibility to the realm of audio content.

NTC: A great 3 days

Tuesday, March 28th, 2006

I am just coming off of 3 days at the Nonprofit Technology Conference. I’ve dug my way out of my email, and put out the burning customer fires. Now I can reflect on it a bit.

This is my 4th NTC conference, and by far the most productive for me. I’ve spent the last 6 months engaging a lot of folks around Salesforce.com work for nonprofits, and I was able to meet face-to-face with many of them for the first time. As at most NTC’s, there was talk of collaborating, meeting on a regular basis, and generally keeping the good energy going moving forward. I’m committing to setting aside enough time for that to be possible, and I’m confident others will as well.

A few of us have decided to try to formalize our thinking about the Salesforce.com product and what it means to consult on it with nonprofits. My goals in this collaboration are manifold:

  • To share experiences with other nonprofit consultants and build relationships with these great people (you guys rock!)
  • To better my own consulting practice through the sharing of ideas, processes and code, thereby providing more value for nonprofits I work with
  • To support the Salesforce.com Foundation in the expansion and improvement of its giving program (you guys also rock!)

So to anyone interested in how Salesforce.com can be of value to nonprofits: If you’re willing to contribute and get great things back, come join the party!

Salesforce.com Affinity Group at NTC

Monday, March 20th, 2006

Just a reminder that I’ll be hosting an informal gathering of Salesforce.com users/implementers at 1 PM on Wednesday at the NTC that I mentioned earlier. Whether you’re a Salesforce.com user, or just interested in what all the buzz is about, come on over and join the conversation.

The meeting is scheduled for 1-3 PM. Check your conference program for the room location. I hope to see you there!

Wild Salmon

Friday, March 17th, 2006

Tonight, during dinner, I was thinking about the panel discussion I’m going to be a part of the Nonprofit Technology Conference in Seattle on Thursday. I had the pleasure tonight of broiling one and a half pounds of line caught Columbia river King salmon, and serving it with sauteed kale and cannelini beans, seasoned with bacon. If you haven’t had fresh, wild, Pacific salmon, you don’t know what you’re missing. Native North Americans in this area supplied a great percentage of their daily calories with salmon–fresh, smoked, dried. I have to assume that made them pretty content. At least until we got here.

What does salmon have to do with my panel discussion?

I’m currently building a CRM system with Friends of Wild Salmon up on the Skena river in northern British Columbia. We’re using Salesforce.com to help them in their efforts to keep open pen farming of Atlantic salmon out of their rivers. Open pen farming has been shown to lead to the destruction of native fish populations. If the pens come in, the salmon and steelhead will die out. It’s pretty much that simple.

I love salmon, but the fish aren’t the most interesting part of this project. the people who oppose these fish farms aren’t environmentalists. Well, some are. And others are sports fishermen who fly in from the US, Japan, and elsewhere. Others are commercial fishermen who make a living off the salmon catch. Some are Native North Americans, who believe that the salmon and their epic life journey is worth saving because it is nature, and nature is sacred. Others are fishing guides and lodge owners who get hired by fishing tourists. The diversity of support is fascinating, and makes Friends of Wild Salmon the broadest-based advocacy group I’ve had the pleasure to work with.

But it also makes it hard. When they talk to their supporters, they have to be careful. If you talk to a commercial fisherman about the sacred nature of the fish, you might not get very far. If you talk to a sport angler about the importance of the fish to the local economy, it may not resonate. If you talk to Native North Americans about the pleasure of a fly fishing expedition, you’ll likely not connect.

So we’ve worked with them in great depth on identifying the “audiences” their supporters fall into and honing the message for each audience. We’ve helped them implement a beautiful website and email newsletter tool that speaks to these audiences. And now I’m building them a database that allows them to keep track of their donors and supporters by the audience they are a part of. It’s very exciting as we’re helping them embed their communications strategy all the way through the tools they will use to implement it.

In my presentation at the panel discussion, I’ll be talking about this project and how strategy and technology come together to help Friends of Wild Salmon build relationships with it’s diverse supporters, all with the goal of keeping these amazing fish around for another millennium or two.

My First Appexchange Application

Monday, March 13th, 2006

I just wrote my first public application on Salesforce’s app sharing service, the Appexchange. It’s called Functional Documentation Embedded in Salesforce. I know, the name just jumps up and grabs you!

The app is built to help you document your business functions, or processes, and tie that documentation directly to the Salesforce.com fields that support it. I built it to solve my need to document my work for clients, and I’ve made it available at no charge. I’d love to hear what you think.

I’m also using the appexchange heavily for shunting pieces of customization between customer databases I’m building. It is incredibly helpful. If you work in Salesforce, you need to get to know how to use this functionality!

Last Activity, and Staying in Touch

Monday, March 6th, 2006

You can use Salesforce.com as a system for reminding you to contact major donors who you haven’t talked to in a certain period of time. Salesforce.com knows how long it’s been since you talked to your major donors if you record the emails and meetings you have with them as Activities in Salesforce.com. You can do this by creating activities by hand, or by using the Outlook integration Salesforce has built. The app then automatically records the “Last Activity Date”. You can see it by modifying the View on the Contacts tab–just add the Last Activity field.

activity

You an look at the last activity date to see when you last talked to someone, but then you have to do the mental math to figure out if that date is far enough out to warrant another contact. Turns out it’s easy to do this automatically.

I created a field called “Days Since Last Activity” which is a formula field that calculates the days from last activity. It looks like this:

IF(NOT(ISNULL({!LastActivityDate})),TODAY() - {!LastActivityDate},NOW()- {!CreatedDate} )

I don’t show it on the page layout for Contacts (you can put it there if you want), but it’s available for filtering in Views and Reports.

Sample use: to see everyone you haven’t talked to in over 60 days, filter for Days Since Last Activity > 60. Here’s a shot of the same view but filtered for people I haven’t talked to in 60 days:

activity filtered

You now have a tickler of people you need to contact that is automatically generated based on the last time you contacted them. Pretty helpful for making sure you’re keeping your key Contacts connected to the organization.

Handling People, Organizations and Households in Salesforce

Sunday, March 5th, 2006

I had a great conversation with Tucker MacLean last week about how to model the nonprofit world in Salesforce.com. Tucker is the Salesforce.com Foundation Fellow for 2006–he’s a Salesforce.com Coporation employee who is on loan to the foundation for a full year, with the task of doing what he can to make Salesforce.com more usable, accessible, and powerful for nonprofits. I’m really excited that he’s in this position–it shows a commitment by the corporation to improve the nonprofit version, and Tucker has tons of real-word experience with the application and getting it to work for real clients and their processes.

We talked about modeling gifts, membership, volunteers, and other processes, but the biggest issue facing nonprofits on Salesforce.com is how to model People, Organizations, and Households.

I have been raving about the flexibility of Salesforce.com on this site for quite awhile now. But nothing is completely flexible–some core architectural decisions are made in the development of all software, and those decisions have ramifications for how the software works. Long ago, Salesforce made the decision to focus on the model of sales where you are primarily selling to a business, and your interactions with other people are in suppoprt of that relationship between your business and the one you are selling to. So Salesforce.com does a great job for a shoe wholesaler who is selling shoes to retailers, but isn’t really built to help the shoe retailer sell to the individuals who come into the shop.

This focus on business to business sales (B2B) causes a problem for nonprofits. We deal directly with individuals when we get donations and memberships. We don’t really care what company these people work for–it’s our relationship with them as individuals that matters.

So what we really need is to have a Salesforce.com that is focused solely on business to individual interactions (B2I) and our worries would be over. We don’t care about B2B at all. Well, not exactly.

Ever apply for a grant from a foundation? You generally work with a grant manager during that process. They let you know what the foundation wants, and work with you to line up your plan with their giving desires. You then give them a proposal, which the grant manager takes away to closed door meetings, and a decision comes back to you. This is a classic B2B interaction. You’re working with a person, but you’re really dealing with the organization. Most nonprofits need to handle this kind of interaction.

So if we had B2B and B2I functionality, we’d be set, right? Still not quite there.

A nuance of that relationship with individuals that nonprofits have to deal with is households. If one donor lives with another donor, you want to be able to thank them as a unit, and send only one piece of mail to their residence. We want to know the individuals, and if they are tied to any other individuals in this way.

So let’s recap:

  1. Nonprofits need B2B for things like dealing with foundation grants. We need to work with people only in the context that they are employed by an organization we are trying to work with.
  2. We need B2I funcitonality so that we can work with individuals with no regard to whom their employer is.
  3. We have to be able to group those individuals in households for acknowledgement and direct mail

Oh, and here are a couple extra just to make things interesting:

  • Ever had a foundation employee make an individual donation to your organization? My org has. We shold be able to support that.
  • Ever had an individual donor work for a corporation who does matching gifts? We have. We should be able to know who an individual donor works for so we can make sure not to leave money on the table.

So, it’s really very simple when it comes down to it…it’s no wonder that nonprofits have trouble with CRM databases! The good news is that modeling all of these relationships is possible in Salesforce.com. I’m pulling togther a way to do it, and will write it up shortly. It’s really just gelling for me right now, but it feels like it will stand up to the light of day. We’ll see.

Sonny’s got me thinking again

Friday, March 3rd, 2006

Every time I hear from Sonny about Salesforce, I spend the next few hours ruminating about schemas, custom code, and how to model some process in Salesforce. This time it was his comments about prospecting gifts and how he models pledges. After a day of thinking about it, here’s how I understand the process:

  1. A pledge is really just a stage in the receipt of a gift. It’s when a person has decided to give but hasn’t given yet. It has a fairly high likelyhood of coming through, but not 100%, that’s for sure.
  2. When a gift gets to the pledge stage it can turn into money in the bank in two ways: the donor could write a single check for the whole amount, or the donor could agree to make installment payments that add up to the full amount of the pledge. Either way, the sum of the gifts should equal the original pledge amount (or close to it)>
  3. Either way the pledge is fulfilled, it should recurr on an annual basis. The donor should be asked for another pledge/gift a year out from the date of the received pledge

And here’s how I’d model it based on this generic process:

  1. Gifts and pledges are both Opportunities
  2. The Gift donation process has multiple stages. There is a “pledge” stage that has a probability between 50% and 80%, depending on how optimistic you are.
  3. If the pledge turns into one full-sum gift payment, the stage of the pledge is changed to “Closed Won”, and the payment is received. An Opportunity for the same amount (or a little more) is created for one year out with a prospecting probability. This will be a reminder to ask again in a year.
  4. If the donor decides to make installment payments, a custom field called “pledged amount” is populted with the Opportunity amount.
  5. A payment schedule is drawn up, and new Opportunities are created with close dates that correspond to the scheduled payments. These Opportunites may have a checkbox checked indicating they are pledge payments.
  6. At this time, an Opportunity is created a year out for the pledged amount (or a little more) with a prospecting probability. This will be a reminder to ask again in a year.
  7. Each payment Opportunity is identified as being tied to the original pledge Opportunity. You can’t create a Salesforce relationship between two Opportunities, but we can fake this through the use of S-Controls for creating the payments. We can effectively relate the pledge payments to the pledge.
  8. As a payment comes in, the existing payment Opportunity is updated to stage Closed Won. The amount of the payment is subtracted from the amount of the pledge, so that the received payment and the remaining amount on the pledge add up to the original pledge. The “pledged amount” field is untouched, keeping a historical record of the full pledged amount.
  9. This is repeated with each payment, drawing down on the pledge until it is $0, and the payments add up to the original pledged amount. We can’t do this in real time, because we have no access to the “save” event on the payment Opportunity. If we did, we’d just call some code that would deduct the payment from the pledge Opportunity amount. We can do this in batch, on a schedule, though. Every day, or week, all pledges and pledge payments could be reconciled in an S-Control that might take 1 minute to run.

You can see all pledges by filtering all Opportunites with Stage = pledge. You can see all pledge payments by filtering for Opportunities that have the pledge payment checkbox checked.

I think that’s it. I think it holds together. Poke holes in it, and let me know via the comments. I’d love to hear of problems you see, or ideas you have for doing it differently.

Two notches on my belt

Thursday, March 2nd, 2006

I realized today, much to my horror, that I may be the world’s leading authority on migrating from ebase 1.0 to Salesforce.com. That’s not saying much, as I only have two notches on my ebase belt, but I suspect that might be more than most people you’d meet on the street. The intersection lozenge in the ven diagram of the ebase world and the salesforce.com world is a lonely place.

Now I’m staring down the barrel of two more ebase 1 migrations. Has anyone out there done ebase to salesforce.com migrations? Want some work? Please contact me to claim your title as World Ebase to Salesforce.com Migration Expert. I’ll throw in a set of steak knives…