> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hotglue.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Blackbaud

# Connector Details

| Name           | Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Platform       | [Blackbaud](https://blackbaud.com)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Auth Type      | OAuth                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Direction      | Bidirectional                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Tap Repo       | [https://github.com/hotgluexyz/tap-blackbaud](https://github.com/hotgluexyz/tap-blackbaud)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Target Repo    | [https://gitlab.com/hotglue/target-blackbaud](https://gitlab.com/hotglue/target-blackbaud)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Tap Metrics    | <p>Usage: <Tooltip tip="low"><Icon icon="user" iconType="regular" color="#fff" size="14px" /><Icon icon="user" iconType="regular" color="#fff" size="14px" /><Icon icon="user" iconType="regular" color="#A9A9A9" size="14px" /><Icon icon="user" iconType="regular" color="#A9A9A9" size="14px" /></Tooltip><br />Success Rate: <Tooltip tip="high"><Icon icon="circle-check" iconType="regular" color="#fff" size="14px" /><Icon icon="circle-check" iconType="regular" color="#fff" size="14px" /><Icon icon="circle-check" iconType="regular" color="#fff" size="14px" /><Icon icon="circle-check" iconType="regular" color="#fff" size="14px" /></Tooltip></p>         |
| Target Metrics | <p>Usage: <Tooltip tip="low"><Icon icon="user" iconType="regular" color="#fff" size="14px" /><Icon icon="user" iconType="regular" color="#fff" size="14px" /><Icon icon="user" iconType="regular" color="#A9A9A9" size="14px" /><Icon icon="user" iconType="regular" color="#A9A9A9" size="14px" /></Tooltip><br />Success Rate: <Tooltip tip="medium"><Icon icon="circle-check" iconType="regular" color="#fff" size="14px" /><Icon icon="circle-check" iconType="regular" color="#fff" size="14px" /><Icon icon="circle-check" iconType="regular" color="#A9A9A9" size="14px" /><Icon icon="circle-check" iconType="regular" color="#A9A9A9" size="14px" /></Tooltip></p> |

# Credentials Setup

The Blackbaud connector uses the [SKY API](https://developer.blackbaud.com/skyapi/docs/authorization) OAuth 2.0 flow to read from and write to your customers' Blackbaud environments. To use it with hotglue, you need a [SKY Developer account](https://developer.blackbaud.com/skyapi/account), a SKY API subscription key, a registered SKY application, the application's OAuth credentials, and at least one hotglue callback URL configured as a redirect URI.

The person setting this up should be able to create and manage SKY applications in the Blackbaud developer portal, subscribe to the relevant SKY API product, and—if needed—have a Blackbaud user with Marketplace admin permissions connect the application to the relevant environment.

## 1. Create a SKY Developer account

Sign in to the [SKY Developer account](https://developer.blackbaud.com/skyapi/account) portal. If you do not already have a Blackbaud ID, you are prompted to create one when you sign up. See the [SKY API basics](https://developer.blackbaud.com/skyapi/docs/basics/) documentation for more background on developer accounts and Blackbaud IDs.

Once signed in, you land on the Developer account page. From here, you can open **My applications** to create and manage your SKY applications, or **My subscriptions** to manage API subscription keys.

<Frame caption="Sign in to the SKY Developer account portal, then open My applications or My subscriptions">
  <img src="https://mintcdn.com/hotglue/N-4I4VGQmLbD_oFN/images/Blackbaud-Dev-Portal.jpeg?fit=max&auto=format&n=N-4I4VGQmLbD_oFN&q=85&s=20c1b0d4e4dcfa0f4e6656930b7e843a" alt="Blackbaud SKY Developer account portal with My applications" style={{ width: "100%" }} width="2972" height="1792" data-path="images/Blackbaud-Dev-Portal.jpeg" />
</Frame>

## 2. Get a SKY API subscription key

Blackbaud requires a subscription key on every SKY API request. In the developer portal, open **My subscriptions**, subscribe to the **Standard APIs** product (or the API product that covers the endpoints your integration uses), and copy either the primary or secondary key.

The tap expects this value as `subscription_key`, and Blackbaud sends it on requests as the `Bb-Api-Subscription-Key` header. See Blackbaud's [My subscriptions](https://webfiles-sc1.blackbaud.com/files/support/helpfiles/skydev/content/plat-skydev-subscriptions.html) docs for details on subscribing and finding your keys.

<Frame caption="Copy the primary or secondary access key from your Standard APIs subscription">
  <img src="https://mintcdn.com/hotglue/N-4I4VGQmLbD_oFN/images/BlackBauld-Subscription-Keys.jpeg?fit=max&auto=format&n=N-4I4VGQmLbD_oFN&q=85&s=9f4fd8c88800526b905406c0e71f2fcc" alt="Blackbaud My subscriptions page showing Standard APIs primary and secondary access keys" style={{ width: "100%" }} width="2414" height="988" data-path="images/BlackBauld-Subscription-Keys.jpeg" />
</Frame>

## 3. Create a SKY application

A [SKY application](https://developer.blackbaud.com/skyapi/docs/applications) represents your integration in Blackbaud and is required to make SKY API calls. Creating an application produces the OAuth credentials hotglue needs during authorization.

From **My applications**, click **+ New application** and fill out the required fields:

* **Application name**
* **Application details**
* **Publisher** (public organization name)
* **Application website URL**

An application logo is optional. Click **Save** when you are done.

<Frame caption="Create a new SKY application in the Blackbaud developer portal">
  <img src="https://mintcdn.com/hotglue/N-4I4VGQmLbD_oFN/images/Blackbaud-Step1.jpeg?fit=max&auto=format&n=N-4I4VGQmLbD_oFN&q=85&s=4325a83f35fdee0d34a5fc88977daf89" alt="Blackbaud Add application modal with required fields" style={{ width: "100%" }} width="3010" height="1692" data-path="images/Blackbaud-Step1.jpeg" />
</Frame>

## 4. Copy OAuth credentials

Open your application and copy the credentials from the application page:

* **Application ID** → hotglue `client_id`
* **Primary application secret** → hotglue `client_secret`

The Application ID is not sensitive and can be shared with Blackbaud admins who need to connect your app. The application secret is sensitive — treat it like a password and do not share it. Blackbaud provides primary and secondary secrets so you can rotate credentials; see [Application secrets](https://webfiles-sc1.blackbaud.com/files/support/helpfiles/skydev/content/plat-skydev-apps-secrets.html) for rotation guidance.

<Frame caption="Copy the Application ID and Primary application secret for hotglue">
  <img src="https://mintcdn.com/hotglue/N-4I4VGQmLbD_oFN/images/Blackbaud-Step2.jpeg?fit=max&auto=format&n=N-4I4VGQmLbD_oFN&q=85&s=582f393444a7483b85fe2e2f1db16a37" alt="Blackbaud application page with Application ID and client secret" style={{ width: "100%" }} width="3006" height="1604" data-path="images/Blackbaud-Step2.jpeg" />
</Frame>

## 5. Configure redirect URIs

In your application settings, open **Redirect URIs** and add the hotglue callback URL for your environment. Blackbaud requires the OAuth `redirect_uri` to match one of your registered URIs exactly, including trailing slashes. See the [Authorization](https://developer.blackbaud.com/skyapi/docs/authorization) and [Redirect URIs](https://help.blackbaud.com/docs/0/assets/skydev/content/plat-skydev-apps-settings-redirect-uris.html) documentation for details.

Add the callback URL that matches where your hotglue environment runs:

```text theme={null}
https://hotglue.xyz/callback
```

If you use a [custom OAuth callback domain](https://docs.hotglue.com/environment-settings/white-label) instead of `hotglue.xyz`, add that callback URL here as well.

<Frame caption="Add hotglue callback URLs as redirect URIs">
  <img src="https://mintcdn.com/hotglue/N-4I4VGQmLbD_oFN/images/Blackbaud-Step3.jpeg?fit=max&auto=format&n=N-4I4VGQmLbD_oFN&q=85&s=5a7ec4611bf6eba585651d8da6f06249" alt="Blackbaud Redirect URIs settings with hotglue callback URLs" style={{ width: "100%" }} width="2966" height="540" data-path="images/Blackbaud-Step3.jpeg" />
</Frame>

## 6. Connect the application in Blackbaud

Before your application can access data in a Blackbaud environment, it must be connected to that environment. If you are integrating with a customer's Blackbaud organization, a user with Marketplace admin permissions must connect the app for you.

To connect the application:

1. Open the [Manage applications](https://help.blackbaud.com/docs/0/assets/marketplace/content/plat-market-manage-apps.html) page in the Blackbaud Marketplace.
2. Use **Connect app** and paste your application's ID.
3. Confirm the connection.

See [Connect an application](https://webfiles-sc1.blackbaud.com/files/support/helpfiles/marketplace/content/plat-market-connect-app.html) for step-by-step instructions. API access is further limited by the consenting user's security permissions within Blackbaud.

If you have access to the SKY Developer Cohort sandbox environment, your application may already be connected and you can skip this step.

## 7. Add Blackbaud to hotglue

Once you have your subscription key, OAuth credentials, and redirect URIs configured:

1. Go to **Settings** > **Connectors** in your hotglue environment.
   1. Open **Bi-Directional Connectors** if you use bi-directional flows (`linkedConnectors`), then search for `Blackbaud`.
   2. Open **Sources & Targets** if you use one-way source or target flows (`linkedSources` / `linkedTargets`), then search for `Blackbaud`.
2. Add your subscription key to the Blackbaud JSON definition:
   * If modifying a **Connector** (v2), set `options.config.subscription_key` to your Blackbaud subscription\_key value.
   * If modifying a **Source** or **Target** (v1), set `config.subscription_key` to your Blackbaud subscription\_key value.
3. Save the definition.

See [Connector management](https://docs.hotglue.com/key-concepts/connectors/v2-connectors/management), [Connector settings](https://docs.hotglue.com/key-concepts/connectors/v2-connectors/settings), [Source settings](https://docs.hotglue.com/key-concepts/connectors/v1-sources/settings), and [Target settings](https://docs.hotglue.com/key-concepts/connectors/v1-targets/settings) for details on configuring connectors in your environment.

## 8. Authorize and enable the connector

1. Add Blackbaud to your flow.
2. Enter your Blackbaud **Application ID** as the **OAuth Client ID** and your **Primary application secret** as the **OAuth Client Secret**.
3. Save and complete authorization with a test Blackbaud user. This enables the connector in your environment.

<Frame caption="Enter your Blackbaud Application ID and application secret in the hotglue Credentials tab">
  <img src="https://mintcdn.com/hotglue/N-4I4VGQmLbD_oFN/images/BlackBauld-Hotglue-Connect.jpeg?fit=max&auto=format&n=N-4I4VGQmLbD_oFN&q=85&s=64bc85f665f8cb547fea41dcfe479d4c" alt="hotglue Blackbaud source credentials form with OAuth Client ID and OAuth Client Secret fields" style={{ width: "100%" }} width="2470" height="1576" data-path="images/BlackBauld-Hotglue-Connect.jpeg" />
</Frame>

hotglue stores the OAuth `refresh_token` automatically after a successful authorization. You do not need to provide it manually.

After setup, your end users authorize Blackbaud through the standard OAuth consent flow when they link their account.

After this you're all set to go!

# Tap Changelog

<Accordion title="Tap Changelog">
  | Version                                                                                                                                           | Notes                                                                                                                                                                                                                          |
  | :------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | [v0.0.4 - Bump Singer SDK version](https://github.com/hotgluexyz/tap-blackbaud/releases/tag/v0.0.4)                                               | Bump Singer SDK version                                                                                                                                                                                                        |
  | [v0.0.3 - Avoid making extra requests unless selected in catalog](https://github.com/hotgluexyz/tap-blackbaud/releases/tag/v0.0.3)                | - Updated tap to avoid pulling `fundraiser_assignment` and other per-constituent fields unless they have been selected in the catalog                                                                                          |
  | [v0.0.2 - Add support for Education, Lifetime Giving, and Fundraiser Assignment](https://github.com/hotgluexyz/tap-blackbaud/releases/tag/v0.0.2) | - Added support for Education, Lifetime Giving, and Fundraiser Assignment<br />- Also added "online\_presence" and "preferred\_name"<br />- Removing "suffix" (which according to the documentation is not part of the schema) |
</Accordion>
