Now GA: Read and Write Postgres Data from Salesforce with Heroku External Objects

Today we are announcing a significant enhancement to Heroku External Objects: write support. Salesforce users can now create, read, update, and delete records that physically reside in any Heroku Postgres database from within their Salesforce deployment.

Increasingly, developers need to build applications with the sophistication and user experience of the consumer Internet, coupled with the seamless customer experience that comes from integration with Salesforce. Heroku External Objects enable a compelling set of integrations scenarios between Heroku and Salesforce deployments, allowing Postgres to be updated based on business processes or customer records in Salesforce.

With Heroku External Objects, data persisted in Heroku Postgres is presented as an external object in Salesforce. External objects are similar to custom objects, except that they map to data located outside your Salesforce org, and are made available by reference at run time.

Integration with Salesforce Connect

Heroku External Objects is built to seamlessly integrate with Salesforce Connect using the OData 4.0 standard. Salesforce Connect enables access to data from a wide variety of external sources, in real-time, without the need to write and maintain integration code. This ‘integration by reference’ approach has a number of compelling benefits:

  • Efficiency: Fast time to value, absence of custom integration code, and reduced storage footprint.

  • Low Latency: Accessing external objects results in data being fetched from the external system in real time, eliminating the risk of data becoming stale over time.

  • Flexibility: External objects in Salesforce share many of the same capabilities as custom objects such as the ability to define relationships, search, expose in lists and chatter feeds, and support for CRUD operations.

  • Platform Integration: External objects can be referenced in Apex, Lightning and VisualForce, and accessed via the Force.com APIs.

Common Usage Patterns

We have many Heroku Postgres customers with multi-terabyte databases, which are used in service to an incredibly diverse range of applications. When it comes to integrating this data with Salesforce, we tend to see two, non-exclusive integration patterns: Salesforce as source of truth and Postgres as source of truth.

Salesforce as source of truth scenarios often entail updates originating from an external application to core Salesforce objects such as Orders, Accounts, and Contacts. Because this data inherently belongs in Salesforce, Heroku Connect synchronization is the preferred solution. With Heroku Connect, you can configure high-scale, low latency data synchronization between Salesforce and Postgres in a handful of mouse clicks.

Postgres as source of truth scenarios typically require exposing discrete, contextually informed data points, such as an order detail, external status, or computed metric within Salesforce. Physically copying this type of data into Salesforce would be inefficient and result in some degree of latency. Heroku External Objects allows data in Postgres to be exposed as a Salesforce external object, which is queried on access to facilitate real-time integration.

Heroku External Objects is the newest data integration service of Heroku Connect and available today with Heroku Connect. For more information and documentation, visit the Heroku Connect page, the Heroku Dev Center or the documentation on Force.com. For more information on Salesforce Connect, head on over to the Trailhead.

Browse the blog archives, subscribe to the full-text feed, or visit the engineering blog.