My name is Valeria, let me ask you a question.
Our system strictly segments contacts and it is understood that users can move from one group to another or be added to different groups depending on their behavior very often.
My question is how to establish synchronization between Keap CRM database and our cloud database (We have it in AWS). That is, we want to replicate data from our database to the CRM database.
I heard about providing communication between the CRM DB and cloud-based DB through some additional connector, such as SSIS + KingswaySoft, or setting up Kafka.
I investigated the market but didn’t manage to find any silver bullet that would help us set up a DB sync in a quick manner.
What do other customers use as best practices?
Does Keap support any extensibility such as programmability? If yes what language Keap config/business logic developers use?
Thank you in advance!
You will have to use the API to do any database querying and updating. Unfortunately as far as I know there is no Database Connector, which makes querying across multiple tables more awkward.
How I would sync the data is straight forward. I would query the required XML-RPC API Tables and store the results into a Database on the Web Server. The Database Tables would mirror the same layout as the API Tables. An automated Cron Job is created to pull the data from Keap every hour.
If you want to go the other way in updating Keap, then you would just query the data from your database, and call the necessary API method to update the required record. This could also be done by a Cron Job as well.
Note, be aware when you are updating a record, this will be on an individual basis. There is no mass update API function, apart from assigning multiple tags to a Contact.
Depending on the data you are transferring, I recommend you use the XML-RPC API instead of the REST API as it is not complete, and its Custom Fields support is poor in some parts. If you are updating normal fields, then feel free to use the REST API.
XML-RPC API Tables - https://developer.infusionsoft.com/docs/table-schema/
XML-RPC - Updating a Record - https://developer.keap.com/docs/xml-rpc/#data-update-a-record
REST API - https://developer.infusionsoft.com/docs/rest/
Hope that helps.