Quick & Easy ETL from Salesforce to MySQL with Workflow & Heroku

While sometimes unfortunate it is often necessary to have data silos that share data. The Extract, Transform, and Load (ETL) pattern has been around for a long time to address this need and there are tons of solutions out there. If you just need a quick and easy way to copy new & updated records in Salesforce to an external data source, a simple Heroku app and Salesforce Workflow might be the quickest and easiest solution. I’ve put together a sample Node.js application for this: https://github.com/jamesward/salesforce-etl-mysql

Check out a demo:

This sample app uses a Salesforce Workflow that sends created and updated Contact records to an app on Heroku, which inserts or updates those records in a MySQL database. A simple transform JavaScript function makes it easy to customize this app for your own use case. To setup this app for your own uses, check out the instructions in the GitHub repo: https://github.com/jamesward/salesforce-etl-mysql

Let me know how it goes!

  • Matti Bickel

    Looks awesome. I’m wondering about push (workflow) vs pull (say, via REST API) performance, though – would your solution send a new SOAP message each time a little edit is made or could this potentially be configured to use batching transfers?

    And I gotta say I’m still in love with that “Deploy on Heroku” button :)

    • If you wanted to batch the updates you could write a schedule job in Apex that would send a batch to an app on Heroku. That would be pretty straightforward.