Previous Behaviour:
When we attempted to sync contributions and create gifts in DonorPerfect (DP), sometimes the request would fail on the DP side.
When this happened, Givecloud couldn't tell at which stage the request failed. The gift could have been created or it could not have.
If the gift was created, we had no way of knowing the relationship between the gift in DP and the gift in GC.
This meant that, upon failure, when we attempted the sync again, a duplicate gift would be created.
Updated Behaviour:
When we push our contribution info to DonorPerfect to create a new gift, we now pass a new piece of information that will help us reconcile the gift in case of an error.
When sending the request to create a gift in DonorPerfect, we now pass a reference into the GIFT_NARRATIVE field in DonorPerfect.
Before sending the request, we look up gifts in DonorPerfect that have a reference to the item we’re trying to create. If one exists, we will link the item to that gift rather than create a duplicate.
After a sync failure/disruption, the sync is only retried once, 5minutes later. Currently, this only applies to contributions and not to recurring transactions.