TntMPD
Powerful software for ministry partner development...

How would I send our staff a monthly (or weekly) TntMPD DataSync file?

Table of Contents

Page Details

First published by:
Troy Wolbrink
on 29 Sep 2008
Last revision by:
tcarnahan
on 26 Nov 2009
2 people found this article useful.

100% of people found this useful
How would I send our staff a monthly (or weekly) TntMPD DataSync file?

This document describes how you can take data from your organization's donation system and package it in a way that is compatible with TntMPD.  The file you create is called a TntMPD DataSync file.  Once you make this file available to your individual staff member (such as via an email attachment) your staff will be able to bring their donation data into TntMPD.  The type of data you can put into a DataSync file includes:

  • Download contribution details
  • Download names and addresses of donors

Not only will your staff be able to use these features, but their application will be branded with your organization's logo and name.  Also, while they are using the "Gift and Address Input from File" features of TntMPD, you can display your own advertisement/announcement banner.

This is an example of the logo you can provide:

This is an example of the advertising banner you can provide:


Technical Details

A TntMPD DataSync file has the file name extension *.tntmpd.  So for example you may send your staff a file called "January2002.tntmpd".  TntMPD recognizes this file format which makes it incredibly easy for your staff to get started.  All they need to do is double-click the file and open it.  Since *.tntmpd is a registered filename extension, Windows will tell TntMPD to open it.

The DataSync file is synchronized with the currently opened database.  Because the data is synchronized, you can input the file several times into the same database without duplicating data in the database.

The DataSync file has three sections.  The sections are [ORGANIZATION], [DONORS] and [GIFTS].  An example is listed below.  (The complete version is available here:  http://download.tntware.com/sample_data_sync_file/sample.tntmpd)

[ORGANIZATION]
Name=Sample Organization
Abbreviation=SampleOrg
WebLogo-JPEG-470x120=http://download.tntware.com/ccc/SampleWebLogo.jpg
BannerAdUrl-468x60=http://download.tntware.com/ccc/SampleAdBanner.htm
Code=Sample-Organization-USA
DefaultCurrencyCode=USD
[DONORS]
"PEOPLE_ID","ACCT_NAME","ADDR1","ADDR2","ADDR3","ADDR4","CITY","STATE","ZIP",...
"921875429","Smith, Dave J & Julie J","630 Pine St",,,,"Hickleman","SD","18372-2637",... 
"332812300","Pine Hills Christian Church","1212 Elm Cir",,,,"Orlando","FL","32828-1868",... 
"220389751","Fryerson, Sue","900 S Sarmon Dr",,,,"Mitchell","SD","57302-9244", ... 
[GIFTS]
"PEOPLE_ID","ACCT_NAME","DISPLAY_DATE","AMOUNT","DONATION_ID","DESIGNATION","MOTIVATION"
"921875429","Smith, Dave J & Julie J","08/23/2002","60","J5INQ","0455770","Z01000"
"332812300","Pine Hills Christian Church","08/22/2002","50","J5E2S","0455770","Z01000"
"220389751","Fryerson, Sue","08/22/2002","40","J5EGE","0455770","Z01000"

[ORGANIZATION]

The organization section has information about your organization.  Here you can specify your organization's name, abbreviation and logo (JPEG only).  In addition you can specify an announcement banner that the user sees while they import the file.  The last item is code.  Try to think of a unique code to represent your ministry (25 chars max).

<future: TntMPD 2.2> DefaultCurrencyCode specifies the base currency code (ISO 4217 3-char) for donations represented in the [GIFTS] section.

[DONORS]

The donors section has name, address and phone information about donors.

Here's an example result:

"PEOPLE_ID","ACCT_NAME","ADDR1","ADDR2","ADDR3","ADDR4","CITY","STATE","ZIP",...
"921875429","Smith, Dave J & Julie J","630 Pine St",,,,"Hickleman","SD","18372-2637",... 
"332812300","Pine Hills Christian Church","1212 Elm Cir",,,,"Orlando","FL","32828-1868",... 
"220389751","Fryerson, Sue","900 S Sarmon Dr",,,,"Mitchell","SD","57302-9244", ... 

Field Descriptions:

FieldName Description
PEOPLE_ID (A18)  Donor ID
ACCT_NAME Donor full name
PERSON_TYPE "O" or "P" (Organization or Person)
LAST_NAME_ORG Last Name or Organization Name
FIRST_NAME First Name
MIDDLE_NAME Middle Name
TITLE Title (Mr., Mrs.)
SUFFIX Suffix (Jr., Sr.)
SP_LAST_NAME for spouse
SP_FIRST_NAME for spouse
SP_MIDDLE_NAME for spouse
SP_TITLE for spouse
SP_SUFFIX for spouse Note: If this is not blank, it is just concatenated with a space to SP_LAST_NAME.
ADDR1 Street Address (Line 1)
ADDR2 Street Address (Line 2)
ADDR3 Street Address (Line 3)
ADDR4 Street Address (Line 4)
CITY City
STATE State
ZIP Postal Code
COUNTRY (A3) ISO 3166 Alpha 3 country code  <new in TntMPD 2.0> ISO 3166 Alpha 2 country codes are supported in TntMPD 2.0.
CNTRY_DESCR Name of country.
ADDR_CHANGED (M/D/YYYY)  When the addres was last changed.
ADDR_DELIVERABLE <future: TntMPD 2.2>
"TRUE" or "FALSE".  Blank implies "TRUE".
PHONE Phone number.
PHONE_CHANGED (M/D/YYYY)  When the phone was last changed.
PHONE_OPERATIONAL <future: TntMPD 2.2>
"TRUE" or "FALSE".  Blank implies "TRUE".
EMAIL <future: TntMPD 2.2>  Email address.
EMAIL_CHANGED <future: TntMPD 2.2>(M/D/YYYY)  When the email was last changed.
EMAIL_OPERATIONAL <future: TntMPD 2.2>
"TRUE" or "FALSE".  Blank implies "TRUE".
[GIFTS]

The gifts section has detailed contribution information over a particular date range.

Here's an example result:

[GIFTS]
"PEOPLE_ID","ACCT_NAME","DISPLAY_DATE","AMOUNT","DONATION_ID","DESIGNATION","MOTIVATION"
"921875429","Smith, Dave J & Julie J","08/23/2002","60","J5INQ","0455770","Z01000"
"332812300","Pine Hills Christian Church","08/22/2002","50","J5E2S","0455770","Z01000"
"220389751","Fryerson, Sue","08/22/2002","40","J5EGE","0455770","Z01000"

Field Descriptions:

FieldName Description
PEOPLE_ID (A18) Donor ID
ACCT_NAME Donor full name
DISPLAY_DATE (M/D/YYYY) Date of contribution
AMOUNT (Float) Amount of contribution
DONATION_ID (A18) Donation ID
DESIGNATION (A18) What account this donation is designated for (normally same as employee id)
MOTIVATION (A18) (Optional)  If you track this in your donation system you may include this code here.
PAYMENT_METHOD <future: TntMPD 2.2> (A18) (Optional)  Payment method of this donation.
TENDERED_AMOUNT <future: TntMPD 2.2> (Float) (Optional) Amount of donation as tendered by donor. 
You may leave this blank if it is tendered in the same as currency code defined in the query.ini file.
TENDERED_CURRENCY <future: TntMPD 2.2> (A3) (Optional) Currency code (ISO 4217 3-char) of donation as tendered by donor.  You may leave this blank if it is the same as the default currency code from the query.ini file.
MEMO <future: TntMPD 2.2> (A) Any comments (no length limit) associated with this gift.
BASE_CURRENCY <future: TntMPD 2.2> (A3) Base currency code (ISO 4217 3-char) of donation as represented by AMOUNT.  The only case where it is valid to provide a value for this field is when importing a DataSync file without an [Organization] section.  Apart from this exception, this field is not to be used.  Instead, "DefaultCurrencyCode" should be defined once in the [Organization] section.

 

Really Simple Option

One way to make this work is to provide just the [DONORS] or [GIFTS] section in a file (minus the section header).  TntMPD will recognize that a single section is being provided.

For example, TntMPD would recognize this as being a [DONORS] section:

"PEOPLE_ID","ACCT_NAME","ADDR1","ADDR2","ADDR3","ADDR4","CITY","STATE","ZIP",...
"921875429","Smith, Dave J & Julie J","630 Pine St",,,,"Hickleman","SD","18372-2637",... 
"332812300","Pine Hills Christian Church","1212 Elm Cir",,,,"Orlando","FL","32828-1868",... 
"220389751","Fryerson, Sue","900 S Sarmon Dr",,,,"Mitchell","SD","57302-9244", ... 

And for another example, TntMPD would recognize this as being a [GIFTS] section:

"PEOPLE_ID","ACCT_NAME","DISPLAY_DATE","AMOUNT","DONATION_ID","DESIGNATION","MOTIVATION"
"921875429","Smith, Dave J & Julie J","08/23/2002","60","J5INQ","0455770","Z01000"
"332812300","Pine Hills Christian Church","08/22/2002","50","J5E2S","0455770","Z01000"
"220389751","Fryerson, Sue","08/22/2002","40","J5EGE","0455770","Z01000"

 

 


 

 

Case Insensitivity

TntMPD will store designation ids, donor ids and donation ids exactly as it is received.  But internally when TntMPD is syncing incoming data, it will match up these ids in a case insensitive way.  So a donation id of "ABC" and "abc" are the same from TntMPD's perspective.  Sending your staff two donations with an id of "ABC" and "abc" respectively will either result in a "duplicate id error" in TntMPD or it will overwrite the one donation with the other.


How to contact me

If you have any questions regarding this document, please don't hesitate to contact me at my email address:  wolbrink@ccci.org   I would be glad to help you.  If your organization finds this feature useful, I would love to know about that as well.

Recent Comments

By: Hans Krause Posted on 10 May 2009 10:14 AM

Extremely useful for our Finnish Campus Crusade ministry. We use a commercial online database, which allows you to extract data in Excel format. We cannot handle the fuzz of an extra data server in between. This way of importing csv-data will provide an important step in adopting the TnTware in our organization. Thank you Troy!

By: tcarnahan Posted on 26 Nov 2009 11:40 PM

I downloaded the "sample" .tntmpd file and tried to open it. It would NOT open.  I have TNTMPD 2.1 r9.

Am I doing something wrong?

By: tcarnahan Posted on 27 Nov 2009 7:06 AM

Also,  are the Field descriptions specific ... by that I mean, for address, could you use "ADDRESS" as opposed to the field header listed, or does TNTMPD only look for those field names?

By: Troy Wolbrink Posted on 27 Nov 2009 6:49 PM

The field names must be exactly the same.  That is what TntMPD is looking for.

By: Troy Wolbrink Posted on 27 Nov 2009 6:52 PM

The sample.tntmpd worked fine for me.  Remember, you don't [File|Open] it.  But you can double-click on it.  Or you can open it under "Tools | Address and Gift Input from File".

By: tcarnahan Posted on 27 Nov 2009 8:58 PM

Roger ... the fields names must be exactly the same.

I tried your suggestion. The "double-click" did not work, but the "Tools | Address and Gift Input from File" DID work.  (I am not sure what happened with double-click).

Now I just need to work on getting the data from the Quickbooks (non-profit - desktop) .csv file FORMATTED so it will work for this method. I am a medium-level VBA/MS-Access programmer, so I might try to format it using that approach. Do you recommend that?

Thanks for your help!

-- Tom

By: tcarnahan Posted on 27 Nov 2009 10:58 PM

Sorry to be a bother ... Do you have to have ALL field headers represented in the header row (even though you might not have any data in it)?

By: tcarnahan Posted on 30 Nov 2009 7:34 AM

Let me regroup ... what I MEANT to say is:

1)  Are all fields required?

2)  Must all headers be present regardless of whether or not their columns contain data?

3)  Is the order that the headers appear important?

By: Troy Wolbrink Posted on 30 Nov 2009 12:02 PM

Each column (header) must exist, but you don't always need to put data in each column in each row.  The order of the columns is not important.  If you only have a first name and no middle name, that's OK.  TntMPD doesn't expect everyone to have a middle name, for example.  But everyone should probably have a last name (or an organization name if PERSON_TYPE = "O").

By: tcarnahan Posted on 21 Dec 2009 1:19 PM

Troy ..

I have successfully used MS-Access to manipulate the standard QuickBooks .CSV export to create a Sync file to use for the Gift import. I chose to go this route because it seemed that you have a number of safeguards build into your import process and I didn't want to bypass them.  

After I import the .CSV into MS-Access, I run a query where I join your Contact table and the .CSV where your "SaveAs Name" matches the CSV Account Name, from which I obtained the ContactID to use in my Sync file for PeopleID. The problem I had was that for some reason, I was not getting all the records to match, therefore, I had no ContactID to become the "PEOPLE_ID" in the Synch file.

Example: a existing contact in TnTMPD is "Jones, Sam" with ContactID 12345. The gift record coming in lists him as "Jones, Sam H." so my matching fails and I have no ContactID to become the PeopleID in the Synch file.

For the gift records that did match, I was able to successfully import them

One quirk I ran into, was that the second and subsequent imports, It would say its going to import, for example, 50 gift records, but on the next screen, it says it wants to remove the 1,500 existing records that were imported previously. Manually removing the checkmarks so that those records were not removed when I click "sync" was a major chore. On each subsequent import, it tries to remove all exisitng records. I am not sure what I am doing wrong.

I had a couple of thoughts and would appreciate your comments:

1) I could search for the MAX(ContactID) in the Contact table, add one, and assign it and  consecutive numbers for the PeopleID in the Sync file for the records that didn't match the "SaveAs" name in the Contacts table. What I don't know is if your ContactID is an autonumber and how the import would respond if it got an unknown People_ID.

2) If I knew more about how your tables work, I would attempt to add the data directly to the Gift table. I assume that ContactID and DonorID are required fields. I don't know if there are any other required fields. Could you give me some pointers on what to look out for?

Again, I am very impressed by TnTMPD and once I get my QB to TnTMPD flow more seamless, I plan to push our Board of Directors to adopt its use.

As always, thank you ahead of time for any help you can provide.

God bless,

-- Tom

By: Troy Wolbrink Posted on 29 Dec 2009 2:02 PM

Does QuickBooks NOT have donor ids?