Developer Blog Series: System Record IDs Vs. Lookup IDs
Lately some confusion has surfaced in the Community and beyond about which ID is which when interacting with SKY API and its underlying products. I would like to provide some clarity on this front and hopefully provide some insight into why things work the way they do.
First off, I would like to focus on two types of IDs: system record IDs and lookup IDs. In short, system record IDs are the immutable, SQL-defined values that are added when you create records, whereas lookup IDs are customizable, secondary identifiers that users can define for particular records.
For SKY API, we use system record IDs as the primary identifier in entity models and routing structures primarily because of their immutable nature. If we leveraged lookup IDs instead, integrating with a system would be exceedingly difficult and unreliable when matching records with external data stores. For example, we could not guarantee that api.sky.blackbaud.com/constituent/v1/constituents/280 would consistently return Robert Hernandez. However, while we don't allow lookup IDs in our routes to ensure that records are returned consistent, you can use lookup IDs with the Constituent (Search) endpoint to find records with these alternative IDs. Search functionality does not currently exist for other record types , but if you would like to see it added, I encourage you to submit an idea.
Using the Constituent API as an example, the system record ID is the primary identifier for a constituent in SKY API, as populated by Raiser's Edge NXT. In this case, the ID is an auto-incrementing integer that can be found in the Raiser's Edge NXT web view routes or via the "System Record ID" output field in Database View queries.
All Raiser's Edge NXT URL routes match the pattern of renxt.blackbaud.com/{recordType}/{systemId}?tenantid=, so they can easily be leveraged to determine system record IDs when developing and testing your applications.
You can edit and view the lookup ID on the Constituent Summary tile in Web View or on the Bio 1 tab in Database View. On other record types, it is typically available in the summary information at the top of the record page in Web View and on the first tab on the record in Database View.
In a gift record from Raiser's Edge NXT, the system record ID is highlighted in green in the URL at the top, and the lookup ID is highlighted in blue on the record itself.
We recognize that lookup IDs have somewhat confusing labels as they are often simply referred to as "ID" in the product views. However, we will relabel and standardize these labels in the Web View to be consistent with the API moving forward in the hopes of preventing further confusion.
Hopefully this explanation is helpful and provides some much needed clarity!
Comments
-
Amazing! Just 30 minutes ago, I posted something about the ID in calls between FE- and RE-related endpoints being different (integer - as I think they should be - and string respectively).
One other thing I still don't get is why, say (Constituent) Record ID is called "constituent_id" rather than simply "id". That does confuse anyone coming from RE7 and its API. Also, when retrieving multiple constituents (via the constituents call), you end up with a fairly unwieldy request string (a bunch of "constituent_id=1234&constituent_id=5678... etc, rather than "id=1234&id=5678 ... etc).
Good article, and well-needed, I think, Halley. Thanks.
Steve
0
Categories
- All Categories
- 6 Blackbaud Community Help
- 209 bbcon®
- 1.4K Blackbaud Altru®
- 395 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 1.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- 15 donorCentrics®
- 359 Blackbaud eTapestry®
- 2.5K Blackbaud Financial Edge NXT®
- 646 Blackbaud Grantmaking™
- 563 Blackbaud Education Management Solutions for Higher Education
- 3.2K Blackbaud Education Management Solutions for K-12 Schools
- 934 Blackbaud Luminate Online® and Blackbaud TeamRaiser®
- 84 JustGiving® from Blackbaud®
- 6.4K Blackbaud Raiser's Edge NXT®
- 3.7K SKY Developer
- 243 ResearchPoint™
- 118 Blackbaud Tuition Management™
- 165 Organizational Best Practices
- 238 The Tap (Just for Fun)
- 33 Blackbaud Community Challenges
- 28 PowerUp Challenges
- 3 (Open) 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
- 779 Community News
- 2.9K Jobs Board
- 53 Blackbaud SKY® Reporting Announcements
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)


