# Integration to DonorPerfect

Below we provide different methods to integrate to a separate donor management system. We know that each organization's needs are unique, so please feel free to contact us at <contact@zeffy.com> to discuss which integration option works best for you!

## Direct integration

If you use DonorPerfect for donor management, Zeffy provides a direct integration to the platform. This allows for your donor data received in Zeffy to be integrated automatically into DonorPerfect.

To set up the integration, contact us at <contact@zeffy.com> with your DonorPerfect API key and your Zeffy account information. Once our team confirms the integration is complete, you will start receiving your donations directly in your donor management system.

{% hint style="warning" %}
We recommend the direct integration for simple fundraising needs such as one-time donations from a single Zeffy form. For more complex campaigns like peer-to-peer, please contact us at <contact@zeffy.com> for more options.
{% endhint %}

## Import and export

Although this is not an integration, it can be most effective method of moving your data from Zeffy to a separate donor management system. For short term campaigns, we recommend exporting the donor reports from Zeffy and importing them directly into DonorPerfect.

Zeffy provides complete reports with all your donor or buyer data, that can be exported to excel. You can then map your reports based on your specific uses in DonorPerfect and import it directly.

## Other integration method

{% hint style="danger" %}
Please note that creating the DonorPerfect API for this integration method is done through an external source. We do not monitor the availability of this resource.
{% endhint %}

Zeffy (formerly Simplyk) has an application on the Zapier API connection platform (invitation link). This allows you to easily recover Zeffy's data when a new donation is received or a new ticket is sold, to send the information to Donor Perfect.

![](https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-LYqyQBtS2KMEk8OmbDg%2F-LYxlLpE10QbpCoPeAkm%2F-LYxmUhpDddxKq9mKfRD%2Fimage.png?alt=media\&token=85bb5333-6807-48ed-a791-9b36fd38def3)

Once you have connected Zeffy to Zapier, you must configure the communication with the Donor Perfect API. To do so, use the guide below. For more information, contact us at <contact@zeffy.com>.

The configuration is fast, safe, and customizable.

### Creating the DonorPerfect API

To create an API interface with DonorPerfect, you must create an account at the following link: <http://api.warrenbti.com>.

Once you've created your account, you'll get an **API key** to keep.

### Adding a donation to a donor in DP

Once the connection with Zeffy is made in Zapier, with *New donation* as a *trigger* action in your zap, add an Action / search step.

This step will search your existing Donor Perfect database for the donor, if it exists.

Select the type of **GET** action. The idea here is to see if the donor already exists in the database.

In the **URL** field, enter [https://www.simplyk.io/api/v1/dpo](https://simplyk.io/api/v1/dpo).

Then enter all the necessary fields in **Query String Params:**

* *apikey*: fill in the API key you got on the Donor Perfect interface  \
  api.warrenbti.com
* *action*: Select donor\_id, first\_name, last\_name,email from dp where email='**step1-email**'

by replacing **step1-email** with the donor's email address, which is obtained by clicking on the + on the right.

{% hint style="info" %}
All the next bold entries starting with *step* correspond to the variables of the previous steps (example: step1-email). To add them, click on the + to the right of the field
{% endhint %}

Once this step is over, there will be a list containing the ID of the donor, if it was found in the database, otherwise, there will be an empty list.

It's not necessary to format this list to have a single donor ID, or a 0 if the donor does not exist yet. For this, we must add a step in the Zapier and choose **Formatter, not Action/Search**.

Then, choose **Utilities**.

Choose **Pick from list** in **Transform**, **Choose first** in **Opération**, the field **step2-donor\_id** by clicking on **+** for the field **Input** and in **Default**, write **0**.&#x20;

* *params*: @gift\_id=0, @donor\_id=**step2-donor\_id**, @record\_type='G', @gift\_date='**step1-date**', @amount=**step1-amount**, @gl\_code=NULL, @solicit\_code=NULL, @sub\_solicit\_code=NULL, @campaign=NULL, @gift\_type=NULL, @split\_gift=NULL, @pledge\_payment=NULL, @reference=NULL, @memory\_honor=NULL, @gfname=NULL, @glname=NULL, @fmv=0, @batch\_no=0, @gift\_narrative=**step1-donation\_title**, @ty\_letter\_no=NULL, @glink=NULL, @plink=NULL, @nocalc=NULL, @old\_amount=NULL, @receipt=NULL, @user\_id='Simplyk', @gift\_aid\_date=NULL, @gift\_aid\_amt=NULL, @gift\_aid\_eligible\_g=NULL, @currency='**currency**’

With: currency CAD or USD.

The result is that a donation on Zeffy will update a donor in DonorPerfect.

{% hint style="info" %}
Zapier charges a monthly rate with preferential pricing for charities. The fee is based on the volume that will be used on your triggers.
{% endhint %}

### Detect if the donor is already in the database

To format whether or not to find a donor in the DonorPerfect with this email, you must add a **Formatter** step.

![](/files/-LqfgvjSKrIfTF-skWcv)

You then choose **Utilities** in the 4 choices offered, and you configure it as follows:

![Configuration de Utilities](/files/-LiKmZSknA6grr1PYGFR)

Note that the input is necessary and must be the result of step 2, and the default value must be 0.

### Adding/updating the donators information

To add (or update, according to the result of the previous step) the donor, we must add a step, which is still a **GET** with **Webhooks**.

The settings:

* url: <https://www.simplyk.io/api/v1/dpo>
* action: dp\_savedonor
* apikey: your apikey like before
* params:&#x20;

![Champs params du GET](/files/-LiKq588wmsuO1ZSlmBZ)

&#x20;The rest of the settings are intact just like before.&#x20;

Then, a very simple penultimate step that consists of adding the donor IDs with the following configuration:&#x20;

![Configuration de l'étape d'addition](/files/-LiKrjtVbhCyPFjVozd-)

And finally, a last **Webhooks** step, a **GET** again with the following configuration:

![Configuration du dernier GET](/files/-LiKsYOSYrFrP-lzElh3)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zeffy.com/org/contact-management/base-de-donnee/integration-a-donorperfect.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
