Errors from Prospect Status API

When I hit the Prospect Status API, I get 500 responses


https://api.sky.blackbaud.com/constituent/v1/constituents/xxxxxx/prospectstatus:


500 no implicit conversion of String into Integer


Anyone else experience this or know a work-around?  The only parameter is the constituent ID that is passed in the URL

Comments

  • Is anybody watching this forum?
  • Hi Adam,


    Make sure you are specifying the constituent system record ID (which will be an integer), not the user-definable constituent lookup ID (which can be a string).
  • Thanks, Ben.  I am using the system record ID.  This is the field that is just labeled "id" in the JSON response to a Constituent request, right?
  • I have investigated further and here is what I have found:  There is a third ID.  It's not the constituent ID and it's not the lookup ID.  This is what I believe Ben meant by "system record ID."  The only place I have been able to find this Id is in the URL on the UI:  https://renxt.blackbaud.com/constituents/XXXXXX where XXXXXX is the system record ID.


    I don't see this ID in the Constituents API anywhere.  There is an "ID" field, which is the "Constituent ID" and there is a "lookup_id" field.  Where is the value I need to make the subsequent call for prospect status?
  • Hi Adam,


    Glad to see you got this working - and apologies for the confusion in our terminology between the API and product UI itself (you're not the first to hit this, and there's a long history behind why things are named as they are). 


    You are (mostly) correct - the identifier value you need to use exclusively throughout the Constituent (and other) SKY APIs is that "immutable" system record identifier that you see in the address bar.  That value is often confused with another unique identifier for a constituent, the "lookup ID", which is a value that can be set/changed by the user (whereas the identifier needed/used by the SKY API cannot be set/changed by the user).  The confusion generally comes because of the way the Lookup ID field is presented in the UI (it's labeled "Constituent ID" as that is more user-friendly).  So only 2 unique identifiers on the constituent entity, not 3 . 


    So unless explicitly stated in the API, you'll need to use the "immutable" system record ID for all API calls (and that's the value that will be returned in APIs response that have references to other related records). 


    Specifically for Constituents - the identifier values you provide to and receive back from the SKY API will be integer values.  Note that you can use the SearchConstituent endpoint and provide the lookup ID value as the search_text parameter in order to get back the constituent entity and see the actual lower-level "immutable" system record ID.


     

Categories