SKY Add-ins allow developers to build complementary features that integrate deeply within the user interface of Blackbaud's solutions. With add-ins, developers can use familiar web development technologies such as HTML, CSS, and JavaScript to augment out-of-box product areas with new functionality.
For example, with add-ins you can:
Add-ins are implemented as web applications that run external to the Blackbaud host application, so they can do almost anything that a webpage can do inside a browser. At runtime, the host application provides an isolated sandbox iframe that contains the add-in page, and provides context values needed to load the add-in.
The add-ins framework provides the following:
For consistency, efficiency at scale, and the most cohesive visual experience, we use the SKY UX ecosystem at Blackbaud. To support that ecosystem, we have also created a first-class SKY Add-in Angular Service.
While a SKY UX / Angular implementation works best for us, it is not a requirement for creating a SKY Add-in. Check out how to use the generic sky-addin-client in our vanilla sky-addin example.
Add-ins are defined as part of your SKY application within the SKY API developer portal. There are two basic components of an add-in: an extension point (described below) and the URL of your own web application.
Add-ins are associated with specific locations within the Blackbaud user interface, known as extension points. The extension point represents a named location in the user interface where add-ins can be rendered, and it defines both the "class" of add-in (tile, button, tab, etc.) as well as the shape of the context values that will be provided at runtime.
Tile add-ins can be created for selected pages within the system that support a dashboard of tiles. Custom tiles will persist state and location on a per-user basis along with other native tiles.
Button add-ins can be created for selected pages within the system that support page-level actions.
Page add-ins can be created to provide full-page user experiences that maximize the screen real estate and keep users in-product.
Over time, we'll introduce support for new types of add-ins and new extension points within the system.