If you’ve read our Introduction to Heroku Connect, you understand that Heroku Connect gives you an almost-live copy of Salesforce in a Postgres database. You also know that Xplenty can help you get data in and out of that Postgres database using a graphical data pipeline editor. But you still may be wondering how all these tools fit together. Let’s look at a fictional, but somewhat common, use for Xplenty and Heroku Connect to help explain how those tools work together.
Table of Contents:
Welcome to XYZ Corp
XYZ Corp is a US company selling, of course, widgets. The leadership and staff of XYZ are very proud that their widgets consistently beat those sold by ABC Corp in unbiased third-party tests. Part of what makes XYZ so successful is its company website. Built years ago, then updated and re-written many times, the XYZ website has evolved with the company.
Maintained by a combination of XYZ internal staff, XYZ’s long-standing ad agency, and a varying group of independent contractors, the XYZ website is reliable and fast. Using the LAMP platform (Linux operating system, Apache web server, MySQL database, and PHP programming language), the code on the site is in a number of different modules of varying quality. Since it is key to their business, XYZ’s overworked IT department is less than keen to make modifications to it.
XYZ also has a customer ordering system built on a legacy platform, maintained by IT. Most of the organization has a love/hate relationship with the system because, while it is specially tailored to the widgets that XYZ sells, changes seem to take a long time to implement. XYZ management knows that any project that interacts with this system needs to build a good amount of planning time into the schedule to account for IT’s backlog.
XYZ has a B2B business model - their widgets are sold to wholesalers and retailers, large and small, via a combination of in-person sales, sales via a group of dedicated callers, and Internet sales using the website. Because corporate IT was strapped for resources, the VP of Sales at XYZ championed Salesforce for sales support, and it was implemented with the help of outside consultants, one of whom was hired to be the Salesforce administrator.
XYZ uses Salesforce to track leads and manage accounts for their B2B business. XYZ’s direct sales team uses the Salesforce web and mobile apps to enter leads, manage their calendars, and make generally good use of the Salesforce Sales Cloud. The telephone team uses a third-party dialing app that integrates with Salesforce to call potential customers, tracking leads and conversions in Salesforce.
The Need: Customer Tracking in Near Real-Time
Even though XYZ is in many ways a textbook Salesforce implementation, their Salesforce instance is essentially standalone. Integration with the website and in-house ordering system exists, but it is primitive. A sales analyst runs reports from the ordering system, summarizes them in an Excel pivot table, and uploads them to a Salesforce custom object related to the standard Opportunity object in order to track customer purchases. When callers convert a customer, they must cut-and-paste that information into the administrative interface of the website ordering app, and there is no tracking to see if the customer ever placed an order.
In a presentation to the VP of Sales and the CIO, the Salesforce admin highlights the following needs:
- Customer website accounts should be created from Salesforce automatically upon conversion without double work.
- Website interactions should be tracked - these include interactions without purchases, such as a login. The administrator proposes a custom object to track this information.
- Sales reps need to get near-real-time, summarized order information pushed into Salesforce.
Enter Heroku Connect
The CIO listens to the presentation and says that his staff is challenged because they have no experience with the Salesforce API. He tells the group that his website team is very familiar with open-source relational databases, so a decision is made to purchase Heroku Connect. The Heroku connect installation process is simple, and soon the administrator and a member of the IT team have the necessary objects replicating between a Heroku Postgres database and Salesforce.
All seems well at XYZ Corp...but even though our little story ends happily ever after, there are a few bumps in the road.
The website developers build a process to poll Postgres and catch new accounts, so they’re able to create website accounts in near-real-time. This was the most immediate perceived need by the Sales department, so it is a win for IT and Sales.
The website developers start the process of building an interaction summary that will insert into Postgres. They get as far as identifying an event logging table in the website’s database that could be used for this purpose, but the project lies unfinished as the devs are re-tasked to other priorities.
The toughest issue is order synchronization. Since customers are able to both call in orders and order via the website, IT had built a REST process that lets the website query all orders in the ordering system. The website developers then built a process to call that interface to update order status on the website, and to insert website orders into the website database. That REST interface has all the data about an order, but the website threw away most of it when they insert the data into a history table on the website. Some of the discarded data included information about which service rep took the order. XYZ Corp has long considered bonusing their customer service reps for selling deluxe widgets, so Sales wants to capture that data in a custom object.
The Salesforce admin is frustrated. All the data she needs to be successful is available in a relational database, or accessible via the industry standard REST API, but she’s unable to get at it.
Xplenty to the Rescue
The Salesforce admin talks to a few of her former colleagues at the consulting shop. One of her colleagues tells her about his experience with Xplenty at another engagement. Since Xplenty has a visual data pipeline builder as well as the ability to read and write data in dozens of systems, the admin is interested.
In talking with Xplenty, she finds that our data pipeline tool is able to read relational tables and transform and cleanse the data before pushing it into other databases. She also finds that we can use REST APIs for integration, and we can do so behind the firewall. Her VP of Sales authorizes her to work with Xplenty. Since our tool is cloud-based, there’s no need to do an on-premises install. Only the behind-the-firewall security requires any work on the part of IT, and it’s a very simple process that requires no code.
XYZ’s Salesforce admin reviews the Xplenty doc and talks with Xplenty’s team of implementation engineers. Though the admin believes she could use Xplenty’s interface to build the integration herself, she has enough on her plate already, so she chooses to project manage the implementation and let Xplenty do the work.
Xplenty’s team quickly builds two integrations:
- A data pipeline that polls the website’s MySQL event table to pull out events of interest to Sales. This pipeline inserts new events into the Postgres table that is replicated from a custom object, built by the admin in Salesforce, to track and report on customer usage of the website. This table is replicated back into Salesforce by Heroku Connect.
- An integration that pulls the REST API of the customer ordering system to extract new orders along with all the order attributes that Sales wants to track. Again, this data is pushed into Postgres, which in turn pushes it into the Salesforce database.
Our Happy Ending
The Xplenty integration, completed in days rather than months, was a big hit at XYZ Corp. Callers were more productive, managers had more information on their Salesforce dashboards, and analysts who were formerly doing repetitive labor uploading data were freed up to actually analyze data. Xplenty’s ability to leverage existing standards-based technology helped XYZ accomplish this integration with minimal involvement of IT.
Even though Xplenty could have done the entire integration outlined here, XYZ Corp is still happy because they have been using the Postgres database directly for sales analytics, and it also provides an almost real-time backup for Salesforce. They always have the option of reading and writing directly to Postgres to integrate with Salesforce for other projects, which might be an easier solution if IT has the resources to build that kind of interface.
If you want a happily-ever-after story with your Heroku Connect instance, we’re happy to provide a demo, a seven-day free trial, and a free setup session with our implementation team. Drop us a line at email@example.com or schedule a meeting.