Importing Online Donations into Salesforce.com

Last Updated on Thursday, 1 December 2005 03:34 Written by Steve Thursday, 1 December 2005 03:31

As I mentioned yesterday, I’ve been working on an AJAX S-Control to import online donations into Salesforce.com. Well, version 0.1b of the Online Donation Importer is ready for sharing. But before we get to the S-Control, let me talk a bit about the overall process I came up with for importing online donations.

Nonprofits that want to take online donations can subscribe to services that authorize credit card donations via the web, and then transfer the funds to the nonprofit’s bank account. Small nonprofits aren’t in the position to build this type of functionality themselves, so most rent it from providers like PayPal, Auctionpay, or Network for Good.

What the nonoprofit gets from these services is money in the bank (hopefully) and a comma separated values (CSV) file of their donations. What to do with that CSV is where a lot of groups get stuck. Hand transfering that data to a donor management system is common. Problem is that many donor management systems aren’t very good at importing data like this. Others have explicit import routines for some online donors, that may cost money, or may not support the service that the nonprofit wants to use.

I wanted to try to create a process that could import data from any online donation provider to Salesforce.com. Since I work with smaller nonprofits, I was OK with some manual steps. If the donor was new, I wanted to create a new Contact and associate the online donation Opportunity with that Contact. If the donor already existed as a Contact, I didn’t want to create a new one.

Here’s what I came up with–I import the online donations as a special Lead type, and then find all the Contacts in Salesforce.com that are potential matches. The user then decides if the new donor is really one already in Salesforce.com, or a should be a new Contact.

Here are the steps:

  1. CSV of donations is dowloaded from online donation service
  2. LeadRecordType and Status fields with appropriate values are added to each line of the CSV
  3. CSV is imported to Leads via Sforce Data Loader
  4. Online Donations tab (an S-Control web tab) allows User to pick from a list of suggested matches for each Lead, or choose to create a new Contact
  5. Opportunity is created and Contact is created if necessary. Opportunity is correctly associated with Contact

Here’s what the S-Control does:

  1. The S-Control lists all the Leads of the online donation Record Type. When a Lead is selected by the user, the code searches for Contacts that share the email address with the lead.
  2. If none are found, it searches for Contacts with the same last name.
  3. It then presents the list of potential matches with an option to create a new contact.
  4. The user chooses from this list.
  5. If the User chooses to create a new Contact, one is created with a default account.
  6. An Opportunity is then created for the donation. The values of close date and amount are set correctly, the Opportunity is related to the Account of the Contact, and the OpportunityContactRole for the Contact is set to Donor. The Opportunity is marked as Closed Won.
  7. The User is presented with links to the Contact and Opportunity

It’s a semi-manual process, but because of the inherent fuzzy matching here, I don’t think it’s a process that can be fully automated. But, it could save a decent amount of data entry.

Take a look at the code, it’s fairly well commented, and would be easy to extend with new fields, different attempts at matching to Contacts, etc. Feel free to use it, and if you do I’ d love to hear about it.

Comments

Powered by Facebook Comments


4 Comments

  1. gokubi.com » Blog Archive » Quick demo of online donation S-Control   |  Tuesday, 06 December 2005 at 5:08 pm

    [...] gokubi.com « Importing Online Donations into Salesforce.com [...]

  2. Hudi Falik   |  Tuesday, 20 December 2005 at 4:41 am

    Hi there,
    thanks for the post. we alos use online donations and are in the process of making it work for us. right now we use the SF web-to-lead to create a new lead in SF. i’ve created that the custom fields map to either contact or opportunity to create new ones. We have purchased RingLead to take care of the duplication process. My issue with the process is that you have to hit so many clicks to convert etc. do you have any work-a-round for that?
    And what is your suggestion re setting up an automated credit card processing system? which one should i use?
    thanks so much!
    Hudi Falik

  3. Steve   |  Thursday, 12 January 2006 at 3:19 pm

    The web-to-lead-to-contact-to-opportunity is quite a process. I think an s-control could make that much simpler, but won’t ever remove the human step of determining if the donor is someone you already know or not.

  4. Blue Harvest? at Blog P.I.   |  Tuesday, 20 February 2007 at 8:22 pm

    [...] There are a few reasons why this breach is not what it could have been. For one, as Rahn emphasized to me, “To be clear, credit card data is never available from the web site, and thus was never at risk of compromise.” Additionally, CSV (that’s comma-separated values) files can be a bit of a pain, especially if you don’t really know what you’re doing. And of course there is one thing that may have occurred to you already: All of that information will eventually be released to the FEC. [...]

Leave a Reply