Cloud for Good
Close this search box.

Navigating NGO Connect Batch Upload

Though we’d all love for all vendors to have seamless integrations with Salesforce, the truth is some of the vendors nonprofits work with do not. When this is the case, you’re faced with inserting data created by your vendors into your Salesforce environment. Examples of these types of files could be checks deposited to your organization’s bank account, lists of donors that were gathered at an event, in the field where there was no internet connection, or a list of names and emails received from a sponsored event.

Today we’re going to talk about inserting this data into NGO Connect, the newest application from the Salesforce Foundation. One of the built-in features of NGO Connect is a handy tool called Batch Upload. Batch Upload can insert data on the following supported objects: Account, Contact, Opportunity, Address, Special Allocation (General Accounting Unit), Credit, Products, Preferences and Payment Method. It can update data on all objects except Special Allocation (General Accounting Unit) and Credit due to the nature of those objects.

You will need to work with your vendors to provide you with a clean and accurate .csv file that contains all relevant information for your organization’s business requirements. The files you receive from your vendor should have a header row that identifies each column so that you can easily insert the records into the Batch Upload tool.

Now that you have the nice, clean data from your vendor how do you populate the Batch Upload records? You can use  Data Loader, LexiLoader (if you’re using a Mac) or Data Loader IO or any other data loader tool you prefer. Like any other data insert, you’ll need to map your data columns into the corresponding NGO Connect Batch Upload fields.


There are some key fields in Batch Upload that you’ll want to pay close attention to. You can either work with your vendors to have these fields included in the file you receive or you can use the power of Salesforce to set workflow rules that will update your Batch Upload records accordingly.

  • Batch Upload Name – A reference to the data you are inserting into this batch. A recommendation might be the filename or a concatenation of the vendor and date of the records.
  • Batch Upload: Status – Since these are new records, this should be set to “New.”
  • Address: Type – If you are including address information in your records, make sure to set the type to Home, Work or Other.
  • Giving Is Paid? – Make sure to mark this field as TRUE if you have already received and deposited the funds into your bank account.
  • Giving Is Sustainer? – If you are accepting recurring or sustaining donations you’ll need to set this flag to TRUE if you starting a new recurring.
  • Exclude Giving? – Mark this field as TRUE if you are just inserting biographical information (name, email, phone, address etc) and no opportunity information.


We all hate messy and duplicative data, so lucky for us NGO Connect has some built in matching functionality around Batch Upload called Batch Upload Matching. You can define several layers of matching based upon each object, Account, Contacts, Opportunities, and Payment Methods. You can set up your unique matching rules through the Batch Upload Matching Tab. The first step is to select the object you want to define a set of rules around. In this example we’re setting up some Contact matching rules.

Each object group’s matching rules are run in numerical order, so it’s important to put your most important criteria first. These files are free text fields that accept the API Field Name, not the Field Label. When setting up these matching rules, I find it helpful to have one window open with the fields from the object and another window with the Batch Upload Matching screen so you can easily cut and paste the API field names into the text fields. The above example is performing matching in the following order: First Name, Last Name, Email, Phone and Mailing Address Postal Code. So for example, if your Batch Upload record had values that matched an existing contact’s First Name and Last Name and Email and Phone and Mailing Address Postal Code, you would produce a match in your Batch Upload record and that contact would be populated in the Batch Upload: Contact 1 Matched field. That’s an example of a fairly tight matching rule; if you’d like to have more open rules, you’d create other sets of matching criteria in a new grouping like so:

In this second grouping matching is being performed in the following order: First Name, Last Name, Email and Phone. The combination of these two groups is actually producing an OR matching statement like so:

FirstName = rC_Connect__Contact_First_Name__c AND LastName = rC_Connect__Contact_Last_Name__c AND Email = rC_Connect__Contact_Email__c AND Phone = rC_Connect__Contact_Phone_1__c AND rC_Bios__Preferred_Mailing_Address__r.rC_Bios__Postal_Code__c = rC_Connect__Address_Postal_Code__c


FirstName = rC_Connect__Contact_First_Name__c AND LastName = rC_Connect__Contact_Last_Name__c AND Email = rC_Connect__Contact_Email__c AND Phone = rC_Connect__Contact_Phone_1__c

You can create these groupings for various matching points that are relevant to your organization’s data, starting with the most restrictive matching rules through to the simplest of rules like Email = rC_Connect__Contact_Email__c.


Once your records are loaded into Batch Upload, you’ll need to process the records. Batch Upload records can be processed individually or in a group, on demand or with a scheduled apex job. If there are any errors during the processing of the batch (think missing required information, validation rule problems, or more than 1 matching Contact), then the record will go into a Status of “Flagged” with a corresponding Batch Upload Flagged Reason and Batch Upload Flagged Technical Reason. A user will need to manually correct the information on the Batch Upload record and re-process to successfully commit the record.

The Batch Upload functionality is a great way to streamline and manage external data entering your organization’s NGO Connect instance. If you have access to a sandbox, take some time to set up Contact, Account and Opportunity Batch Upload Matching Rules and test inserting data into Batch Upload and meeting your organization’s business requirements.

For more information about NGO Connect check out these related posts: