For the complete documentation index, see llms.txt. This page is also available as Markdown.

Azure Blob Storage

Azure Blob Storage is Microsoft's cloud object storage service. It stores unstructured data — files like CSVs, JSONs, Parquets, and Excel sheets — that you can connect to Coupler.io and sync into your analytics tools, data warehouse, or spreadsheets.

Why connect to Coupler.io?

  • Centralize cloud file data — Pull files from Azure containers directly into Google Sheets, BigQuery, Looker Studio, or Claude without manual downloads

  • Support multiple formats — Work with CSV, JSONL, Parquet, Excel, and unstructured data in a single data flow

  • Automate file syncs — Schedule regular refreshes so your dashboards and reports always reflect the latest blobs

  • Combine with other sources — Use Join or Append transformations to merge Azure file data with CRM, ad platform, or database records

Prerequisites

You'll need:

  • An active Azure subscription with access to Blob Storage

  • Storage account name (find it in the Azure Portal under Storage Accounts)

  • Container name where your files are stored

  • Storage account key (primary or secondary, available under Access keys in the Azure Portal)

  • Files in a supported format: CSV, JSONL, Parquet, Excel, or unstructured text

Quick start

How to connect

1

Log in to Coupler.io and create a new data flow. Choose Azure Blob Storage as your source.

2

Enter your Azure Blob Storage account name. This is the name of your storage account in Azure (e.g., mystorageaccount). Do NOT include the full domain — just the account name.

3

Provide your storage account key. In the Azure Portal, go to your storage account and select Access keys under Settings. Copy the primary key (or secondary key) and paste it into the Coupler.io form.

4

Enter the container name where your files are stored (e.g., raw-data, imports, or exports).

5

Specify the file path or glob pattern. For a single file, enter the exact path (e.g., sales.csv). For multiple files, use a glob pattern (e.g., data/*.csv to match all CSVs in the data folder, or reports/**/*.parquet to match Parquets in nested folders).

6

Choose your file format from the dropdown: CSV, JSONL, Parquet, Excel, or Unstructured. This tells Coupler.io how to parse and structure the data.

7

Set a start date (optional). If you want to sync only files modified after a certain date, use the date picker. Leave blank to sync all files matching your path pattern.

8

Choose your destination — Google Sheets, BigQuery, Looker Studio, Excel, or an AI destination like Claude or ChatGPT. Select the target sheet, table, or dataset where you want the data to land.

9

Run the data flow manually by clicking the play button. Wait for the flow to complete successfully before scheduling.

Supported file formats

Format
Best for
Notes

CSV

Structured tabular data

Most common; handles headers and quoted fields

JSONL

Nested or semi-structured data

One JSON object per line; flexible schema

Parquet

Large datasets, analytics

Compressed, columnar format; preserves data types

Excel

Multi-sheet workbooks

Supports .xlsx and .xls; syncs one sheet per flow

Unstructured

Logs, text, raw content

Raw file content as plain text

Azure Blob Storage data overview

Azure Blob Storage doesn't have predefined entities like a CRM or API. Instead, you sync files from your container. The data structure depends entirely on the format and content of your blobs.

File formats and structure

Structured formats

Format
Row/record structure
Data types
Use case

CSV

Comma-separated columns, first row = headers

Text, numbers (as strings unless converted)

Sales transactions, customer lists, inventory

JSONL

One JSON object per line

Nested objects, arrays, mixed types preserved

API logs, event streams, user activity

Parquet

Binary columnar format

Native types (int, float, string, date, etc.)

Analytics data, large datasets, BI tools

Excel

Rows and columns in sheets

Mixed types per column

Budgets, forecasts, reports

Unstructured format

Format
Content
Example use

Unstructured

Raw text, logs, markdown, HTML

Log files, error messages, documentation

Common import patterns

Single file sync — Pull one CSV or Excel file into Google Sheets for analysis.

Multi-file append — Use glob patterns like monthly/*.csv to match all monthly reports and Append them into a single BigQuery table. This creates a historical archive without duplicate logic.

Nested folder sync — Glob patterns like data/**/*.parquet sync Parquets from all subfolders in the data directory, useful for tiered storage structures.

Format conversion — Export data from a legacy system as Excel, sync to Coupler.io, and land it in BigQuery as a proper data type-aware table.

Use cases by role

Sync Parquet or CSV files from data lakes into BigQuery or Snowflake. Use glob patterns to match versioned exports (e.g., exports/v2/*.parquet) and Append transformations to build historical tables for trend analysis and modeling.

Pull monthly export files from accounting systems (exported as CSV or Excel) into Google Sheets or a financial data warehouse. Schedule weekly syncs to stay current with bank statements, invoices, and budget actuals.

Ingest raw event logs (JSONL format) from your application into a data lake. Use start dates to sync only recent logs, reducing storage and processing overhead.

Sync inventory or capacity reports (Excel or CSV) from Azure into Looker Studio for real-time dashboarding. Combine with other data sources using Join transformations to correlate stock levels with sales trends.

Platform-specific notes

  • Glob patterns are powerful — *.csv matches files in the root; **/*.csv matches nested folders; data/2024/*.parquet targets a specific year

  • Start date filters by modification time — Files touched after the start date are synced; unchanged files are skipped on refresh

  • Excel syncs one sheet — If your workbook has multiple sheets, create separate data flows for each or export individual sheets as CSVs

  • JSONL requires line-delimited JSON — Each line must be a complete, valid JSON object (not pretty-printed)

  • Large files and performance — Parquet files compress better than CSV; for very large datasets, consider splitting into multiple containers or using date-based folder structures

Azure Blob Storage common issues

Connection issues

Authentication fails with "invalid storage account key"

Your key is incorrect or has expired. Double-check in the Azure Portal:

  1. Go to your storage account > Access keys

  2. Copy the full primary key (not the connection string)

  3. Paste it exactly into Coupler.io with no extra spaces

If the key still fails, regenerate it in the portal (this invalidates the old key across all services).

"Container not found" error

Verify the container name matches exactly (case-sensitive). In the Azure Portal, go to your storage account > Containers and copy the exact name. Common mistake: including the storage account name as part of the path (you only need the container name, e.g., mydata, not mystorageaccount/mydata).

Connection works but no files appear

Check your glob pattern. If you specified data/*.csv but files are in the root, change the pattern to *.csv. Use **/* to match all files recursively across all folders.

Missing data

"File not found" after sync starts

The file path or glob pattern doesn't match any blobs in your container. Test your pattern:

  1. In the Azure Portal, use Storage Browser to navigate your container

  2. Note the exact folder structure and file names

  3. Adjust your glob pattern in Coupler.io to match (e.g., reports/2024/*.csv)

Also check file extensions — *.csv won't match data.CSV (case-sensitive on Linux-based systems).

Only the first file syncs when using a glob pattern

Make sure you're using the glob pattern correctly. For multiple files:

  • data/*.csv — all CSVs in the data folder

  • **/*.parquet — all Parquets in any subfolder

  • reports/202[34]/*.xlsx — Excel files in 2023 and 2024 folders

If the pattern is correct but only one file syncs, check that other files exist and match the pattern in the portal.

Data is older than expected

If you set a start date but old files appear, the start date filters by file modification time, not creation time. If a file was last modified before your start date, it won't sync. Clear the start date to sync all files, or update the start date to a point before the files you need.

Permission errors

"Access denied" or "unauthorized" message

Your storage account key doesn't have read permissions. In the Azure Portal:

  1. Confirm you're using a key from Access keys (not a SAS token or connection string)

  2. Check that the key is for the correct storage account

  3. Verify the storage account isn't behind a firewall that blocks your IP

If a firewall is active, add Coupler.io's IP addresses to the Allow list or temporarily disable the firewall for testing.

"Storage account not found" despite correct name

The account name might be wrong or in a different region/subscription. In the Azure Portal, confirm:

  1. You're in the correct subscription (top-right corner)

  2. Your storage account exists in that subscription

  3. The account name matches exactly (case-insensitive for storage accounts, but copy it exactly to be safe)

Data discrepancies

CSV data types are wrong (dates as text, numbers as strings)

CSV doesn't preserve data types — everything imports as text. If your destination supports it (BigQuery, Snowflake), cast columns after import:

  • CAST(date_column AS DATE)

  • CAST(amount AS FLOAT64)

Alternatively, export from Azure as Parquet instead of CSV; Parquet preserves native types.

JSONL import truncates or fails on complex nested objects

Ensure each line in your JSONL file is a complete, valid JSON object. Common issues:

  • Pretty-printed JSON (multi-line objects) — use a single-line formatter

  • Missing commas or quotes

  • Unescaped special characters

Test your JSONL file with a JSON validator before uploading to Azure.

Excel import includes extra blank rows or headers appear twice

Excel sheets sometimes have hidden rows or multiple header rows. In your source file:

  1. Remove blank rows at the top

  2. Ensure only one header row

  3. Delete any hidden rows (select all, right-click, unhide)

Re-export and re-upload to Azure before syncing.

Rate limits

Sync is slow or times out on large files

Azure Blob Storage has throughput limits based on your tier (standard, premium, etc.). To optimize:

  • Split large files into smaller chunks (e.g., monthly exports instead of yearly)

  • Use Parquet instead of CSV for faster parsing

  • Schedule syncs during off-peak hours

  • Check your storage account's ingress/egress limits in the Azure Portal under Metrics

Azure Blob Storage FAQ

What's the difference between a storage account key and a SAS token?

A storage account key is a full-access credential that grants read/write permissions to your entire storage account. A SAS token is a time-limited, scoped token that can restrict access to specific containers or operations. Coupler.io requires a storage account key (primary or secondary), not a SAS token.

Can I sync files from multiple containers in one data flow?

No. Each data flow connects to a single container. To sync from multiple containers, create separate data flows for each and use Append transformations to combine them into one destination table.

Do I need to manually upload files to Azure, or can Coupler.io push data there?

Coupler.io only reads from Azure Blob Storage. To get data into Azure, you must upload files through your application, a scheduled export, or Azure's native tools. Once files are in your container, Coupler.io syncs them to your destination.

What happens if a file changes between refreshes?

If a file is modified after the last sync, and the start date is before that modification time, the entire updated file syncs on the next refresh. Coupler.io doesn't detect row-level changes — it re-syncs the whole file.

Can I filter files by name pattern without using glob?

No. You must use glob patterns (e.g., data/*.csv, reports/2024/*.parquet) to match multiple files. For a single file, just enter the exact path (e.g., myfile.csv).

How often can I refresh my data flow?

You can refresh as often as you want — hourly, daily, or even every few minutes. However, if files don't change that frequently, more refreshes waste resources. Schedule refreshes to align with how often your files are updated in Azure.

Does Coupler.io support incremental syncs from Azure Blob Storage?

Partially. You can use the start date filter to sync only files modified after a certain time, which reduces redundant imports. However, Coupler.io doesn't track individual row changes within files — each refresh re-syncs entire files if they're modified.

What if my CSV has special characters or encoding issues?

Coupler.io expects standard UTF-8 encoding. If your CSV uses a different encoding (e.g., Latin-1, Windows-1252), open it in a text editor, re-save as UTF-8, and re-upload to Azure. Special characters like quotes and commas must be properly escaped in CSV format.

Can I join Azure Blob Storage data with data from other sources?

Yes! Use Join transformations to combine files from Azure with data from your CRM, database, or ad platform. For example, join a customer list (CSV from Azure) with sales data (from Salesforce) on a common ID column.

For more details on supported file formats and import patterns, see the Data Overview section. For connection troubleshooting, check Common Issues.

Last updated

Was this helpful?