🚀 We're hiring, check out our careers page to join our team!

5 Ways To Integrate Your SaaS Customer Data In 2019

Point-and-click integrations aren’t the only way to integrate customer data. As startups-turn-scale-up, we see most startups move on from one-click integrations to a set of these five tactics.

When you scale, it’s never as simple as simply joining the dots between all your tools.

The volume and complexity of your organization's data means by the time teams are ready to scale, we notice they run into three problems with out-of-the-box integrations.

  1. Integrations don’t exist between all your tools
  2. Integrations do exist, but they don’t pass the data you need — “stickers, not solutions”
  3. Integrations don’t work well together — data in one tool doesn’t flow freely through every other tool (e.g. streaming analytics data into a CRM like Salesforce)

This nurtures data silos which drive your go-to-market teams apart and create manual work to re-integrate your lead and customer data.

Whilst we still have and will continue to build out our integrations at Hull, we’ve also a number of technical features to enable total data integration where integrations fall short.

From that, here are the five post-integration techniques we’ve spotted being used by teams on Hull.

Tactical takeaway #1: Connect your backend database

Typically, sales and marketing tools hold a complete-ish picture of each lead and account pre-purchase. Salesforce might be your complete and accurate “source of truth”.

Post-purchase, most SaaS companies profile their users mostly in their backend database which powers their product. This data drops away from the sales and marketing tools used to communicate with customers.

We observe most Hull customers plugin their backend SQL databases to restore this connection. We also see some plugging in their Redshift databases too.

Hull’s SQL Importer fetches and imports data from the last time stamp at set intervals via a read-only view into your database. These are then written as Traits and Events into User and Account Profiles. This data can then be used like any other data in Hull:

  • Transformed in Processor
  • Filter Users and Accounts for segmentation
  • Sync new updates to other tools and services in real-time.

This reconnects the key backend data to your marketing team to personalize messages and workflows, and to notify sales and customer success reps to engage in 1:1 conversation with complete context on their latest actions.

Here’s what the SQL Importer console looks like inside Hull.

Hull SQL importer

And here’s what a sample SQL query looks like to select rows from a table, and write them into Hull as traits.

SELECT
c.FirstName as first_name, /* writes Hull trait "first_name" */
c.LastName as last_name,
c.Emailaddress as email, /* This is the identifier. You must have at least one */
c.CompanyName as company,
c.Phone as phone
FROM SalesLT.Customer c
WHERE c.UpdatedAt >= :import_start_date

Voila! You have your backend data in Hull ready to map and sync across all your other tools.

Tactical takeaway #2: Freely call any external API

Sometimes, you just need to do one thing with another tool.

And integrations sometimes lack in the ability to do that one thing.

Something simple like sending an SMS text through Twilio to new signups - this doesn’t need an exhaustive integration. It just needs one API call each time a message needs to be sent. Think of the job-to-be-done framework.

To do this, Hull users have Processor. Processor is a real-time editing environment for your customer data that runs with every update to their profile by writing plain JavaScript.

hull-processor-console-2col

Processor was originally built to collapse complexity that would be overwhelming with a point-and-click user interface, yet straightforward with code. The original job-to-be-done: Mention wanted to create a precise set of lead assignment rules. Instead of creating a complex interface in the Salesforce connector, it involved writing 3 lines of plain JavaScript.

Today, more than 90% of Hull users have at least one Processor for processing data like:

  • Fallback strategies
  • Lead source mapping
  • Data cleansing
  • Custom data enrichment & formatting

With the request library, you can also use this to call any external service from Processor and interact with your customer data in Hull. For instance, you can use Processor for custom data enrichment, and for notifying other tools to send messages.

Back to the earlier example of sending an SMS message through Twilio, here’s what the code looks like.

// Send an SMS message to new users, and track if sending was successful

if (_.get(changes, 'user.is_paid')){
  return new Promise((resolve, reject) => {
    request({
      url: 'username:password@https://api.twilio.com/2010-04-01/Accounts/ACXXX/Messages.json',
      method: 'POST',
      form: {
        to: user.phone,
        from: 'Your_friends_at_Hull',
        body: "Thank you for becoming a customer!"
      }
    }, (err, res) => {
      if (err) {
        hull.track('Welcome SMS failed to send');
        return reject(err);
      }
      hull.track('Welcome SMS sent successfully');
      return resolve(resp);
    });
  });
})

Processor is added like any other connector. The code is added and edited on the Code Editor tab in the Processor overview.

Usually, Processor runs with each update to a User or Account Profile. If you want to run a regular API call (for instance, polling Weather.com’s API for the latest weather forecast to enrich a User Profile), you can use our Scheduled API Calls connector. It’s the same tool, but it can trigger itself to run at set intervals.

Voila! You can now call any API to send and receive customer data without needing a fully-fledged integration.

Tactical takeaway #3: Fetch any incoming webhook

Besides APIs, webhooks are a common method for sending and receiving data. They have two advantages:

  1. Simple. If an API call is like a phone call (request to pickup), then a webhook is like posting mail. This has limitations, but for one-way, one-off data flows, then webhooks work fine.
  2. Global. Webhooks are widely used. Branch out across far more tools where a full integration isn’t necessary. For example, capturing a form fill from a service like Calendly, Eventbrite, or Unbounce and writing into other tools.

The payload from the form submission on an Unbounce landing page will be passed through a webhook like this.

{
  "fullName": ["Steve Jobs"],
  "email": ["steve@apple.com"],
  "anonymousId": ["1234sldjc2o3ij2okj32"],
  "earnings": ["More than you can possibly imagine"],
  "whatWouldYouLikeOurProductToDo?": ["Dice", "Julienne Fries"],
  "howDidYouHearAboutUs": ["Can't Remember"],
  "ipAddress": ["238.17.159.4"]
}

Hull can capture this through the Incoming Webhooks Connector. You can see the full payload from a webhook, and write simple JavaScript code (just like Processor) to write and format the Unbounce form data into Hull User Profiles as Traits, and to stamp a Form submitted event in the User’s Timeline.

The full code for the form above looks something like this. Plain and simple JavaScript.

// List of fields to set as traits on the user
const USER_TRAITS = ['name'];

if (body && body['data.json']) {
  const payload = JSON.parse(body['data.json']);
  const data = _.reduce(payload, (m,v,k) => { m[k] = v[0]; return m; }, {});
  const { email, anonymousId, ipAddress=0, pageUrl } = data;

  // Make sure we have an email or anonymousId to identify the user
  if (email || anonymousId) {

    // Identify user via email
    const user = hull.user({ email: email, anonymousId: anonymousId });

    // Pick the attributes from the form data that will set as traits on the user
    user.traits({
      "first_name": data.fullName.split(' ')[0],
      "last_name": data.fullName.split(' ')[1],
      "earnings": data.earnings,
      "source": data.howDidYouHearAboutUs
    });

    // Store form submission as an event
    user.track("Form submitted", data, {
      created_at: moment(`${data.date_submitted} ${data.time_submitted}`).format();,
      ip: ipAddress,
      url: pageUrl,
      type: "form",
      source: "unbounce"
    });
  }
}

Voila! You can now fetch data from any webhook into Hull, ready to map and sync across all your other tools.

Hull can also publish webhooks to other tools through the Outgoing Webhooks connector.

More "Spotted" playbooks like this?

Subscribe to The Crow's Nest newsletter from Hull for best practices, ideas & resources for customer data management.

Tactical takeaway #4: Combine workflow tools, webhooks & API calls from Processor

One Hull user combines the Incoming Webhooks connector with the Processor’s external API calls to trigger SMS texts with HubSpot workflows.

As a marketing automation platform, HubSpot includes a graphical point-and-click workflow tool which shows the tree-branching logic of how contacts will progress through a flow — sending emails, updating contact properties, completing goals etc.

One option within HubSpot workflows is to GET or POST request to a specified URL via webhooks. This can be named anything (Send flowers, Send SMS, Order Uber) and the data sent to Hull’s Incoming Webhooks Connector.

The data passed from a HubSpot Workflow can be used to trigger an API call to an external service like Twilio. This enables a marketer in HubSpot to control their messaging across multiple channels without leaving their tool of choice

At the same time as tracking the call, Hull can record an event to update the unified customer profile in Hull, and sync it across all other tools. This ensures the activity doesn’t happen in a silo.

Voila! You have now integrated and tracked workflow tools, webhooks & APIs without any “integrations”

Tactical takeaway #5: Empower the marketer with data (again)

It is crystal clear from working with teams at Drift, Segment, Front, Appcues, Mention, and more that customer data integration is no longer the job of the marketer. Operations and engineering are overwhelmingly the biggest and most bad-ass users of technical features on Hull.

But, it’s the marketers who have the content, campaigns, and creative that spurs on value in the first place. Unified customer data needs to flow back through and empower marketers.

To make this possible, we notice marketers want to have visibility and control.

Integrations are still the first and foremost method to enable this. Two-way sync with key email, ad, live chat, and CRM tools enables the data marketers need to reach the tools they want to use — including custom data from elsewhere.

But in some cases, we see marketers need more dexterity over the computed, unified data, particularly for sending messages and creating workflows. In some cases, Hull isn’t the best tool for this.

Hull best for Hull not best for
Operations & Engineers Marketers
Unifying lead & customer data Sending messages to leads & customers
Transforming customer data Creating visual “if this then that” workflows
Segmenting users Reporting
Two-way data mapping & integration
Orchestrating multiple tools

Outside of integrations, we’ve seen marketers using two new tools to take control of unified customer data:

  1. Customer.io - email tool with powerful liquid templating and outgoing webhooks
  2. Tray.io - best-in-class visual workflow tool for data-driven marketers

Customer.io

… is more than just an email tool. It’s a powerful data management tool for all customer communications at scale. With the Hull - Customer.io integration, you can manipulate the entire Hull profile into triggers and personalized messages. Customer.io is the tool that enables 1:1 personalization at scale with your Hull data.

  • Segmentation (including real-time Hull segments)
  • Dynamic content templates (including the infinitely flexible liquid templating engine)
  • Actions beyond email (including postcards, SMS, and webhooks)

You can use the same liquid composer to create hyper-personalized emails and email templates to create outgoing webhooks. (Coming soon from Hull: A liquid composer for your outgoing customer data. Subscribe here for product news). You can use these large, computed payloads through Customer.io’s outgoing webhooks to publish to:

Tray.io

… is more than just an if-this-then-that workflow tool. If you’re an intensive Zapier user and like it, then you’ll love Tray.io. It enables you to build complex, visual marketing workflows with a drag-and-drop builder.

For simple data flows like trigger updates in another tool, where you don’t have an integration already, and where you want marketers to have full control over each step and trigger, then implement Tray.

One use case we’ve observed Hull users on Tray is powering internal notifications (Slack, email etc.). The detail of which needs to be carefully controlled, and limited to precise situations. A visual workflow tool is an excellent way to communicate and build this level of logic. You can also use Hull’s Slack integration to do this.

Tray’s pricing is based on the number of workflows. Each workflow has one trigger such as a webhook. To maximize their value here, we’ve noticed Hull users enriching Customer.io to create a webhook to have fewer workflows in Tray, then using branching logic within Tray to manage different functions.

Voila! You have now synced data back to a marketer in a form they can easily see and control.

Tactical takeaway #6: Build your own integrations on an integration platform

If integrations don’t exist, and you have engineering resource, you can try to tackle integrations across your network (remember the combinations problem?) or you can build and extend integrations on an integrations platform.

We've noticed Hull users taking advantage over our APIs, Open Source integrations, and Connector SDK to build precisely the integrations they need. This pairs all the advantages of the platform and connector logic with needing only “n” two-way integrations to be built between Hull and each of your tools.

You can setup a new integration in moments, and start working to integrate various APIs. You can then paste a link to your hosted integration into Hull under “add connectors” and interact with it point-and-click like any other platform.

We’ve seen Hull users build their first prototypes in an afternoon. After testing and iterating on their needs, they’ve deployed into production within two days.

Voila! You can now build a fraction of the number of integrations, and build them quickly knowing the complexity of data ingestion, identity resolution, queueing, and more is handled by the platform.

Best fit criteria for customer data integration without integrations

Advanced customer data integration like this isn’t for everyone. However, there’s a point at which data integration tips from being a nice-to-have to a necessity. Hull smoothes

1. Your marketing team that’s already worked on customer data integration

This is clearly an everyday pain. Your teams are already power users of if-this-then-that workflow tools, you’ve one or more “all-in-one” platforms across your teams, or you’ve regular import-export processes.

2. You’re scaling fast

Post-product fit, the pressure is on the go-to-market teams to break down bottlenecks and accelerate growth.

3. You have many manual processes

Slow, manual processes that multiply inefficiency with each new sales rep and marketer you hire

4. You have technical team available in-house

On operations side, borrowed from engineering, or in a dedicated sales/marketing/revenue/customer operations team, you have someone technical to understand, design, and deliver the customer data your teams need.

Results we’ve observed

  • Saved hundreds of hours of work on data integration projects
  • Dodged a six-figure spend on a customer data warehousing solution
  • Saved $15,000 on Salesforce from reducing storage and API credits
  • Doubled qualified leads from global visibility of all lead and data enrichment sources
  • Simply integrated tools, teams, and data that they couldn’t before

Explore the Hull Docs

Learn how you can import, process, and sync customer data through Hull's customer data platform.

Take me to the docs

What you should do now

  1. Test drive Hull with our 14 day free trial - and see how to unify & sync all your tools, teams & data (like we did for all these companies), or book a demo with a product expert.

  2. If you'd like to learn our best practice for customer data integration, read our free Guide to Getting Started with Customer Data Integration.

  3. If you enjoyed this article, perhaps your team will too? Why not share it with the links below.

Ed fry
Ed Fry

Prev 'Ed of Growth at Hull, working on all things content, acquisition & conversion. Conference speaker, flight hacker, prev. employee #1 at inbound.org (acq. HubSpot). Now at Behind The Growth

If you've questions or ideas, I'd love to geek out together on Twitter or LinkedIn. 👇