How many tools are in your company's tech stack? If you’re like the average software company the number is probably a staggering 37 or more. Take a typical Customer Success team for example. You have your customer ticketing software, customer relationship management tool, customer success software, live chat platform, customer data platform, and more.
Each of these platforms provide helpful insights into the performance of your Customer Success team, highlighting what they do great and where they have opportunities to improve. The catch? This data is spread across 5+ platforms, so your team must shuffle between systems or spend valuable time aggregating data.
Enter, Airbyte and Keen. Keen is a data streaming and analytics platform helping users create custom analytics in minutes, not months. With Airbyte, you can easily send data from 100+ platforms to Keen for unified analytics and dashboarding. Your marketing, sales, product, and customer success teams can have a single view to fully understand the impact they are having. Use this data to make strategic, data-backed optimizations to accelerate your growth.
This recipe will explain the steps you need to take to stream data from Salesforce and Zendesk to Keen to gain a 360-degree view of your business using Airbyte.
1. You'll need to install Airbyte to move your data. To deploy Airbyte, follow the simple instructions in our documentation here.
2. Salesforce, Zendesk, and Keen are SaaS services, and you'll need to have an account on these platforms to get started. Note: You need a Salesforce account with API Access. Salesforce editions with API access include: Enterprise, Unlimited, Developer, and Performance. For other editions, please contact Salesforce support for help enabling API access.
3. For the Destination, you will need to create an empty Keen project to host your data. To do so, click on the ‘Add New’ button as shown in the navigation bar.
Give your project a name and then select ‘Add Project’. In the example below, we have named our database ‘Keen_Destination’. You can think of a project as a data silo. The data in a project is completely separate from data in other projects. We recommend that you create separate projects for each of your applications and separate projects for Dev and Prod environments.
After you have Airbyte running locally, visit http://localhost:8000.
If it's the first time you're launching Airbyte, you’ll need to customize your preferences. Then, you’ll be offered a quick onboarding for the application. You can complete the walkthrough or skip it and continue with the following steps.
Navigate to the Destinations tab and create a new Keen Destination Connector.
Now, it’s time to set up your Keen connector.
In the Keen application, navigate to your project’s Access tab. You will need to copy your Project ID and Master API Key. Then, paste this information into the connector configuration in the Airbyte application. Don’t forget to give your connector a name!
By default, the Keen connector will infer the keen.timestamp field based on the data from the event that occurred in the source application. This ensures the most accurate analytics for time-related data. If Keen cannot infer the timestamp or you choose to disable this functionality, keen.timestamp will hold the value of time when the record was saved in Keen.
That’s it! Now, you’re ready to connect Keen with the source of your choice.
The Keen destination supports 3 Airbyte synchronization modes. You can specify the mode for each stream:
Not all streams support all synchronization modes.
The Salesforce connector uses OAuth2 for authentication, so the steps required to setup the source connector will be different than simply copying and pasting API keys. In this tutorial, we cover how to obtain access and refresh tokens from the Salesforce REST API and stream your Salesforce data to Keen for custom analytics.
In order to use the Salesforce Airbyte connector, you need to create a Connected App. To do this:
Now, it’s time to fill in all of the required fields: Connected App name, API name, and contact email. For the Api (Enabled OAuth Settings) section, click the checkbox. Fill in the details as follows:
From Available OAuth scopes choose:
Now, click the save button. Your connected app is ready!
After creating your connected app, the next step is to generate the OAuth access token. This will allow you to securely connect Salesforce to Keen. First, you’ll need the authorization code.
Once you have the authorization code, you can easily generate access and refresh tokens. To do this, you need to execute an HTTP POST request for the following url:
You can use curl, or any http client or platform capable of executing http requests, that you’re familiar with.
If you are using curl, execute the following command:
A successful request will return your access_token, refresh_token and some additional properties. Grab the refresh_token, as it’s needed by the Airbyte Connector.
Now, you are ready to create a Salesforce source at Airbyte. Navigate to your Airbyte instance and create a new source by following the steps below
Next, connect the Keen Destination with the newly created Salesforce source. Choose your desired synchronization frequency and which streams you want to replicate to Keen. There are 350+ event streams to choose to replicate. For this example, we’ll choose two streams: Account and AccountHistory. Set up the connection, and launch the first synchronization. Soon, you will see records start to appear in your Keen project.
You can follow similar steps to the Salesforce example above to connect other Customer Success tools to Keen. To add Zendesk, you will need to:
Now, your Salesforce and Zendesk data is being replicated to Keen for unified analysis and dashboarding.
Streaming your Salesforce and Zendesk data to Keen, gives you the ability to run custom analysis and uncover relevant insights and trends. You can also stream data from other tools in your tech stack to analyze alongside this data. Popular examples include Intercom, Drift, or any other Airbyte supported connector.
The Data Explorer is a tool in the Keen app that enables you to perform a wide array of analysis on your data by creating, running, and managing queries. For this example, let’s say you are interested in getting a count of your churned customers by industry.
To do this, you would use the following query parameters within the “QUERY” tab.
You can save this query to be reused. After saving, your query is ready to be added to a dashboard.
The Dashboard Creator is a drag-and-drop tool that allows you to quickly create reports and share them with relevant internal or external users.
Navigate to the dashboards tab and select, New Dashboard. Then, add the chart you created by selecting the ‘Chart’ button, and clicking on the name of the chart.
Below is an example of a Customer Success Dashboard that unifies Salesforce and Zendesk data followed by the query parameters.
To summarize, here is what we’ve done during this recipe:
1. Set up the Keen Destination in Airbyte
2. Created a Salesforce Connected App
3. Generated Salesforce OAuth Access Tokens
4. Analyzed Salesforce Data in Keen
5. Created a Customer Success Dashboard using Salesforce and Zendesk data
This allows Customer Success teams to save valuable time by having a single view of their performance—no more shuffling between systems. And, by having a complete view of your customer touchpoints you can make informed decisions that create the best user experience.
We know that development and operations teams working on fast-moving projects with tight timelines need quick answers to their questions from developers who are actively developing Airbyte. They also want to share their learnings with experienced community members who have “been there and done that.”
Join the conversation at Airbyte’s community Slack Channel to share your ideas with over 1000 data engineers and help make everyone’s project a success.
Learn how to move all your data to a data lake and connect your data lake with the Dremio lakehouse platform.
Learn how to bypass Slack's message history restriction and access all of your messages, even if you aren't on a paid Slack plan.