Import customer data from your data warehouse into Appcues with our Hightouch integration
Learn how to quickly and easily import customer data into Appcues with our Hightouch integration.
Submit Article Requests
Do you have a suggestion for an article you would like to see created?
Feel free to submit this form and add your suggestions to our document board.
- Installation & Developers
- Web Experiences
- Mobile Experiences
- Account Management
- Best Practices
- System Status
Table of Contents
What is Hightouch?
Hightouch is a Reverse ETL management tool. In simplest terms, companies use Hightouch to push information out of their data warehouse (a Source) into all of their other SaaS tools (Destinations).
This integration offers Appcues as one of the Destinations in Hightouch.
Why import customer data into Appcues?
There are several ways to push your user profile and event data into Appcues to use for flow experience targeting and analytics, including:
- Via the Appcues SDK
- Using our Public API
- Installing Appcues via a CDP like Segment.io, Rudderstack or Freshpaint
However, the SDK and API options may require more custom development than your team is willing to take on, and you may not use a CDP. The Hightouch integration offers yet another option to ingest user and event data into Appcues. This data is crucial for making sure you can segment your Appcues flows and deliver the right message to the right people.
What data warehouses are included in the integration?
Hightouch allows you to connect Appcues to several of the most popular database products, including:
- And more!
For a full listing of data sources available in Hightouch, see their integrations page.
What types of data can be imported?
Currently, the Hightouch integration supports ingesting User Profile and Event data into Appcues. Group/Account profile data is coming soon; stay tuned!
Setting up a data sync using Hightouch
For a more detailed walkthru of setting up a sync between your Sources and Destinations, refer to the full Hightouch documentation here. In the example in this doc, we will be using a Postgres database to ingest User Profile data. At a high level, a Hightouch sync involves these steps:
- Create a Source to connect to your data warehouse
- Create a Model to define the tables and columns you want to ingest from your Source
- Create a Destination (in this case, Appcues)
- Configure a Sync that maps Source fields to Destination fields, and how often the sync should occur
Create a Source
In your Hightouch account, select Sources in the left nav, then Add source. On the next screen, select your data source (in this case, PostgreSQL).
On the next screen, configure your source. In this case, we're choosing to connect directly. Add your database host, port, and name. You'll then choose your sync engine (in this case, we're choosing the standard engine as it only requires a database user with read access) and add your user and password.
You can then click the Test Connection button to confirm your setup is correct.
Once your testing is successful, click Save and you have a new Source successfully configured.
Create a Model
In your Hightouch account, select Models in the left nav, then Add model. On the next screen, select the Source you created previously (in this case, PostgreSQL).
On the next screen, you'll be asked which modeling method you want to use to define the properties you will be ingesting into Appcues. In this example, since the table itself in Postgres is already tabular, with each property already modeled as its own column in the table, the Table selector modeling method should work fine. With this selection, you'll be asked to choose the table from the database you want to ingest. Clicking Preview results will show you the data you've selected.
Alternatively, you could also use the SQL query modeling method. In this case, select * produces the same results as the table selector modeling method in this simple table example. However, you may need to rely on the SQL query method to write a pivot query if your user profile table stores data in a key-value columns scheme.
On the last model configuration screen, you'll need to give the model a name and select the primary key. In the case where you're ingesting user profile data, you'll want to make sure your key is the same user ID field that maps to your users in Appcues.
Select Save, and your model is complete.
Create a Destination
In your Hightouch account, select Destinations in the left nav, then Add destination.
On the next screen, select Appcues as your Destination.
On the next screen, you'll be asked you enter your Appcues account ID and API keys.
To create new API keys, go to Appcues Studio and go to Account Settings.
Select the API Keys nav item and click Create new key.
In the next modal, give your new key a name and give it Admin permissions.
On the next screen, you'll be given your API Key and Secret. Be sure to copy and paste these values before clicking Done. The Secret will not be available again after you close this screen.
Enter your account ID and API key information in Hightouch, select Save, and your Destination is complete.
Configure a Sync
In your Hightouch account, select Syncs in the left nav, then Add sync.
On the next screen, select the Model you created previously.
Next, select the Appcues Destination you created previously.
On the next configuration screen, select Object and Users.
On the next screen, you'll map the user properties from your Model to the user properties in Appcues. First, make sure the userId from your Model matches the User ID property in Appcues.
Below that section, you'll map all other properties from the Model that you want to sync to Appcues. If these properties already exist in Appcues, make sure the name matches exactly. Otherwise, new properties will be created in Appcues.
On the last screen, you'll choose how and how often the sync occurs. In this example, we've chosen every hour. Meaning, every hour Hightouch will query the Postgres table defined in the Model. If any changes are detected since the last sync, the changes will be imported into Appcues.
Click Finish. On the Sync Status page, you can manually run your first sync and see the results. As you can see in the screenshots below, all 40 of the users in my Postgres database were successfully imported into Appcues.
The Sync is now completed, and in this case, it will run every hour.
Verify synced data in Appcues
Inside Appcues, you can immediately inspect these imported users' profiles and see the imported properties.
All imported profile data is immediately available for targeting and segmentation.