🎯 Situation
A client came to us with a very common problem. Their business ran on four tools: Shopify for e-commerce, HubSpot for CRM, Zendesk for customer support, and QuickBooks for accounting. Each had its own dashboard. None of the dashboards talked to each other.
They wanted to answer one simple question: which customers generate the most revenue — and also have the highest support ticket volume? In other words, which high-value customers are at risk of churning?
Within a few days, we had a pipeline pulling data from all three platforms, loading it into a central database, and feeding a Power BI dashboard that answered that question — updated every night automatically.
⚠️ Challenge
SaaS tools are built to manage workflows — not to export data in a way that's easy to analyze across platforms. Most offer four options for getting your data out, each with real trade-offs.
📄 The four options
- Manual export (CSV) — works once, breaks at scale, no automation possible
- Native connector in Power BI — easy when it exists, limited scope, often missing the data you actually need
- Third-party ETL (Fivetran, Airbyte) — powerful, reliable, but adds monthly cost per connector
- Direct API call — maximum flexibility, works for any tool with an API, requires technical setup
🔍 When the API wins
- No native Power BI connector for your tool
- The connector exists but doesn't expose the data you need
- You want full control over what gets extracted and when
- You're building a centralized data layer anyway
- ETL tool cost isn't justified for the volume
For most SMBs, the API is the right answer when the native connector doesn't cover the use case — which is more often than you'd expect. Almost every SaaS tool built in the last decade has a REST API. The data is there. It just requires knowing how to ask for it.
🔍 How a REST API Actually Works
You don't need to be a developer to understand the concept. A REST API is essentially a URL you call with specific parameters — and the tool responds with data in JSON format.
A real example from Shopify:
- You send a request to
https://your-store.myshopify.com/admin/api/2024-01/orders.json - You include an authentication token in the request header (an API key the platform gives you)
- Shopify responds with a JSON list of your orders — customer info, amounts, dates, line items, status
- You parse that JSON, transform it into a structured table, and load it into your database
That's the full cycle. The technical complexity is in the details — authentication methods (API key, OAuth, Bearer token), pagination (most APIs return 100 records at a time, so you loop through pages), rate limiting (APIs cap how many requests you can make per minute), and error handling.
✓️ The Architecture That Works
Whether you use Python, Power Automate, or a dedicated ETL tool, the pattern is always the same — and it's the same architecture we've talked about in previous articles:
- Extract — call the API on a schedule (nightly, hourly, or on-demand depending on freshness needs)
- Transform — clean the JSON response: flatten nested objects, rename fields, handle missing values, standardize date formats
- Load — write the clean data into a central database (Azure SQL, PostgreSQL, BigQuery, or even SharePoint for lighter use cases)
- Connect Power BI — point your Power BI dataset at the database, not at the API directly — this keeps your report fast and your API calls manageable
For the client with Shopify + HubSpot + Zendesk: the shared key was the customer email address. Each API exposed it. We used it as the join key in the database to link orders, CRM contacts, and support tickets — creating the unified view that no single tool could provide.
💡 Summary
If your business runs on SaaS tools and you can't get a cross-platform view of your data, the API is usually the most direct path forward. The steps are always the same:
- Check if the tool has an API — almost every modern SaaS platform does. Look for "API documentation" or "developer docs" in their help center.
- Find the authentication method — API key, OAuth 2.0, or Bearer token. The docs will specify.
- Identify the endpoints you need — orders, contacts, tickets, transactions. Each has its own URL.
- Build the pipeline — Python, Power Automate, or an ETL tool. Extract → transform → load into a central database.
- Connect Power BI to the database — not to the API. Let the pipeline do the heavy lifting on a schedule.
The CSV export solves today's problem. The API solves the problem for the next three years. And once the data is in a central database, every new question you want to answer is just a new query — not a new manual export.
👉 Your data isn't missing. It's just locked in a tool that wasn't designed to share it.
The API is the key.