Blackbaud CRM integrates with BBIS, and emails can be sent from either system. At my workplace, we typically use Marketing Efforts to send emails, and therefore need to also manage Packages and Email Messages. The built-in workflow is quite confusing as you need to move through several disjointed pages when uploading the email and sending a test message, so I created a functional area to make this process much more efficient and pleasing to use. Enjoy!

Please note, all screenshots are blurred to hide sensitive information.

User interface

As you can see, there is a tab for each activity that users perform -- manage messages, manage packages, and sending a test email. Note they are presented in the order that the tasks are performed as well. The packages page has some enhancements as well; packages are displayed by category, and are filterable and searchable:

Our instance of Blackbaud CRM has the Events module installed, and so I chose to use an Event Invitation to send tests from, as you can select recipients individually. The 'Send test' page therefore lists these special Event invitation records, which then take you to the default invitation edit page:


I didn't want to modify the default interface, so I created an entirely new page for this area. I then created a Packages data list, and a Event Invitation data list. There is no Email Message source type available, so you have to reuse the default Email Message Data List which is built in to the system. The exact details are below.

Note: if you do not have the Event module installed, I would recommend to perhaps create a dummy Marketing Effort for the purposes of testing emails. You can have a simple ad-hoc query Universe on it, and have a link to the ad-hoc query on the Send test page; then have a link to the marketing effort where you can then recalculate segment counts & export. Not the most efficient workflow, but still better than default.

Email messages tab

  • use the inbuilt datalist: Email Message Data List
  • copy the actions from the inbuilt list of emails (enter design mode, then hit 'Edit actions' as per screenshot below). At my organisation, we prefer to create new email messages by copying existing ones (to reduce chance of typos in ), so I didn't include any of the Add actions.

Packages tab

  1. Create a new datalist from an ad-hoc query with a source view type of Packages. I have a special category called Inactive which I use to tag packages when they are no longer used, and I created a selection of all packages in this category. This means you can filter inactive packages out of your view -- whether you do this or not is totally optional!

If you would like to display by category, ensure to sort the records appropriately:

  1. Add datalist to the tab as a section. If you would like packages displayed by Category, then these are the important settings you will need to adjust:
  2. Copy actions from the default, built-in Packages list, similar to how you copied them from the Email Message list. Note that there are multiple types of Edit actions. I've made them show when you click on the Name of the package, but you also need to ensure that only one Action is visible per package. Details in screenshot below.

Sent test tab

Again, this implementation requires that you have the Events Module installed. If not, try having a list of marketing efforts there instead.

  1. You will need to create a dummy event for this to work. I called mine '[TEST EMAILS HERE]'. Under this dummy event, create an Invitation. This will be used to send tests from. I have multiple invitations, one for each type of email that we send, but you can set it up in whatever way works best for your organisation.
  2. Create a new data list from an ad hoc query with a source view type of Events. Set it up as follows (note that we filter to only include the dummy event record you created), and add it under your 'Test' tab:

And Bob's your uncle! You now have a beautiful interface for sending test emails, that models your workflow, and allows your coworker friends to play around in the system, testing emails without fear of accidentally breaking anything.