Best Of
Re: Delete Constituent
@Nancy Bakke That sounds like a permissions issue at your organization. If you are the admin and have full rights then you might need to check in with support.
Developer Blog Series: A REST Client Is Your Friend
However, regardless of your intended usage of the API, you’re going to have instances where the API calls your app is making just aren’t returning the results you want or aren’t performing the resource actions you’d expect. When this happens (and after your trial-and-error app code changes don’t fix the problem), it might be a good idea to take a step back, replicate the scenario in a REST client, and work with the request until you figure out the issue. Working with the request parameters directly from within a client will likely be much easier to do than making a series of code changes based on hunches, so it is helpful to have one of these tools at your disposal.
A common flavor of these tools comes in the form of HTTP or REST-focused clients like Advanced REST Client, Postman, Insomnia REST Client, and Paw, to name a few that Google lists prominently. If you’re a veteran of using REST APIs, you’re probably already familiar with these. If you aren’t, then congrats, this blog post is geared more toward you! This style of client varies in advanced functionality, but at a minimum, they provide a nice user interface for users to define a set of properties by which to construct an HTTP request. This is to say that that these applications provide pretty boxes for you to set the URL, HTTP method, headers, query string parameters, and body of a given request, which you can ultimately execute. The more popular clients, such as those mentioned above, store a history of requests for reference later and facilitate collaboration through exporting collections of archived requests. The better clients also provide for the ability for users to define variables that can be used across multiple requests.
On the SKY API team, although we haven’t officially endorsed the product, we have adopted Postman as our go-to REST client. It satisfies our needs for what a client should do, and sharing a common REST client also allows us to share our archived requests with other team members. This blog post is not intended to teach you how to use Postman, which you can learn more about via the official Postman documentation. Rather, I would like to show how we use this tool on the API team and why using a REST client such as Postman is handy to facilitate exercising API endpoints.
Making a call to the API
Fig 1. Example of an API call made using the Postman client

The above screenshot shows a call to the Action (Get) Constituent API endpoint using Postman. To make this call, I need to provide:
- The URL of the request
- The HTTP method (GET)
- The Authorization header using a valid access token
- The bb-api-subscription-key header using the API subscription key from my API developer account.
Fig 2. Postman history

The ability to recall and ‘replay’ an old request is an important feature, and it is one that gives the client an advantage over the handy Endpoint Reference ‘Try it’ feature (aka the Developer Console) in the SKY API documentation. However, the above example by itself doesn’t really show a compelling case for Postman. If you only need a tool to make a single API call, then the SKY API console is great. The added benefit of using a client such as Postman is that it provides functionality that facilitates quickly building additional requests. One of these features is user-defined variables.
Working with user-defined variables
The power of archiving old requests is that you can easily recall these requests and execute it again, or you can use the request as a template by altering parameters to make an entirely different request. One annoying aspect that prevents this from being a quick task for SKY API requests is that if enough time passes after the original call is made, your access tokens expire, or your subscription key gets regenerated, or the latest API version number changes, etc. In other words, if enough time passes, some parameters of your original request are invalid when you attempt to execute the request in the future.
Fortunately, clients such as Postman allow for user-defined variables. By establishing these variables, using them throughout your requests, and updating them when necessary, you’ll be able to run existing and build new requests without the additional copy/paste needed when previous request properties need updating.
Fig 3. Action (Get) request using Postman variables

This screenshot shows Postman making the same Action (Get) call using variables that I’ve defined. I have defined variables for the Constituent API base URL, the Authorization header value, and my API subscription key. If the base URL changes for the Constituent API (e.g. the Sky API team updates the latest version number for the Constituent API), my API subscription key is regenerated, or my access token expires, I can easily update my variables and the requests I’m currently working on and my archived requests will use the updated values.
Sharing scripted requests
With all of the requests you’ll be making to the API, it’s nice being able to organize archived requests for easy reference later. Many clients let you do just that (Postman calls these organized sets Collections). It’s also nice being able to share those collections with others to save them from having to build these requests themselves or to demonstrate different behaviors of the API. A good client will let you do that too.
On the SKY API team, we export and share collections to facilitate testing, demonstrate different API behaviors, or just to save each other the time it takes to construct our own requests for a given set of endpoints (e.g. CRUD endpoints around Actions, Address, Email Address, etc… from the Constituent API). While we on the SKY API team are experts on calling our own API, we are individuals working on separate API endpoints (or different aspects of the API infrastructure altogether), so even we keep a repository of these Postman collections. It may help your teams to collaborate as well.
In Conclusion
I’ve covered just a few cases for why a REST client is an important tool for us. However, I hope I’ve conveyed a bit of what for how it might help you and your teams. There are many additional features I didn’t covered such as: Environment-based user-defined variables (especially important to an API team exercising endpoints in multiple states of the development lifecycle); building integration test suites (also pretty applicable to an API team); and even cloud storage to facilitate in the sharing of collections. However, even with their core functionality, REST clients are excellent tools and definitely ones you’ll want to consider if you plan on working with REST APIs.
Reports previously ran
When waiting for a report to finish running I'll sometimes click on another tab in NXT and then the window in the bottom right is gone and I have to go and run the report again. Is there a place in the system to go view those reports I have ran, or do I have to sit on the same page and wait until they are completed, and re-run the same report over if I need to look back at it again? I don't want to save every report I run while doing reconciliations but do end up having to rerun the same one over again, especially if I load a different screen while waiting for the report to load.
Re: Who gets the physical mail and what happens next?
@Christian Hill we too are a small office and our auditors require that the person opening the mail is not the same person recording the gifts. Simply a best practice to prevent potential fraud as well as lending confidence to the process.
Having said that our process is similar to your process. One staff member receives the mail, date stamps it, sorts it and scans any checks. Checks are then given to Finance for deposit. We have a dedicated staff member who receives the scans and enters all of the gifts via batch.
We do not receive a large number of checks, but this process is efficient.
I will share that our biggest problem right now is the time it takes for mail to arrive. We have had some donors and board members who live in the same town drop an envelope to the local post office with a first-class stamp and it still takes up to 7 days to arrive. It has been a struggle which we are working with our postmaster to correct.
Re: Best Practices for Storing Data to Maximize seamless Data Output/Reports
@Stephanie Pagan I like this idea.
My current organization uses a lot of custom fields/attributes. We use them mostly on gift records and constituent records. Some of our gift attributes are things like Name on Check, DAF Gift, Number of Shares, and things that don't have a specific place in the database.
Re: Best Practices for Storing Data to Maximize seamless Data Output/Reports
@Stephanie Pagan
Here is a best practice example for event gifts:
Campaign: Event
Appeal: 2025 Gala
Packages (under the Appeal):
- Platinum Title Sponsor
- Gold Sponsor
- Silver Sponsor
- Bronze Sponsor
- Individual Ticket(s)
- Donation
- Silent Auction
Fund: (This code matches Finance)
Link the gift to the event record as a registration, even for donations, so you can track if commitments are paid easily in the participant list under the event in web view.
Re: Report for daily record changes in database or NXT view
Thank you @Christine Robertson for the shout out.
@Payal Sen As Christine said, Audit Trail will track changes that are made across Raiser's Edge so that you can report on who made the change, when it was made and what the values were before and after the change. Please feel free to get in touch via our website and I or one of my colleagues would be happy to answer any of your questions: www.zeidman.info
Re: Life time giving and event registration fees
@Mark Bezanson
If you don't like Blackbaud definition of “stuff” (donor lifecycle, what is consider “giving” and what isn't), you will have to go the custom route. Building a custom report that “fits” to your org use of RE data table's field. An option is to use Power BI via a custom connector or Power Automate. It does have a learning curve, so if you want to learn more, hop over to developer.blackbaud.com
Re: Who gets the physical mail and what happens next?
@Christian Hill I'll answer the last question first. I think that RE training is mandatory by all staff that may need access to the database. Everyone needs to understand how to at the minimum navigate around a record.
Regarding the separation of duties, it's generally been accepted that best practice is that no one role is responsible for handling two consecutive parts of the process. This is also the advice of the aasp best practice for gift processing (I would link it here but it is locked to members only). In this case, your front desk staff is responsible for collection of the gifts and the gift entry. If a gift is lost or missing, there's no way to reconcile as the gifts would not ever be accounted for, as the same person is received the gift, scanned the correspondence, and entered the gift. If all of these individuals are in the same space, I think it allows for some flexibility. But to be honest, you have to work with the staff you have, so it's two people where there ideally would be a third. There should never only be one set of eyes on it…even if just there is someone else logging the gifts that come in.
Re: Who gets the physical mail and what happens next?
@Dariel Dixon We are a super small team, so at the moment it's really only the front desk person, or myself who are available for it.
Just curious, how do you figure there is more error protection with a separation of these roles? Front desk puts the batch together & scans, then I review the scans against the batch giving the data entry 2 sets of eyes instead of just 1.
For our small team, I see some big advantages, mostly around cross training & time savings.
Since people also call/use the front desk to make donations, it's been very helpful to have RE training there. We can get phone number / email / address info updated without having to send an email to the “raisers edge person” just so that they can update a record. For basic contact updates, it's not really any harder than updating any online profile, So long as I can keep my security settings tight and my training strong, I feel really confident about data security while moving our database to be more dynamic than previously.
I ask that they default to putting less information in about a gift unless it's a certainty and then when I review I just fill in the gaps.
Also, forgot to add that after the scans are done, front desk will drop the donations with finance team for deposit.
Another open question for the thread, does your org have any RE training for the front desk person?






