Introduction to Customizations, SDK, and API

This article is a reprint from Ron Frum's article on www.blackbaudknowhow.com. Ron is a seasoned Blackbaud veteran and provides good insight into the capabilities of the Infinity platform.

These three words often strike fear into System Administrators and Technical Account Managers alike. I also hear them used interchangeably, which can lead to some confusion. I’d like to go through each of them and provide a high level overview to help clear up any confusion between the three. I’ll focus on Blackbaud CRM, but many of the concepts apply to other software packages as well.

A customization is a feature that is not included in Blackbaud CRM and was developed by… Well, a customization could be developed by a number of people. Our Professional Services team has created customizations of all shapes and sizes. Many organizations also have developers on staff that can create customizations. Third-party companies and Blackbaud partners also create customizations.

An SDK (Software Development Kit) is a set of tools that helps developers create customizations. The Blackbaud CRM SDK used to create Blackbaud CRM customizations includes documentation, templates, utilities, and code samples that help developers learn the platform and maximize their efficiency. For example, the SDK includes a data dictionary with detailed information about every object in the database as well as full source code for stored procedures, functions, and triggers.

An API (Application Programming Interface) is a particular set of rules and specifications that software programs can follow to communicate with each other. For example, Blackbaud CRM includes a web service API that allows other applications to communicate with Blackbaud CRM through the web. It’s possible to use the web service API to display constituent data from Blackbaud CRM in another application such as a website or third-party program. It can also be used to add or update data in Blackbaud CRM. APIs can be invaluable when building integrations between multiple products.

In summary:

A customization is a specific feature that does not exist in the core product.

An SDK is a set of tools that a developer uses to build a customization.

An API is an interface used by a software program to interact with another program.