Tag Archives: web integration

The Raiser’s Edge Integrated with Potentiality… A series of case studies (2)

Towards the end of 2010 we started working with Potentiality to integrate their system with The Raiser’s Edge. At the time I knew very little about them and their products. Their headquarters is in Melbourne, Australia with an office in London. Even though they have an office in London our main contact was with their Melbourne office. Their product was a community based content management system (CMS) targeted towards schools and universities but also used by any organisation that was trying to build up a community of supporters.

Continue reading The Raiser’s Edge Integrated with Potentiality… A series of case studies (2)

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
   Try
      '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
         Return
      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"
      Else
         constit.Fields(ERECORDSFields.RECORDS_fld_GENDER) = "female"
      End If
      Catch
         '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 challenges of developing generic solutions for The Raiser’s Edge

We develop a number of different types of solutions that connect The Raiser’s Edge with third party applications. When this is done for one organisation the hardest challenge is getting the requirements to match the end user’s as closely as possible. However we also develop a lot for third party applications directly. Most recently we released Chimpegration but there have been many others that integrate many different areas of the application. With these clients the important point is not so much as to match one set of requirements exactly but to match as many requirements exactly!

I have yet to come across two organisations that have set up RE the same way. Sometimes the differences are small but sometimes they are very large. One recurring theme is that of phone/email types. The Raiser’s Edge seems to be relatively unique in its setup of these values. Not only are phones and emails stored in the same location but you can store them according to address type too. How does this match up with a third party web application that uses email address as a primary key? They may have one field for home phone, one for mobile and possibly one other. How do you get that tie in with the possibility of any combination of phone and email types? I have seen a whole plethora of regular phone types e.g.

Home
Business
Preferred
Home 1
Home 2
(etc)
Primary
Work
Company

Those are just the ones I can think of as I write this. And of course each of these could have a number after them.

Then of course there is the proliferation of email (or is it e-mail, etc) addresses.

What techniques do we use to overcome these issues? When we are working with a third party developer directly it is often in their interest to develop the configuration piece. This saves them a lot of development cost. This means that we simply say to them if you want us to update a phone number you need to tell us which type it is. This is then supplied in the file/webservice. Likewise when we supply that piece of data, we also send the phone type too.

Another solution is to build a configuration part to the application. This is what we did with Chimpegration. We allow the end user to map the fields that they want to synchronise so that they specify which fields on MailChimp map to the fields on The Raiser’s Edge.

The last solution is the least desirable. It is possible to simply say that the home phone number should be called “Home” and email address should be called “Email” – end of story. This is clearly the simplest and cheapest but unless you have a lot of sway over the organisations that you are selling to it is unlikely that you are going to get many buyers.

Phone and email types are perhaps the most obvious but what other issues can arise?

Where you are collecting business details, should these be added to an organisation or to a business address on the constituent record? Should you create a new constituent for the organisation? How can you be sure that it does not already exist in the system but under a slightly different name. One solution is to allow the end user to review the matches that have been made but this again adds to the development cost. It could also be prohibitive if the volume of data you are bringing in is large.

What about fields that do not have an obvious place in The Raiser’s Edge. One application that we worked with had an anniversary date. There is no such field in RE. We gave the end user the option to ignore the field, store it has the spouse relationship from date or store it as an attribute.

What happens if one organisation makes a field mandatory? When I work with an organisation directly I will ask them what mandatory fields they have set up on their system. If, as part of the process, I have to create a new constituent then I will ask them to give me a default value for that field. For a generic solution this has to be worked into the application configuration.

You can see much of this in action in Chimpegration where we account for mandatory fields and different combinations of phone types and emails. Check out the synchronisation screencast for a glimpse of this in action.

So all said and done is this type of solution to be avoided? Absolutely not! It is not cheap because of the extra work involved in making the application work for all types of organisations. When people complain about NetCommunity or Patron Edge integrating badly with The Raiser’s Edge hopefully this article will have given you some insight as to the skills required by Blackbaud in getting the integration to work well. (Update 15th Dec 2011: I should clarify that given the difficulty in developing generic solutions I actually believe that Blackbaud have done a good job with these integrations)

If you are a third party application wondering how to integrate with The Raiser’s Edge then speak so us. We are skilled at doing this and have done it a lot. We can either do it for your or we can share the development. When done well it is a great asset to your company and will bring Raiser’s Edge users to your application.

Blackbaud moving towards the future, just not all the way to Infinity (yet)

The past two weeks have been packed with all things Blackbaud. Last week was the Blackbaud conference in Washington DC and then this week in London. Being a big fan of all most things Blackbaud,  I had a great time, met some great people, got to meet the all new star cast at the top of the company and was pleasantly surprised by the announcements made.

Waiting for RE8 has gone from waiting with great anticipation and expectations in previous years to how we find ourselves now. We now know that RE8 will happen at some point (albeit probably under a different name) but the wait is over. We are no longer waiting for the next big thing, but for the little things. In past years we have been wowed by what was to come on the Infinity platform. This was exciting but left us wanting it without it ever arriving for the majority. Now however, looking at the new functionality in RE7; query lists, new lookup functionality, better dedupe features and being able to easily mark participants as attended, shows that despite its name (and its UI), RE7 is moving forward. Blackbaud is moving forward for everyone.

This was demonstrated so much more so in Blackbaud Mobile. The application allows you to promote campaigns through channels that may have been previously inaccessable to the majority of organisations. Allowing organisations to promote and give supporters the mechanism to  donate through text message and mirrored on a Facebook app, brings their technology offerings into this decade.

After being burned by the anticipation of the Infinity platform’s greatness for The Raiser’s Edge users, Blackbaud are quite rightly avoiding the risk of repeated vaporware. One such thread could, in previous years, come from the exciting news of Raiser’s Edge Mobile. This application will be native to iPhone, Android and possibly Blackberry, will allow users to access their RE database directly from their mobiles. After having looked at a prototype version, I am quietly confident that this application will make it in the near future. This is another step in Blackbaud’s progression of the RE7 platform into the modern age.

What is really exciting however is the technology required to enable this. There will need to be a webservice layer for The Raiser’s Edge. There has been this web service layer for a while now with the NetCommunity integration. However it has always been restricted to NetCommunity specific tasks with limited use for other applications. If Blackbaud do the right thing this time around and make the web service layer generic and open to all applications, all of a sudden we will integration with The Raiser’s Edge like never before from all sorts of web based applications.

It does not matter what it is called (RE7 or RE8, Infinity or not) it is the perception that Blackbaud’s offerings are going forward and not stagnating. With the wait for RE8, RE7 was left languishing. The risk was great that organisations would move away from Blackbaud to other platforms offering what Blackbaud should have been doing years ago. Now at least they are moving into the modern era.

Chimpegration – An integration between MailChimp and The Raiser’s Edge

It is finally here – Chimpegration. Integration between The Raiser’s Edge and MailChimp. With our free customisation you can export your email addresses directly from The Raiser’s Edge into your MailChimp lists, populating your merge variables in one automated process. Raiser’s Edge users have always been used to creating Word mail merges so that they can create sophisticated merge documents. Now they can do the same with email. Once the email campaign has been sent you can manage any bounces or unsubscribes directly from The Raiser’s Edge. Not only that, you can also add an action, appeal or attribute to any constituent with an email that was sent the campaign.

All that for free!

If you want more then we also offer a (paid for) Professional version appropriately called “Chimpegration Professional”. This allows you to synchronise activity between the two systems. This means that you can make use of MailChimp’s own forms to allow you users to update their own information. It then feeds back into The Raiser’s Edge. Equally any information you update in RE will feed back into MailChimp. Don’t worry, the review screen gives you complete control over which information is moved where. Also with this version you are able to see each constituent’s activity directly from the constituent record. See when they were sent the email, when they opened it and what they clicked on.

I was very pleased to have won a MailChimp integration fund award to integrate The Raiser’s Edge with MailChimp. It is such a great product and the possibilities for integration were enormous. The Raiser’s Edge manages donors really well but it never really made it into the world of email marketing. Of course there is integration with Outlook but that is not good enough when you need to send out thousands of newsletters. NetMail was a good start but their template design functionality was so limited. NetCommunity was better still but even with that product there are too many compromises (and it costs too). There are a lot of different email marketing applications out there but I have been using MailChimp for a while myself as part of my website newsletter. It has great functionality but I would never have used it if it had not been for two things; it is free for smaller volume users and it has a great API. Things could have been so different. Before looking at MailChimp I applied to get a developer licence at ConstantContact. I had to fill out a form and justify my use of it. I did that but they never even got back to me.

Chimpegration – Free

MailChimp – Free

Email marketing – now Free!

Screencast of IDLookup for looking up online donations

This screencast of IDLookup shows you how perform a lookup based on data coming in from an online donation page. The data is downloaded from the website without constituent ids. We run IDLookup and find several matches. We are now able to import the data into The Raiser’s Edge with existing constituent information being updated and new constituents being created.

For more information about IDLookup or to download a fully working version (tied to the sample database) visit the IDLookup download page.

IDLookup – A new version

I am pleased to announce the release of IDLookup version 1.1.5. This is just an incremental upgrade with the small additions of support for searching by title and by gender.

As always if you already own a copy of IDLookup then follow this link to download the new version. Use the same serial number if prompted.

If you do not own a copy then why not download a trial version at Zeidman Development. And now for a limited time only (thanks to Her Majesty’s government) UK buyers can get the reduced VAT rate! If you are buying from outside of the UK then take advantage of the low exchange rate. Due to the exchange rate the US dollar equivalent price is now 27% lower than it was four weeks ago!

Is the API really that expensive?

I get a lot of questions asking me if a certain change to The Raiser’s Edge can be done. Here is a typical (if somewhat abbreviated conversation)

Them: “We would like to add an attribute every time a constituent is saved. Then we want to synchronize our online giving application with Raisers Edge. Lastly we want to validate fields when entering gifts into Batch.”

Continue reading Is the API really that expensive?