In-house database sync

1) Can i do a query on get.lists of contacts - or do i have to download the entire lot when importing contacts & campaign subscriptions to the in-house database?(is there a maximum limit for the lists perhaps in terms of memory?) - i.e. I need only new subscriptions.

2) Has anyone had any experience parsing CM's SOAP/XML  for Filemaker - is there a XMSLT out there for filemaker and CM? Alternatively has any one had any experience parsing  CM's SOAP/XML for mysql import?

I've got multiple mailing lists with many thousand people. All newsletter subscriptions contacts have to be added to the in-house database and the in-house database has to be able to subscribe/subscribe to specified campaigns.

any ideas appreciated.

mrrafs, 7 years ago

EDIT - Message re-phrased in thread further down - ignore this post
Ok - i assume the no-reply =  a double negative (i.e. on both questions) 

1) I've thought of perhaps a better strategy. The client database controls client un/subscriptions to CM via API - therefore keeping an accurate record matching id's. 
As the clients database is behind a non-redundant broadband I cant directly add changes from CM or web scripts('web-subscriptions' & 'remove-me un-subscriptions') . I could do a GET' lists of 15k+ contacts/subscriptions then query them in-house, but that's going to be slow. So the solution is to run a online mysql database that records  client un/subscriptions(triggered from in-house database), web subscription from php tacked onto the end on a CM PHP widget, and 'remove-me' triggered from CM calling a url/php script.

Any advice here most appreciated.
(i'm a database/python guy for in house stuff - not a web dev)

2) If i go down this route i'll write a xmslt myself (and post it here)


davidh, 7 years ago


I am not 100% sure of what you are trying to do. To get a record of all subscriptions in your own database I think what you have suggested is the best method - insert into the database and subscribe using the CM API from the same page (assuming I have understood what you mean).

You can then use the API to unsubscribe based on information in your database as needed.

When using the API, I think using the wrapper for the language you are developing in will be much better than trying to parse the raw XML. Then you can use the Filemaker or mySQL data access objects to pass the information through.

Let me know if that answers your questions or if you have something else in mind and I will help you further if possible. Also if you want more advice about using the API tell me what dev environment you would like to use (Python?) and I will point you to the best resource.

mrrafs, 7 years ago


ok lets rewrite that last post of mine in a more coherent manner. :) apologies..

1) Aim is:

a) Add clients to CM from in-house database & get client.ID from CM.
-API Client.Create 
-How do i get the CM.client.ID, without doing a get.client..list? - can the SOAPorPOST response have the ID or can a get.client.details be called without an ID?

b) Un-subscribe/subscribe clients to campaigns from in-house database to CM
-API Subscriber.Add/Un-subscribe (easy)

c) Remove-me links & website sign-up's: add CM clients & Un-subscribe/subscribe CM clients from campains from an in-house database  that does not have reliable internet connection.
-Not sure the best solution here?
- probably have a mySql database on a webserver to keeptrack of this(and sync this with filemaker)
- add some PHP  to CM.sign.up form
- use CM feature of un-subscription that calls a specified link. (with user=ID) that is a PHP add to mySql

2) my bad. i didn't mean parse XML i meant use XSLT to translate XML schema (filemaker can import XML).

davidh, 7 years ago

I will try to answer your questions:

a) Do you want to create clients or subscribers? Looks like you mean Clients but I have some comments on subscribers just in case. For Clients the Create method returns the ID:

For subscribers the email address and ListID are used to identify them in all API calls, so you do not need a separate ID.

c) Hmm not sure I can give you great advice beyond how the API works. You can also use the POSTs to subscribe/unsubscribe email addresses without the API, which you seem to have considered, and could customize these forms to contact another system. Overcoming the unreliable internet connection seems to be the biggest problem.

I am not aware of any XSLT for the API. The PHP (or other language) wrapper will convert the responses into something easy to use for your language, and that should be the easiest way to go. It will also allow us to give you better support in implementation.

mrrafs, 7 years ago

great thanks.. answered my questions..

200,000 companies around the world can't be wrong.

From Australia to Zimbabwe, and everywhere in between, companies count on 
Campaign Monitor for email campaigns that drive real business results.

Get started for free