Set up and configure your integration with DonorPerfect.

Get your DonorPerfect API key

A DonorPerfect API key is a permission token to send data in to your specific DonorPerfect account as a particular user.

DonorPerfect recommends creating a new User ID designated specifically for use with the Fundraise Up integration, and to put "Fundraise Up" in the Location field of this new user to make it clear that this account is specifically for use with the API.

You can view and create users in your DonorPerfect system through the User Management screen.

Having a designated DonorPerfect user for this purpose should help reduce the likelihood of accidental deletion of this User ID, as well as making it clearer which user is connected via Fundraise Up's DonorPerfect Integration.

Once you know which DonorPerfect user you'd like an API Key for, you can reach out to DonorPerfect support and provide them the User ID and email address of that user, and they will provide you the needed API Key you'll use to connect Fundraise Up's DonorPerfect Integration.

Go to the Integrations page

In your Fundraise Up dashboard, click your name in the top right, and then choose the Settings option from the dropdown.

In the left-hand menu of the Settings area, choose the Integrations option, found towards the bottom of the list.

Add the DonorPerfect Integration

Click the Add Integration button, and choose the DonorPerfect option from the list, either by scrolling or searching in the list of available Integrations.

On the DonorPerfect Integration page, click the Connect DonorPerfect button.

In the Connect DonorPerfect popup, enter your API key, and then click the Connect My DonorPerfect Account button.

The Integration is paused when first connected — once you're happy with your Integrations' setup, don't forget to scroll to the bottom and click the Enable Automatic Sync button so that new donations start syncing in real-time!

In practice, you likely want to spend some time customizing your DonorPerfect Integration rather than clicking that button immediately, so that you can make sure the data we sync over to DonorPerfect matches your organization's data structure.

Configure the integration

Now that you've connected your DonorPerfect Integration, you can customize it further and start automatically syncing donations from your DonorPerfect Integration settings page, available by clicking into Settings -> Integrations -> DonorPerfect:

Review the Integration's default behavior + Enable Automatic Sync

Once you Enable Automatic Sync from the bottom of the Integration screen, our Integration's sync will run after every successful donation made via Fundraise Up, including for installments of recurring donation plans.

To the extent that we can, we seek to make our CRM Integrations fill in every standardized field and create every standardized record that's expected.


The integration makes Gifts in DonorPerfect to represent all Donations, and fills in certain key fields by default like amount and date.

For Anonymous Gifts, where the supporter would like a particular gift to not be acknowledged in any public listing, DonorPerfect has documented instructions to add a particular field to the Gift object. If you create that field accordingly, we'll make sure to mark it appropriately!


When a Donation is synced in and creates a Gift in DonorPerfect, the integration attempts to find an existing Donor based on your "Match Account" setting, for which the possible values are:

  • by email
  • name and phone
  • name and address

If it does find a matching Donor, it associates the Gift with that Donor. If it doesn't, it makes a new Donor, and associates the Gift with the new Donor.

In both cases, we update any stock personal or contact information fields for which the Donation had updated information, such as name, email address, phone number, and physical address.


The integration can make Pledges in DonorPerfect to represent any synced Recurring Plan. This behavior is controlled by the Make pledges for recurring plans checkbox in the integration's General Settings, and is enabled by default.

If the Pledge creation behavior is enabled, Gifts made that represent installments of a plan get applied as Pledge Payments towards the appropriate Pledge.

Created Pledges inherit certain mapping rules or special rules you set up, specifically anything in the integration that sets General Ledger, Campaign, Solicit Code, and Sub Solicit Code values.

Known limitations

Fundraise Up integrations are API-based, meaning that the software suite that data is being synced into controls how records can be made, whether they can be edited, and so forth. Before using the DonorPerfect integration, we recommend reviewing the following known limitations:

  • DonorPerfect doesn’t support Every 4 weeks as a recurring donation. Recurring plans created with this frequency will be appear in DonorPerfect as separate one-time donations.
Additionally, API updates to Gifts currently do not appear to count as “saves” on Gifts in a way that can activate DonorPerfect’s “Smart Actions” automation feature.

Set your defaults using General Settings & Mapping Rules

The DonorPerfect Integration page has four sections:

  • the header, which shows you what account you connected,
  • the tabbed area, which lets you set your sync behavior,
  • the sync log, which shows you records that've synced into DonorPerfect,
  • and the footer, with options to run historical syncs or deactivate this Integration.

It's good to start in the tabbed area (with tabs labeled General Settings, Mapping Rules, and Special Rules) so that you can cover your most common donation scenarios. Any changes you make in any of the tabbed sections are not saved until you hit the Save Changes button at the bottom of that area.

Look over your General Settings

The screen will have the General Settings tab open by default, as shown here:

Within General Settings, you'll find a few checkboxes and a few dropdowns. There's only one required field in this area, and it's filled in with the most common selection by default.

Checkbox options

  • Sync test data
  • Unicode support
  • Sync subaccounts
  • Make pledges for recurring plans
  • Update receipt fields if PDF receipt was made by Fundraise Up

Dropdown options

  • Receipt delivery preference

    This field will only appear if "Update receipt fields if PDF receipt was made by Fundraise Up" is checked, and allows orgs to select which receipt delivery preference should be set in DonorPerfect for any donations where we didn't send a receipt email already.

  • Match Account

    This is set to "By Email" by default, and that's our recommended best practice, as people have names, addresses, and phone numbers in common more regularly, and change them more often. Setting this value to "By Email, in our experience, results in the least amount of account deduplication required.

  • Receipting Preference (optional)

    This controls what will be set for this field in DonorPerfect if Fundraise Up didn’t make a PDF for a donation.

  • Thank you letter (optional)

    This controls what will be set for this field in DonorPerfect if Fundraise Up didn’t make a PDF for a donation.

  • Type of gift (optional)

Make some Mapping Rules

The second tab is labeled Mapping Rules – it allows you to make 1-to-1 mappings of fields in Fundraise Up to fields in DonorPerfect.

As covered above, some mappings are already built-in by default (i.e. donation amount to donation amount), so this area is really for defining what additional things should be true most of the time.

To add a rule here, you'll click the Add Rule button to start choosing what Fundraise Up object the mapping should start with.

You can modify existing rules by clicking on any of the object or field buttons that represent the mapping, or delete them by clicking the grey x on the right-hand side of that rule's row.

When talking about mappings, we'll follow the format:

Object in Fundraise Up: Field in Fundraise Up -> Object in DonorPerfect: Field in DonorPerfect

The available Fundraise Up entities to map data from are:

  • Campaign
  • Designation
  • Checkout Question
  • Custom Field
  • UTM Parameter
  • Static Value

    This allows you to enter a specific value to pass in for every Donation.

The available DonorPerfect entities to map data to are:

  • Gift
  • General Ledger
  • Campaign
  • Solicit Code
  • Sub Solicit Code

With General Ledger, Campaign, Solicit Code, and Sub Solicit Code, if you map to them, you're saying "all Gifts and Pledges created in DonorPerfect by the sync should have this set to this value".

Additionally, with those four fields, we can only map to them by ID.

So, for example, if you've mapped Fundraise Up Designation Code -> General Ledger ID, you should set each Designation's Code to be the same as the corresponding General Ledger ID.

Two options for further data updates

For any datapoint that we can't map appropriately, you can make a custom field on the Gift object and map our datapoint to that custom field. Once you've done so, DonorPerfect offers two tools for data changes based on existing data.

The most common example of this we've come across is the Type of Gift dropdown in DonorPerfect (internal value of GIFT_TYPE).

Our "Payment Method" datapoint for Donations sends the full display names of the payment method used (ex: Credit Card, Apple Pay etc), and the Type of Gift dropdown in DonorPerfect has internal IDs for each of its options that don't allow spaces (ex: CC instead of Credit Card). So it's usually impossible to make our passed values line up exactly to the values in that dropdown.

Global Update

DonorPerfect offers a feature called Global Update that allows you to make a single data change across some or all of your records.

For this example, you could:

  • make a field on the Gift object (you could set the internal name to FRUPAYMENTMETHOD, and the prompt to "Fundraise Up Payment Method")
  • map Donation: Payment Method -> Gift: FRUPAYMENTMETHOD
  • and make a Global Update where:
    • the object is Gift / Pledge
    • the field is Type of Gift (GIFT_TYPE)
    • the filter is any Gift where FRUPAYMENTMETHOD contains the phrase Credit Card,
    • and the Value is whatever you want Type Of Gift to read post-update, found using the Lookup Code link

Smart Actions

There's some ongoing conversation with DonorPerfect about triggering Smart Actions via our gift creation and resyncs - your mileage may vary on this section!

DonorPerfect offers a feature called Smart Actions that allows you to automate commonly done tasks.

For this example, you could:

  • make a Field on the Gift object (you could set the internal name to FRUPAYMENTMETHOD, and the prompt to "Fundraise Up Payment Method")
  • map Donation: Payment Method -> Gift: FRUPAYMENTMETHOD
  • and make a Smart Action where:
    • the trigger is Any Gift Save
    • the filter is any Gift where FRUPAYMENTMETHOD contains the phrase Credit Card
    • and the action is Update Field, where you'd set it to update the Type of Gift field to the appropriate code by using the "find code" link on that page

If you want every possible Payment Method to set a different Type of Gift, you'd make 7 Smart Actions, one for each option. Alternately, if you want to group them (ex: if FRUPAYMENTMETHOD = Credit Card OR Apple Pay OR Google Pay OR Click to Pay, have the action set 'CC' in the Type of Gift dropdown), you would be able to get away with making fewer Smart Actions.

Cover any exceptions using Special Rules

Your defaults will have you covered most of the time – what about the edge cases?

For exceptions, we have the Special Rules tab! Any mappings you set here will override your Mapping Rules. As such, we allow you to get more granular here – where Mapping Rules limits you to mapping field-to-field, Special Rules allows you to map option-to-option.

To add a rule here, you'll click the Add Rule button to start choosing what Fundraise Up object the Special Rules' mapping should start with.

Fundraise Up offers Campaigns and Designations as the basis for our side of any Special Rule going into DonorPerfect.

DonorPerfect can then say what Campaign, General Ledger, Solicit Code, or Sub Solicit Code a Donation matching the above criteria should get written towards in DonorPerfect.

So, let's say any gift coming in with the "After School Program" Designation in Fundraise Up should go to the "Extracurricular" Campaign in DonorPerfect. The Special Rule would be made as follows – Designation: After School Program -> Campaign: Extracurricular

Sync your historical data

Once you chose to Enable Automatic Sync, all new donations will have started coming over to your DonorPerfect account, generating records as applicable.

How do you get past donations and supporter data in? What about changes that've been made to your mappings; how do you get that new data in?

For scenarios like those, we offer the ability of manual sync that'll add any new records and update any previously synced ones.

Enable or Pause Automatic Sync

This button will show you the available option for the automatic sync:

  • if the automatic sync is currently paused, it'll show you an option to enable it so that future donations automatically sync into DonorPerfect,
  • and if the automatic sync is currently enabled, it'll show you an option to pause it so that future donations aren't automatically synced into DonorPerfect.

Start manual sync

Use this button to sync live or test donations from Fundraise Up into DonorPerfect. You have the option to import all donations or select specific donation types and choose a date range. This mass sync feature will not sync test donations.

Once you click Start sync, the sync will begin.

Refreshing the page and scrolling back down to the footer will show you the progress/results of that latest manually-started sync.

Donation types:

  • Unsynced live donations: This category includes live donations facing synchronization issues (such as failed last synchronization events) and donations that haven't been synchronized before.
  • All live donations: Synchronization of all live donations regardless of their current synchronization status.
  • All test donations: Synchronization of all test donations.


This will remove all syncing between the two platforms. If you connect that same account again in the future, we'll remember your settings.