Questions: API Development for connecting with Raiser's Edge NXT
To whom it may concern,
My company is actively developing out a sync between Blackbaud and our MMS platform to support an API integration with one of your fraternal clients. We have run into a few roadblocks/questions that we can't seem to find the answers for through SKY api or support documentation we have been provided. I've summarized the team’s questions below. Any assistance or direction on these questions would be greatly appreciated.
1. In our mapping documents, there are fields for InitiatedDate, InitiatedGroupName, TimeZone, and Deceased. We were unable to locate associated fields for these in the Blackbaud system. Does anyone know these Blackbaud Field Names or where to point us to find these values?
Mapping Document - https://www.screencast.com/t/gxVMuHdmjmD
2. In Blackbaud we have a column named "Type", it can have a value either "Individual" or "Organization". I assume we will consider only records of type "Individual" if we are looking at only syncing member records. Is this correct?
3. We have identified fields for date_added and date_modified in Blackbaud, which can be utilized for Polling, a method of our two systems communicating changes back and forth. We wanted to be sure we can use this method or if Blackbaud has a preference on Polling vs Webhook for identifying and communicating these changes. Are we good to proceed on using date_added and date_modified for Polling?
4. As per the mapping document, AccountID and MemberType are mapped to membership api (membership.id and membership.category). When we try those fields it gives a forbidden error - https://drive.google.com/file/d/1R-WUgiO-tFuYIYLqlpw4F8LJlRCHrklm/view.
Should we be looking at different fields or perhaps an additional permission may need to be enabled?
Mapping Document - https://www.screencast.com/t/gxVMuHdmjmD
5. There seems to be no delete Constituent api in Blackbaud. There is a column named “Inactive” in constituents api. This field indicates whether the constituent is inactive. Can we use this field to identify records that are deleted from our system? Or is there perhaps a delete Consituent api available that we have missed?
6. As per the documentation https://developer.blackbaud.com/skyapi/docs/authorization, in order to access SKY api’s thru Cloud Elements, we need to pass client_id and redirect_uri as query string. To get these values we must create and register an application with Blackbaud. Is there another way or is this the only option we have?
Truly appreciate any assistance on these. Please let me know if anyone would like me to expand on any of the items above.
Regards,
Greg
My company is actively developing out a sync between Blackbaud and our MMS platform to support an API integration with one of your fraternal clients. We have run into a few roadblocks/questions that we can't seem to find the answers for through SKY api or support documentation we have been provided. I've summarized the team’s questions below. Any assistance or direction on these questions would be greatly appreciated.
1. In our mapping documents, there are fields for InitiatedDate, InitiatedGroupName, TimeZone, and Deceased. We were unable to locate associated fields for these in the Blackbaud system. Does anyone know these Blackbaud Field Names or where to point us to find these values?
Mapping Document - https://www.screencast.com/t/gxVMuHdmjmD
2. In Blackbaud we have a column named "Type", it can have a value either "Individual" or "Organization". I assume we will consider only records of type "Individual" if we are looking at only syncing member records. Is this correct?
3. We have identified fields for date_added and date_modified in Blackbaud, which can be utilized for Polling, a method of our two systems communicating changes back and forth. We wanted to be sure we can use this method or if Blackbaud has a preference on Polling vs Webhook for identifying and communicating these changes. Are we good to proceed on using date_added and date_modified for Polling?
4. As per the mapping document, AccountID and MemberType are mapped to membership api (membership.id and membership.category). When we try those fields it gives a forbidden error - https://drive.google.com/file/d/1R-WUgiO-tFuYIYLqlpw4F8LJlRCHrklm/view.
Should we be looking at different fields or perhaps an additional permission may need to be enabled?
Mapping Document - https://www.screencast.com/t/gxVMuHdmjmD
5. There seems to be no delete Constituent api in Blackbaud. There is a column named “Inactive” in constituents api. This field indicates whether the constituent is inactive. Can we use this field to identify records that are deleted from our system? Or is there perhaps a delete Consituent api available that we have missed?
6. As per the documentation https://developer.blackbaud.com/skyapi/docs/authorization, in order to access SKY api’s thru Cloud Elements, we need to pass client_id and redirect_uri as query string. To get these values we must create and register an application with Blackbaud. Is there another way or is this the only option we have?
Truly appreciate any assistance on these. Please let me know if anyone would like me to expand on any of the items above.
Regards,
Greg
0
Comments
-
Hi Greg. We recently created a new "headless data sync" sample application to serve as a reference for scenarios looking to do data syncs. The sample has some information in the readme about the approach as well as links to further documentation on the topic of syncing via modification dates. You can get to the sample from following the links in this post https://community.blackbaud.com/blogs/69/6782
While that sample does not address the details of the field mappings it should at least show how to handle the polling for date modified and how you can use a token you obtain from the OAuth code flow.
I can also give you a quick answer on the constituent delete. There is not a way do delete a Constituent via the API, however you can mark a constituent as Inactive. In RE a Delete has always been a hard delete whereas Inactive is more of a soft delete that can be undone, with many features in RE excluding inactive records by default.2 -
Paul Gibson:
Hi Greg. We recently created a new "headless data sync" sample application to serve as a reference for scenarios looking to do data syncs. The sample has some information in the readme about the approach as well as links to further documentation on the topic of syncing via modification dates. You can get to the sample from following the links in this post https://community.blackbaud.com/blogs/69/6782
While that sample does not address the details of the field mappings it should at least show how to handle the polling for date modified and how you can use a token you obtain from the OAuth code flow.
I can also give you a quick answer on the constituent delete. There is not a way do delete a Constituent via the API, however you can mark a constituent as Inactive. In RE a Delete has always been a hard delete whereas Inactive is more of a soft delete that can be undone, with many features in RE excluding inactive records by default.Hey Paul,
Really appreciate the quick answer! I must have missed the email that this received a reply and was circling back around. Let me share this information with the team.
Again, really appreciate it!
0 -
Hey Paul,
The team was able to gain some insight from your provided blog, thanks a ton!
Everyone,
It looks like we are still seeing the following error:
As per the mapping document, AccountID and MemberType are mapped to membership api (membership.id and membership.category). When we try those fields it gives a forbidden error - https://drive.google.com/file/d/1R-WUgiO-tFuYIYLqlpw4F8LJlRCHrklm/view.
Should we be looking at different fields or perhaps an additional permission may need to be enabled?
Mapping Document - https://www.screencast.com/t/gxVMuHdmjmD
Bit lost on where to go from here if you have any sort of additional direction?0 -
There are 2 reasons you could be getting a 403 on that endpoint:
1. The user who was prompted and granted the OAuth prompt for the token you are using does not have permission to view membership data.
2. The environment that you are accessing does not have the optional RE:Membership module enabled.
The Membership fields are available only if an optional Membership module is enabled for a customer.
If you can see the Membership tile on a Constituent record page in the RENXT webview ux then that api endpoint should be working for you. If you cannot see the Membership tile on a Constituent record page in the webview ux then that would indicate that either 1 or 2 above are preventing you from seeing that tile in the ux and also from using that api endpoint.0 -
Hey Paul,
Truly appreciate the help. I'm going to pass this onto the team and circle back once they've had a chance to check.
Thanks again!!0
Categories
- All Categories
- 6 Blackbaud Community Help
- 213 bbcon®
- 1.4K Blackbaud Altru®
- 403 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 1.2K Blackbaud CRM™ and Blackbaud Internet Solutions™
- 15 donorCentrics®
- 360 Blackbaud eTapestry®
- 2.6K Blackbaud Financial Edge NXT®
- 656 Blackbaud Grantmaking™
- 577 Blackbaud Education Management Solutions for Higher Education
- 3.2K Blackbaud Education Management Solutions for K-12 Schools
- 940 Blackbaud Luminate Online® and Blackbaud TeamRaiser®
- 84 JustGiving® from Blackbaud®
- 6.7K Blackbaud Raiser's Edge NXT®
- 3.7K SKY Developer
- 249 ResearchPoint™
- 119 Blackbaud Tuition Management™
- 165 Organizational Best Practices
- 241 Member Lounge (Just for Fun)
- 34 Blackbaud Community Challenges
- 37 PowerUp Challenges
- 3 (Open) PowerUp Challenge: Grid View Batch
- 3 (Closed) PowerUp Challenge: Chat for Blackbaud AI
- 3 (Closed) PowerUp Challenge: Data Health
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Product Update Briefing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports+
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Email Marketing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Gift Management
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Event Management
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Home Page
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Query
- 796 Community News
- 3K Jobs Board
- 54 Blackbaud SKY® Reporting Announcements
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)

