2.9 KiB
2.9 KiB
Step-by-step Guide
A step-by-step guide to connecting MongoDB and HubSpot in MindsDB, querying across them, and using an AI agent over the same data.
1. Create Databases
Connect MongoDB (reviews, product sales) and HubSpot (companies, contacts) as MindsDB datasources.
MongoDB
CREATE DATABASE mongodb_data
WITH ENGINE = 'mongodb',
PARAMETERS = {
"host": "mongodb+srv://demouser:MindsDB_demo@mindsdb-demo.whljnvh.mongodb.net/demo"
};
HubSpot
CREATE DATABASE hubspot_data
WITH ENGINE = 'hubspot',
PARAMETERS = {
"access_token": "pat-na1-d7a93c10-07d1-45fd-ac7a-b109d00d9e2b"
};
2. Display Data
Verify data from each source.
HubSpot companies (sample fields):
SELECT name, domain, industry, annualrevenue, numberofemployees
FROM hubspot_data.companies
LIMIT 10;
MongoDB reviews (sample fields):
SELECT customer_email, product_sku, star_rating, review_title, review_text
FROM mongodb_data.reviews
LIMIT 10;
3. Query Data
Single-database queries
Q. What is the average product review rating?
SELECT AVG(star_rating) AS average_rating
FROM mongodb_data.reviews;
Cross-database queries
Q. Who are our top 10 customers by revenue?
SELECT
hc.firstname,
hc.lastname,
ROUND(SUM(ps.sales_amount), 2) AS total_revenue
FROM mongodb_data.product_sales AS ps
JOIN hubspot_data.contacts AS hc ON ps.customer_email = hc.email
GROUP BY hc.firstname, hc.lastname
ORDER BY total_revenue DESC
LIMIT 10;
4. Create Agent
Define a sales_agent that can answer questions over HubSpot contacts and MongoDB product sales.
CREATE AGENT sales_agent
USING
model = {
"provider": "openai",
"model_name": "gpt-5.4",
"api_key": "<your-openai-api-key>"
},
data = {
"tables": [
"hubspot_data.contacts",
"mongodb_data.product_sales"
]
},
prompt_template = '
hubspot_data.contacts stores CRM contact data including:
id, email, firstname, lastname, jobtitle, company, city,
website, lifecyclestage, hs_lead_status.
mongodb_data.product_sales stores sales order line items including:
order_number, order_date, customer_email, city, state, product_sku,
sales_quantity, discount_percent, sales_price, sales_amount,
sales_tax_percent, tax_amount.
To join both sources, use:
hubspot_data.contacts.email = mongodb_data.product_sales.customer_email.
',
timeout = 60;
5. Query Agent
Single-database question
SELECT answer FROM sales_agent
WHERE question = 'What is the total revenue in product sales?';
Cross-database question
SELECT answer FROM sales_agent
WHERE question = 'What is the lifecycle stage of noah.johnson@clearwaterholdings.co, and how much have they spent in total?';