Subscribe to this blog to receive periodic product release announcements for developers and tips and tricks for using API.

Developer Blog Series: Synchronize Data To Raiser’s Edge NXT From A Custom Data Source

Last month, we covered the basics of how to synchronize data to a custom data source with SKY API. It is equally important to synchronize the changes in your custom data source with your data in Raiser’s Edge NXT. If you have a Workato subscription, then the Raiser’s Edge NXT connector available in the easy-to-use Workato recipe builder might suit your needs.

However, if you don’t have a subscription to Workato or have a complex synchronization scenario, then you may need to create your own data synchronization process using SKY API. The initial step of any SKY API integration is to create an application that can get a JSON Web Token (JWT) to authenticate in SKY API. The next step is to use your JWT and Subscription Key to make calls to the SKY API to retrieve changed entities.

A full sample is available here. This sample uses the NuGet packages RestSharp and Newtonsoft.Json.


Identify Matching Constituents

The first step when synchronizing changes in your custom data source with Raiser’s Edge NXT is to get a list of the affected constituents from your custom data source. Then you identify and map them to constituents in Raiser’s Edge NXT.

If you do not store Raiser’s Edge NXT constituent IDs in your custom data source, you can search for the constituents in Raiser’s Edge NXT to identify potential matches. We recommend searching for constituents based on lookup IDs instead of names to avoid confusion from duplicate names or shared contact information. If you do not have the lookup IDs, we recommend searching by email addresses as an alternative because they are relatively reliable and searchable constituent identifiers.

Additionally, if you aren’t currently using lookup IDs to track custom data source mapping, or if you are mapping to multiple custom data sources, we recommend using a custom field to track the external system IDs for your custom data source in Raiser’s Edge NXT.

One last thing to keep in mind while searching is to be wary of data that has changed in the incoming update list, such as new constituent names. You will not be able to effectively search on these values since the changes are not yet reflected in Raiser’s Edge NXT when performing an incoming data sync. Therefore, it is recommended that your search criteria is as stable as possible.


Add or Update Constituents 

After searching based on your desired constituent identification criteria, you will go through a workflow similar to the following, as defined by your organization’s policies and procedures:
  • If a single constituent is found, update it with the incoming information from your custom data source using the PATCH Constituent endpoint.
  • If multiple constituents are found, identify the correct constituent using supplemental information, such as a custom field, and update it. 
  • If the constituent is not found after searching on your desired criteria, add the incoming value as a new constituent using the POST Constituent endpoint. Be sure to add any custom fields that are used to track IDs in the custom data source when adding a constituent, as well.

Hope you have successful syncing!
Posted by Lori Weiss on May 3, 2017 12:01 PM America/New_York

Leave a Comment

Log in to post a comment.