|
The benefit of keeping the instructions in this file is that if you later
change the URL or POST template of your query, you can just edit the Query INI
File and make a seamless transition. The staff using the program will
never know it changed.
TntMPD-version specific sections <new for
TntMPD 2.0>
TntMPD 2.0 and newer will support version specific sections. For
example a client running TntMPD 2.2 will search for the "DONATION" section
by using the first out of this list that it finds first:
- [DONATIONS.2.2]
- [DONATIONS.2.1]
- [DONATIONS.2.0]
- [DONATIONS.2]
- [DONATIONS]
The Queries
--Placeholders--
Each query has a URL and a POST. The URL specifies your online donation
server object (CGI object, for example). The POST specifies the data to
send with the HTTP POST transaction. The POST is in a template form.
These placeholders are key words that will be substituted by the appropriate
string based on the user's input in TntMPD:
| $ACCOUNT$ |
The user name of the staff logging in to the donation system. |
| $PASSWORD$ |
The password of the staff logging in to the donation system. |
| $SSO_TICKET$ |
<future: TntMPD 2.1>
The service ticket returned by the SingleSignOn
Query.
Generally
you
would use this in lieu of $ACCOUNT$ and $PASSWORD$. Note:
The
SingleSignOn
query
never receives the $SSO_TICKET$ placeholder, but only
accepts $ACCOUNT$
and $PASSWORD$. |
| $PROFILE$ |
<new for TntMPD 2.0> The profile
code of the staff logging in to the donation system.
If the Profiles query is not supported, this will always be blank.
Note: The $PROFILE$
placeholder
is never provided in the Profiles Query itself. |
| $DATEFROM$ |
The specified beginning date. (M/D/YYYY) (I'll explain later
where and how this is used.) |
| $DATETO$ |
The specified ending date. (M/D/YYYY) (I'll explain later where
and how this is used.) |
| $PERSONIDS$ |
A comma separated list of donor IDs. (I'll explain later where
and how this is used.) |
So for example, if I defined my Post value by:
Post=Action=TntBalance&Username=$ACCOUNT$&Password=$PASSWORD$
And if my user name was "JohnDoe", and my password was "abc123" then the
following data would be send with the HTTP POST transaction:
Action=TntBalance&Username=JohnDoe&Password=abc123
--Standard Response--
Each query should return its results as CSV text. I will describe the
field names expected for each query.
--Error Response--
Each query should handle invalid conditions (such as an invalid username) by
returning two lines of text. The first line of text should be "ERROR".
The second line of text is the error description. Here are a couple of
examples to give you the general idea.
|
ERROR
Server is down for maintenance. |
|
ERROR
Invalid date range. |
Account Balance Query
The purpose of this query is to simply return the staff account balance of
the staff member submitting the request. It only uses the $ACCOUNT$, $PASSWORD$
and $PROFILE$ placeholders.
Example result:
|
EMPLID |
ACCT_NAME |
BALANCE |
| 12345678 |
Doe, John & Jane |
1225.30 |
Result in it's raw form just in case you are not familiar with the CSV
format:
EMPLID,ACCT_NAME,BALANCE
12345678,"Doe, John & Jane",1225.30 |
Field Descriptions:
|
FieldName |
Description |
| EMPLID |
Comma separated list of designation ids (A18)
associated with this user/profile. |
| ACCT_NAME |
List of designation account names (A50)
associated with this user. Each name is delimited by carriage returns
and line feeds (vbCrLf or #13#10), and correlates to designation ids found
in EMPLID. |
| BALANCE |
(Text) Custom text that describes the user's account
balance. |
Donations Query
The purpose of this query is to return all donation detail data for the staff
member within a certain date range. In addition to the usual $ACCOUNT$,
$PASSWORD$ and $PROFILE$ placeholders, it also uses $DATEFROM$ and $DATETO$. Keep in mind
that these placeholders come in the (M/D/YYYY) format. The $DATEFROM$ and
$DATETO$ placeholders describe the beginning and ending dates of the query. You should
include donation data for all dates between and including these dates. The
beginning date will be limited by the "MinimumWebGiftDate" value in the Query
INI file.
Click here To see an example result.
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.1>
(A18) (Optional) Payment method of this
donation. |
|
TENDERED_AMOUNT |
<future: TntMPD 2.1>
(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.1>
(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.1>
(A) Any comments (no length limit) associated with this gift. |
|
BASE_CURRENCY |
<future: TntMPD 2.1>
(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. |
Addresses Query
The purpose of this query is to return detailed name, address and phone data
for the staff member's donors. In addition to the usual $ACCOUNT$, $PASSWORD$
and $PROFILE$ placeholders, it also uses $DATEFROM$. Keep in mind that this
parameter comes in the (M/D/YYYY) format. The $DATEFROM$ placeholder limits
the address list to only those that have changed since the given date. If
the given date is blank, the user is requesting ALL addresses.
Note: You may simply ignore the $DATEFROM$ parameter and return all addresses
every time if you wish. But keep in mind that this will generally increase
the download time for the user.
Click here To see an example result.
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.1>
"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.1>
"TRUE" or "FALSE". Blank implies "TRUE". |
|
EMAIL |
<future: TntMPD 2.1>
Email address. |
|
EMAIL_CHANGED |
<future: TntMPD 2.1>(M/D/YYYY)
When the email was last changed. |
|
EMAIL_OPERATIONAL |
<future: TntMPD 2.1>
"TRUE" or "FALSE". Blank implies "TRUE". |
Addresses By IDs Query
This Query only differs from the Addresses Query in that it uses the
$PERSONIDS$ parameter instead of the $DATEFROM$ parameter. The $PERSONID$
parameter is substituted by a comma separated list of donor IDs. These
donor IDs are obtained from donations in the Donations Query. TntMPD will
never submit a request with more than 200 donor IDs.
Note: You may simply ignore the $PERSONIDS$ parameter and return all
addresses every time if you wish. But keep in mind that this will
generally increase the download time for the user.
Profiles Query (Optional) <new for TntMPD
2.0>
The purpose of this query is to return a list of different profiles
associated with the user. This allows a user to have different "modes" for
downloading information, without having to setup different username/passwords
for each mode. This works especially well in a Single Sign On (SSO)
environment.
Example result:
|
PROFILE_CODE |
PROFILE_DESC |
|
Staff
Account (Default) |
| MIN1 |
Operating Account #1 |
| MIN2 |
Operating Account #2 |
Field Descriptions:
|
FieldName |
Description |
|
PROFILE_CODE |
(A18) A code to identify this profile. A
blank profile code would be the default profile associated with the account.
Note: The Field Name "ROLE_CODE" was supported at one time, but is now
deprecated for new work. |
|
PROFILE_DESCRIPTION |
(A50) A description of the profile. This
is what the user sees. Note: The Field Name "ROLE_DESCRIPTION" was
supported at one time, but is now deprecated for new work. |
SingleSignOn Query (Optional)
<future: TntMPD 2.1>
The purpose of this query is to return a one-time-use
authentication ticket that can be used in one (and only one) query. It
receives $ACCOUNT$ and $PASSWORD$. It should return one row.
Example result:
|
SSO_TICKET |
|
ST-gjdhgvyudmfnbgbyf |
Field Descriptions:
|
FieldName |
Description |
|
SSO_TICKET |
(Text) An authentication
"service" ticket than can be passed into another query for one-time use. |
Testing your compatibility with TntMPD
To test your online donation system's compatibility with TntMPD, pull up the
"Gift Input from Web" screen. Where it has you choose your Organization,
choose "Custom". (Note: You must hold down the Shift key when you drop
down the list.) Then you can simply type in the URL of your Query INI
File. That is all there is to it!
Making it easy for your staff to connect...
If you want to include your organization in the drop down list where you
choose the Organization, just send me an email. (wolbrink@ccci.org)
Be sure to include your organization's name, and the URL of your Query INI File.
I can update the list on my website, and your organization will automatically
appear in the list.
Then when your staff member tries to do "Gift Input from Web" for the first
time, they can just select your organization's name in the list. It
couldn't be much easier!
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.
|