As of April 17, 2018, this site is now in read-only mode. To start new Blackbaud Developer’s discussions, you will find Developer Discussions in the Blackbaud CRM Community.

To post or respond to Blackbaud Community discussions, you will have to login using a login. Learn how to login here. If you have questions or need assistance, please email


Adding Address Validation to a custom form

By: christi

Posted on: March 29, 2016

NOTE: You need to have Address Validation turned on before beginning. To see if Address Validation is enabled, open the Address Add Form 2, set the country to a country with Address Validation enabled, and ensure that the Validate button shows. At a minimum, your data form must have the following fields (though they can be named differently and can be hidden, they do need to exist in your form): COUNTRYID, ADDRESSBLOCK, CITY, STATEID, POSTCODE. In your form, add the UIAction that will trigger the validation: <UIAction ActionID="VALIDATEADDRESSACTION" Caption="Validate" Description="Perform... Read More
Categories: ,

New “Feature Groups” Developer Guide Materials Now Available

By: TripOtt

Posted on: January 2, 2014

Feature Groups fit into the overall design of feature security and system roles by allowing the SDK developer a better way to organize and manage the authorization of individual Infinity features, such as data forms, data lists, record operations, etc. into a larger logical feature. Feature Groups allow you to simultaneously grant rights to a multiple tasks and features instead of granting rights to individual forms, lists, and other items one at a time. They are designed to allow you to easily assign rights to related tasks that groups of users are likely to need.  more... Read More
Categories: ,

Creating a custom file downloader using the Infinity SDK

By: Patrick Shepherd

Posted on: December 9, 2013

Overview Downloading a custom file to the client is a common scenario SDK developers come across.  Here are some recent examples of custom downloads I've seen recently: Canadian EFT file that must have specific character encoding translations Post-to-GL file that has 3 header rows followed by groups of 3 repeating data rows (impossible to build using Infinity standard export/query functionality) Downloading of PDF documents from a 3rd party document imaging system. The following code demonstrates how to initiate a file download to a web-shell client.  It shows 2 different types of context whic... Read More
Categories: ,

bbcon2013 content

By: Ben Lambert

Posted on: October 17, 2013

For the benefit of my session attendees as well as folks who were unable to attend #bbcon this year, here are the slides, source code, and deployables from my session! Here are the slides: bbcon2013.InfinitySDK contains the source code (VB.NET) for the Gamification demo, which uses gaming techniques to drive user behavior in the application (for example, to incentivize fundraisers to file contact reports or complete prospect plan steps). This zip contains the Catalog, UIModel, Workflow, and Mobile projects: contains the files to depl... Read More
Categories: ,

Crafting HTTP Requests to AppFxWebService with Fiddler

By: TripOtt

Posted on: October 2, 2013

Introducing new API "How To" content within our developer guides for those who need to integrate applications with Infinity based products such as Blackbaud CRM, Altru, or ResearchPoint. Crafting HTTP Requests for the AppFxWebService.asmx and the associated step by step tutorial demonstrates how HTTP requests to AppFxWebService.asmx can be manually crafted for use and/or testing with tools like Fiddler.  This is a great way to learn how our API works. What you learn here will easily translate to your own programming language regardless of your OS.    ... Read More
Categories: ,

Building a Custom Constituent Map

By: UI Modeler

Posted on: September 26, 2013

By: Ben Lambert, Principle Software Engineer – Blackbaud Level: Advanced Introduction This article is a continuation of our UI Modeler series.  As I demonstrated in the previous post you can indirectly register an Add-In or Extension for a Custom UI Model by registering an Add-In or Extension for the parent form that summoned the Custom UI Model.  Using that approach, you can programmatically inject some behavior/logic/UI into a downstream custom model by getting a reference to it via its parent.  But what if the Custom UI Model in question is actually housed on a page and there is no "parent... Read More
Categories: ,

Using Webshell Event Handlers within the Batch User Interface

By: TripOtt

Posted on: August 13, 2013

Batch Event handlers are used to enhance data validation from the batch UI grid.  Webshell event handlers allow you to display additional batch dialog screens for data entry, validate fields and provide feedback to the user via annotations, and retrieve default data when a field within the UI grid changes.  Authoring an event handler for Webshell requires creating a CLR class within your UIModel assembly project. This class will need to inherit from the Blackbaud.AppFx.BatchUI.BatchEntryHandler class which lives within the Blackbaud.AppFx.BatchUI.dll assembly. This class will need to be refere... Read More
Categories: ,

Using Shared Services to Send Email from Blackbaud CRM

By: Patrick Shepherd

Posted on: July 25, 2013

A large mentoring client I am working with has a very high-touch workflow that their mentors and mentees (is that a word?) go through.  At certain times in the process, they send links to online forms and surveys to constituents.  Sometimes these need to be automatic, sometimes they are manually triggered.  These emails don't fall into any standard marketing blast category, and are not appropriate to be sent one-off out of Outlook.  CRM has a relatively new API that can be used through SDK development to queue up emails which will send via the Shared Services platform.  The following is a basi... Read More

The "Numbers" table

By: TripOtt

Posted on: September 5, 2012

I recently overheard the question at Blackbaud the other day, “What is the “Numbers” table used for?.  We’ll let me try to relay an answer to you good people.  The numbers table can be a pretty powerful thing to use.  Often times in SQL, you find yourself needing to generate numbers or finding gaps in numbered sequences.  You can use it to order things sequentially when querying for data.  For example, you can use them to help generate date/time in your queries: DECLARE @STARTDATE as DATETIME = '1/1/2012' DECLARE @ENDDATE as DATETIME  = '12/31/2012' select DATEADD(d,NUM,@STARTDATE) from NUMBER... Read More
Categories: , ,

Outlook + Blackbaud CRM Integration

By: Ben Lambert

Posted on: June 19, 2012

As I’ve mentioned before, every piece of functionality available in Blackbaud CRM (or any Infinity-based application), is exposed via a web service.  This makes integration with other applications VERY approachable…even fun! In this post, I’ll demonstrate how to build an AddIn for Microsoft Outlook that adds some useful functionality by driving the web services exposed by BBEC.  The full code for this sample will be uploaded as an attachment to this post. This AddIn will do the following: Add a menu item to the Inbox context menu that will add the selected email’s body as an interaction to the... Read More
Categories: ,

Privacy Policy | Sitemap | © 2011 Blackbaud, Inc. All Rights Reserved

Digital Ocean