Tag Archives: lookup tools

Introducing RETweet Professional for The Raiser’s Edge

At the end of last year we released RETweet for all our newsletter subscribers (sign up to receive future offers and news). It was a great success allowing you to see your constituents’ Twitter feed directly from within The Raiser’s Edge. Now, with the release of RETweet Professional, you can search for any keyword, user or hashtag just as you would in Twitter. RETweet Professional brings you all the features of RETweet but also allows you to find out who is talking about your organisation and your mission. From the feed, RETweet Professional will look up the constituents using a fuzzy search [1], allow you create you own constituent if it cannot find it or you can search in RE using the regular search screen. The application gives you the option of connecting a Twitter user to a constituent and once you have done that you can save their tweet as a notepad. You can also set up a “love” attribute for use within RETWeet Professional. You can assign a value directly from the application and it will save onto the constiteunt record without you having to open it up.

Track the conversation that people are having about your organisation directly from within The Raiser’s Edge. Social media has been brought one step closer to your organisation.

Download RETweet Professional Demo (includes RETweet)


[1] On a technical note we are forced to do a fuzzy search as the only two identifying fields that we retrieve from Twitter are full name and location. We split up both of these fields into first and last name and city, state and country. For the location we attempt to see if the values we have assumed are in the code tables. If they are we know that we have assigned the values correctly. If they do not appear in the code tables then we do not assign the values on creating a constituent. When searching we give each term a weighting. Only constituents that match the last name or the first five characters of the organization name will ever appear in the fuzzy search results. After that each of the other terms’ weighting are added up to determine which results appear in the match. City and the full first name (as opposed to the person’s initial) are given a higher weighting so matches based on those values will appear more prominently.

Raiser’s Edge Integration with REST webservice

I have been working on a new version of RETweet which will be released soon. In that version we are allowing users to create constituents from Twitter users. The amount of information that you get from Twitter about the Tweet and the person that tweeted is very limited. The real name of the Twitter user – and it is not always a real name – is given in one field so it could include the first and last name (this is the most common where it is not a Tweeting business).  To make this more useful the application reaches out to a webservice to determine the gender of the person.

The webservice takes the first name and returns gender information and which countries the name appears in. The web service is biased towards European and Western first names but does claim to cover some countries in Asia too.

This could also easily be integrated as a VBA solution so that when you save and close a constituent record, if the gender is unknown the VBA code reaches out to the webservice and populates the code. Here is some sample code that shows you how this is done. This is done using .NET as it is considerably easier to achieve than in the native VBA environment. It would, however, be easy to make a call to a COM visible assembly from the native VBA client to call this method.


' Determines the gender of the person by looking up useing Thomas Bayer's webservice.
Private Sub SetGender(firstName As String, constit as CRecord) 

   Dim xdoc As XDocument
      'Here we retrieve the XML document from the REST web service
      xdoc = sendXML("http://www.thomas-bayer.com/restnames/name.groovy?name=" & firstName)

      Dim result = xdoc.<restnames>

      'if there is an error then the gender cannot be found
      If result.Descendants("error").Count > 0 Then
      End If

      'This is not an ideal check as a name can be both male and female
      'but for simplicity we assume this is not the case
      If resultresult.<nameinfo>.<male>.FirstOrDefault.Value.ToLower = "true" Then
         constit.Fields(ERECORDSFields.RECORDS_fld_GENDER) = "male"
         constit.Fields(ERECORDSFields.RECORDS_fld_GENDER) = "female"
      End If
         'If there is an error due to the web service we catch it here and don't bother the end user.
      End Try

End Sub

Private Function sendXML(ByVal uri As String) As XDocument

   Dim request As HttpWebRequest
   Dim response As HttpWebResponse
   Dim reader As XmlReader

   request = HttpWebRequest.Create(uri)
   response = request.GetResponse()

   reader = XmlReader.Create(response.GetResponseStream())
   Return XDocument.Load(reader)

End Function


Look out for our new version of RETweet. It will include this and a lot of other new features!

The Problem with Quick Find

I have been working on a new product which will hopefully be released soon. In this new product the user needs to be able to look up a constituent in as few key strokes as possible. The approach that I took was to use the same functionality as the Quick Find mechanism that you see on the records page in The Raiser’s Edge. This is dependant on your user settings so that you can either put in a constituent id, the first name followed by the surname or the surname comma the first name. While I was testing it on the sample database it worked perfectly. However when I tested it on a client’s very large database there were issues. Continue reading The Problem with Quick Find

Looking up a constituent

Whenever I write a bespoke customisation for a client that needs to look up a constituent based on some biographical information I normally use the functionality available behind the scenes in IDLookup. If you are unfamiliar with IDLookup, it allows users to feed in an Excel or CSV file of names, addresses, aliases, attributes and all sorts of biographical information. Then based on criteria that you define, it will look to see if one or more constituents already exist in The Raiser’s Edge. I use much of the look-up functionality in other projects simply because Blackbaud chose not to make this functionality easily available. There is no back-end interface to their regular constituent look-up screen which is a real shame. The nearest feature is the IBBRecordFinder interface.

Continue reading Looking up a constituent

Integrating Raiser’s Edge with non-Blackbaud Products

A lot of the work that I do involves the integration of third party products with The Raiser’s Edge. It is not always right to develop a custom application to perform this integration. There are many factors including the volume of data transfer, the complexity of data, how quickly the data needs to be integrated and of course what budget is available. This article attempts to outline the options available to Raiser’s Edge managers who need to integrate with non-Blackbaud products.

Continue reading Integrating Raiser’s Edge with non-Blackbaud Products