

Building your pipeline or Using Airbyte
Airbyte is the only open source solution empowering data teams to meet all their growing custom business demands in the new AI era.
- Inconsistent and inaccurate data
- Laborious and expensive
- Brittle and inflexible
- Reliable and accurate
- Extensible and scalable for all your needs
- Deployed and governed your way
Start syncing with Airbyte in 3 easy steps within 10 minutes



Take a virtual tour
Demo video of Airbyte Cloud
Demo video of AI Connector Builder
What sets Airbyte Apart
Modern GenAI Workflows
Move Large Volumes, Fast
An Extensible Open-Source Standard
Full Control & Security
Fully Featured & Integrated
Enterprise Support with SLAs
What our users say


"The intake layer of Datadog’s self-serve analytics platform is largely built on Airbyte.Airbyte’s ease of use and extensibility allowed any team in the company to push their data into the platform - without assistance from the data team!"


“Airbyte helped us accelerate our progress by years, compared to our competitors. We don’t need to worry about connectors and focus on creating value for our users instead of building infrastructure. That’s priceless. The time and energy saved allows us to disrupt and grow faster.”


“We chose Airbyte for its ease of use, its pricing scalability and its absence of vendor lock-in. Having a lean team makes them our top criteria. The value of being able to scale and execute at a high level by maximizing resources is immense”
- Install MySQL Server: If you haven’t already, install MySQL on your server or local machine. You can download it from the official MySQL website.
- Create a Database: Log into your MySQL server and create a new database where you will store the HubSpot data:
CREATE DATABASE hubspot_data;
- Create Tables: Define the structure of the tables that will hold the data you want to import from HubSpot. Ensure that the schema matches the data you’ll be extracting.
USE hubspot_data;
CREATE TABLE contacts (
id INT PRIMARY KEY,
firstname VARCHAR(255),
lastname VARCHAR(255),
email VARCHAR(255),
-- Add other fields as necessary
);
- Get HubSpot API Key: Log into your HubSpot account, navigate to the API key section, and generate an API key if you haven’t done so already.
- Plan Your API Calls: Determine which endpoints you’ll need to use to extract the necessary data. For example, you might use the Contacts API to get contact information.
- Write a Script to Call the HubSpot API: You can use a programming language like Python to write a script that makes requests to the HubSpot API. Here’s a sample Python script using the requests library:
import requests
import json
HUBSPOT_API_KEY = 'your_api_key'
ENDPOINT = 'https://api.hubapi.com/contacts/v1/lists/all/contacts/all'
PARAMS = {
'hapikey': HUBSPOT_API_KEY
}
response = requests.get(ENDPOINT, params=PARAMS)
data = response.json()
contacts = data['contacts']
# Extract the relevant data from the contacts
# You might need to handle pagination if there are many contacts - Handle Pagination: HubSpot’s API might paginate the data, so ensure your script handles this by looping through all pages of data.
- Extract and Format Data: Convert the extracted data into a format suitable for insertion into your MySQL database, such as a list of dictionaries or a CSV file.
- Connect to MySQL: Use a MySQL client library in your chosen programming language to connect to your MySQL database. For Python, you can use mysql-connector-python or PyMySQL.
import mysql.connector
cnx = mysql.connector.connect(
user='your_username',
password='your_password',
host='127.0.0.1',
database='hubspot_data'
)
cursor = cnx.cursor() - Prepare Insert Statements: Write a function or a script to insert the formatted data into your MySQL tables. Be cautious about SQL injection and use parameterized queries.
add_contact = ("INSERT INTO contacts "
"(id, firstname, lastname, email) "
"VALUES (%s, %s, %s, %s)")
for contact in contacts:
contact_data = (contact['id'], contact['firstname'], contact['lastname'], contact['email'])
cursor.execute(add_contact, contact_data)
cnx.commit() - Handle Data Types and Encoding: Ensure that the data types from the API match the corresponding MySQL column data types. Also, handle any character encoding issues.
- Error Handling: Implement error handling in your script to manage any issues that arise during the data transfer process, such as connection problems or data inconsistencies.
- Close Connections: After the data has been successfully inserted, close the cursor and the connection to the MySQL database.
cursor.close()
cnx.close()
- Test the Script: Run your script in a controlled environment first to ensure it works as expected. Test with a small subset of data if possible.
- Validate the Data: After running the script, check the MySQL database to confirm that the data has been correctly inserted and that there are no discrepancies.
- Optimize Performance: Depending on the volume of data, you might need to optimize your script and MySQL queries for better performance.
If you need to keep the MySQL database in sync with HubSpot data regularly, you can schedule the script to run at specific intervals using cron jobs (on Linux) or Task Scheduler (on Windows).
FAQs
What is ETL?
ETL, an acronym for Extract, Transform, Load, is a vital data integration process. It involves extracting data from diverse sources, transforming it into a usable format, and loading it into a database, data warehouse or data lake. This process enables meaningful data analysis, enhancing business intelligence.
A platform focused on sales and inbound marketing, Hubspot helps businesses optimize their online marketing strategies for greater visibility to attract more visitors, collect leads, and convert prospects into customers. HubSpot provides a variety of essential services and strategies to move businesses forward, including social media and email marketing, website content management, search engine optimization, blogging, and analytics and reporting. Hubspot is an all-around solution for business teams to grow their customer base through effective marketing.
HubSpot's API provides access to a wide range of data categories, including:
1. Contacts: Information about individual contacts, including their name, email address, phone number, and company.
2. Companies: Information about companies, including their name, industry, and location.
3. Deals: Information about deals, including their stage, amount, and close date.
4. Tickets: Information about customer support tickets, including their status, priority, and owner.
5. Products: Information about products, including their name, price, and description.
6. Analytics: Data on website traffic, email performance, and other marketing metrics.
7. Workflows: Information about automated workflows, including their triggers, actions, and outcomes.
8. Forms: Information about forms, including their fields, submissions, and conversion rates.
9. Social media: Data on social media engagement, including likes, shares, and comments.
10. Integrations: Information about third-party integrations, including their status and configuration.
Overall, HubSpot's API provides access to a wide range of data categories that can be used to improve marketing, sales, and customer support efforts.
What is ELT?
ELT, standing for Extract, Load, Transform, is a modern take on the traditional ETL data integration process. In ELT, data is first extracted from various sources, loaded directly into a data warehouse, and then transformed. This approach enhances data processing speed, analytical flexibility and autonomy.
Difference between ETL and ELT?
ETL and ELT are critical data integration strategies with key differences. ETL (Extract, Transform, Load) transforms data before loading, ideal for structured data. In contrast, ELT (Extract, Load, Transform) loads data before transformation, perfect for processing large, diverse data sets in modern data warehouses. ELT is becoming the new standard as it offers a lot more flexibility and autonomy to data analysts.
What should you do next?
Hope you enjoyed the reading. Here are the 3 ways we can help you in your data journey: