Interspire Email Marketer – Integrating with Other Systems

Update June 26 2012: You can download a plugin to tie in with expression engine from my github repo.

Update May 6th 2010: I have quite a lot of people asking for my code, but I need to point out it is not complete at all, but more like a half baked attempt to work out this API thing.. I would really like to spend more time on this and write a more definitive guide, but alas, time gets the better of me. Please see my long comment below for the email I send people. Please contact me if you would like the file.

Update January 13th 2010: I had a little breakthrough this evening… It’s possible to use the XML API to call PHP functions in the subscribers.php file. So there is no need to modify the xml.php or subscribers.php files to do some updates like for Custom Fields. I hope to be able to write another blog on this to explain it more, but in the meantime you can contact me to obtain an email I sent to someone earlier that explains it in more detail.

Update December 15th 2009: As stated in the comments below, I believe the IEM API to be more powerful than the Interspire instructions suggest, and as such believe some of my coding and changes are not required, or could be improved. I therefore do not think I should be giving out the scripts anymore as I have been, but instead would like to investigate the subscribers.php API in more detail.

Interspire Email Marketer (IEM), in my opinion, is the best newsletter system on the market that can be downloaded and installed on your own server. At least, I cannot find any other that comes close to it’s features, and I have looked hard. It does have one drawback though, and that’s the system API does not support integrating it into third party applications so subscribers can update their newsletter preferences from within another system. Interspire stated they don’t provide support on technical aspects of the API, so I have had to create my own API functions until they realise the benefit of this and write one themselves. This blog gives you a quick overview of the files to edit.

Integrating Interspire Email Marketer into a Third Party System

Firstly I have to say I needed help with this. Unfortunately Interspire took a long time to respond with the answer “we do not provide technical support for customization, integration, or the API“! Not only a long response time, but with no help on what is a comparatively expensive system for small businesses (the price has more than doubled since last year).

So with a few days over the weekend and missing all this great sun 🙁 I have written my own functions 🙂

I initially realised there is no UpdateSubscriber function within the API, and so had to create my own. I now have a third party system (Zencart Shopping Cart) in which account holders can view their newsletter subscriptions and change them such us subscribe or unsubscribe. This will then automatically update the IEM newsletter system. Not only that, if a subscriber changes their email address, or actual address and telephone numbers, then these are also updated in IEM. FANTASTIC! Otherwise customers would need to login to two systems to change details… that’s not good, and is asking for trouble.

So now I have an excellent newsletter system that subscribers can manage their data from with a third party system. Yes, I know this should be straightforward and standard you say, which is why my clients of course asked me to do it, but very surprisingly this was not built into IEM.

The code is too much to go into detail here, only that the following files need updating, based on other functions:-

  • /xml.php
  • /admin/functions/api/subscribers.php

The main functions I created were:-

  • xml.php – case ‘updatesubscriber’ was created to action an UpdateSubscriber call in the XML data passed to IEM
  • subscribers.php – function UpdateSubscriberCustomField() was created to update the Custom fields you have created. This in turn calls a few other functions already there such as UpdateEmailAddress() and ChangeSubscriberFormat().

I do hope Interspire can eventually introduce this into their code as I am sure they would do a better job than I, but in the meantime at least I have a working integration.

Just contact me if you want to know more.