DonorPerfect integration
Before you start
GoFundMe Pro was previously known as Classy. Some integration fields still reference our old name.
The integration is available for customers with professional or advanced packages. If you are interested in our DonorPerfect integration, please contact your account representative for more information.
The GoFundMe Pro integration with DonorPerfect automatically sends donations, supporters, campaigns, and recurring gifts, so you don’t need to enter data manually. This keeps your records accurate and ready for reporting and outreach. Use the DonorPerfect integration for a simple, hands-off way to track your activity.
Manage the integration
Once our team has activated the integration, you can manage it in your GoFundMe Pro account. To do so, select Apps & Integrations > Active Apps and then select the DonorPerfect integration.
Here, you can select Disconnect to turn off the integration when rotating credentials or troubleshooting issues.
Field mapping
When the integration is connected, GoFundMe Pro syncs data to DonorPerfect once per day. Below are the objects and fields that sync to DonorPerfect.
Supporters
GoFundMe Pro object: Supporter
DonorPerfect object: Donor
| GoFundMe Pro field | DonorPerfect field |
|---|---|
| first name | first_name |
| last name | last_name |
| first name | salutation |
| address1 | address |
| address2 | address2 |
| state | state |
| city | city |
| postal code | zip |
| country | country |
| phone | mobile_phone |
Transactions
GoFundMe Pro object: Transaction
DonorPerfect object: Gift
| GoFundMe Pro field | DonorPerfect field |
|---|---|
| Purchased at | gift_date |
| Total Gross Amount | amount |
| Designation External Reference ID | gl_code |
| Campaign Internal Name | campaign |
| Transaction ID | transaction_id |
| Transaction Type (donation or registration) | sub_solicit_code |
| Transaction Overhead Net Amount (non tax-deductible amount) | fmv (fair market value) |
| Transaction Currency Code | currency |
| Transaction Payment Type | gift_type |
| Transaction Source Code 1 | solicit_code |
Note: DonorPerfect only offers three statuses: successful, failed, and refunded. ACH transactions will sync once they settle.
For certain fields in DonorPerfect, we populate fixed values instead of syncing values from GoFundMe Pro.
| DonorPerfect field | Value |
|---|---|
| reference (we are using this field to save GoFundMe Pro information for reference) | clTxnId-txn ID, clOrderID-order ID, clRdpId-Recurring donation plan ID, clSuppId-Supporter ID, clOrgId-org id |
| ty_letter_no | TY |
| receipt | N |
| receipt_delivery_g | N |
Things to know
- Ensure the following codes for the field gift_type exist in DonorPerfect to match the payment types available in GFMP: ACH, PAYPAL, APPLEPAY, GOOGLEPAY, CC, CA, CK
- If you already have GL codes, campaign codes in DonorPerfect that you would like to use, please be sure to look up these codes (e.g., “GALA2026”) and put them in the relevant field on the GoFundMe Pro designation (external reference ID) or campaign (internal name).
- If the integration creates a gift with a campaign code, GL code, solicitation code, or sub-solicitation code that does not exist in DonorPerfect, the integration will create the code.
- DonorPerfect codes are usually short and contain only capital letters and numbers, but no spaces, unlike the descriptions of these codes. You must enter the relevant codes in GoFundMe Pro, not their descriptions. For example, enter YE2026 instead of Year End Campaign 2026.
Custom fields for transactions/gifts
Note: If you want to sync additional gift data, you need to create the following custom fields in DonorPerfect. Use the Screen Designer tool, select Gift from the Screen dropdown menu, select Add New Field, and configure the fields as shown below.
Payout data
| Field name | Display type | Data type |
|---|---|---|
| CLASSY_PAYOUT_AMOUNT | Textbox | Number (2 decimals) |
| CLASSY_PAYOUT_DATE | Textbox | Date |
| CLASSY_PAYOUT_ID | Textbox | Character |
| CLASSY_TOTAL_FEES | Textbox | Number (2 decimals) |
Source codes
| Field name | Display type | Data type |
|---|---|---|
| CLASSY_SOURCE_CODE1 | Textbox | Character |
| CLASSY_SOURCE_CODE2 | Textbox | Character |
Fundraising
| Field name | Display type | Data type |
|---|---|---|
| CLASSY_FUNDRAISER | Textbox | Character |
| CLASSY_TEAM | Textbox | Character |
- These two fields will contain the fundraising page/team name and ID.
Billing information
| Field name | Display type |
|---|---|
| CLASSY_BILLING_INFO | Memo |
Answers
| Field name | Display type |
|---|---|
| CLASSY_ANSWERS | Memo |
Comment
| Field name | Display type |
|---|---|
| CLASSY_COMMENT | Memo |
Recurring plans
Recurring donations sync to DonorPerfect as gifts with Y in the pledge payment field. The Y indicates that the gift is associated with a recurring donation plan. In addition, the GoFundMe Pro recurring plan ID is saved in the reference field as clRdpId-12345. One-time donations will create a gift record in DonorPerfect with N in the pledge payment field.
Other items
Donors
Customers can choose different criteria for donor matching:
- supporter name + email
- supporter name + (email or address)
Supporter name + email is the default setting. There needs to be an exact name and email (or address) match for the integration to match a Classy Supporter with a donor in DonorPerfect.
Refunds
The integration follows DonorPerfect’s gift adjustment model for handling refunded transactions:
- Adjust the original gift, setting its record_type to A (“adjusted gift”)
- Create a new gift with a negative transaction amount and record type H
- Finally, create a new gift with amount 0 and record_type C (“resulting gift”)
Giving Cart
Multi-item donations sync to DonorPerfect as follows:
- Main gift containing the transaction items (showing the total transaction amount)
- A partial gift is created for each donation (showing the amount of each transaction item) and is linked to the main gift
Dedications
The integration creates a tribute record with the honoree’s name and then links that record to the relevant gift (if the gift isn’t already linked to a tribute).