Heroku Connect: The Definitive Guide
Learn everything there is to know about Heroku Connect and why Reverse ETL is a better alternative.
March 30, 2022
Today there are many ways to move data in and out of Salesforce, but it's a challenging, time-consuming, and expensive process. Many companies are leveraging Heroku Connect and Salesforce Connect to achieve this, but both of these tools have many shortcomings when compared to Reverse ETL.
What is Heroku?
Heroku is a PaaS platform designed to help companies deploy and launch customer apps more quickly at scale. It automatically manages hardware, servers, and all other underlying resources so developers can focus solely on building customer-facing applications.
In a nutshell, Heroku lets users build apps in the development languages like Ruby, Java, PHP, Go, Scala, Clojure, and standard open-source stacks like Rails, Node.js, and Python without thinking about DevOps or infrastructure.
Within Heroku, all apps are deployed and run in “dynos”, which are isolated and virtualized Linux containers that leverage user-specified commands to execute code. These containers automatically manage all important aspects from orchestration, load balancing, security, logging, etc.
The main advantage of Heroku is the fact that developers can easily scale apps up or down to avoid downtime with a single click or a few simple commands in Heroku’s command-line interface. At its core, Heroku helps developers avoid the trial and error that comes with successfully provisioning databases.
What is Heroku Connect?
Heroku Connect is a data integration feature built strictly for Salesforce. With Heroku Connect users can provision a Postgres database (i.e. Heroku Postgres) to store data. Heroku Connect then replicates the data stored in Salesforce so that all changes in Postgres are reflected in Salesforce and all changes in Salesforce are reflected in Postgres.
The ultimate goal is to connect customer engagement to business processes. The number one advantage of Heroku Connect is the fact that it has bi-directional synchronization. It can read and write to both Postgres and Salesforce.
This is extremely advantageous for time-sensitive use cases where developers are trying to improve the customer experience in the app by leveraging the data in Salesforce. One of the best uses cases for Heroku Connect is with apps that are pulling data directly from Salesforce and updating on a frequent basis.
App data can be exposed in Salesforce using Heroku External Objects. Heroku Connect keeps all data and other custom objects/custom fields between Salesforce and Postgres in sync at all times to create a unified customer experience. Changes in either system are automatically reflected within the other. This makes Heroku Connect extremely fast.
Heroku is actually a subsidiary of Salesforce. The company was purchased in 2010 for $212 million in cash. Innately, Salesforce has a similar data integration feature to Heroku known as Salesforce Connect. However, Salesforce Connect is very different. Salesforce Connect lets users view, search, and modify data that’s stored elsewhere by mapping external objects to data tables in external systems.
In its simplest form, Salesforce Connect lets users access data on-demand directly in Salesforce. The goal of Salesforce Connect is to turn Salesforce into a single source of truth, but this is problematic as most organizations store all of their data within a data warehouse.
Challenges Heroku Connect
There are several problems with Heroku Connect. Firstly, it only supports moving data from Postgres to Salesforce or vice versa. The problem is, most companies have many other data sources in addition to Postgres, and in most cases, the single source of truth is often the data warehouse.
This means that Heroku Connect cannot tackle use cases where data is needed to be moved from the warehouse to Salesforce, or any other SaaS application for that matter. Heroku Connect is largely used to handle production data transactions. Even getting Heroku Connect to function properly is somewhat difficult as users are forced to do a substantial amount of debugging and also manage trigger logs when syncs fail.
In addition to this, storing data within Heroku Postgres is extremely expensive. Heroku Connect only lets users sync data to one destination. In reality, business teams have more tools than just Salesforce, so the following questions should be at the forefront of any and all decision-making.
- Are you only interested in syncing data between Postgres and Salesforce?
- Are you comfortable with Salesforce, rather than your warehouse being the single source of truth?
The Alternative: Reverse ETL
Many of the above problems mentioned are completely eliminated with Reverse ETL. Unlike ELT, which focuses solely on extracting data from 3rd party sources, and loading/transforming data in the data warehouse, Reverse ETL specializes in copying data from the warehouse and syncing it back into the operational systems of business users (i.e. Salesforce, Hubspot, Marketo, Braze, Iterable, Google Ads, etc.)
Reverse ETL has a constantly expanding number of integrations. However, it is important to note that Reverse ETL is not bi-directional, data only flows from the warehouse. For data ingestion, many customers often turn to tools like Fivetran for analytical workloads and Reverse ETL for Data Activation. With Reverse ETL there is no replication, data is simply synced from the warehouse to the destination and this is where Hightouch comes into the picture.
Getting Started With Hightouch
Heroku Connect can cost more than $50k per year and that’s just for a single integration between Postgres and Salesforce. The first integration in Hightouch is completely free, so syncing data from Postgres to Salesforce would cost absolutely nothing.
With Hightouch, users can simply define the data in their warehouse by leveraging SQL or the existing data models in the warehouse or SQL. After this, it is really easy to map the appropriate columns and rows to the proper fields in the end destination.
To learn more download our Complete Guide to Reverse ETL.