Introduction to JSON and why make.com transforms them into bundles

When you connect with any platform's API and request data from it, the platform responds with some data.
But what does this data look like?
For example, we recently requested spreadsheet data using Google Sheets API, but how does this data looks like without rows and columns UI of the spreadsheet?
Let's understand this with a simple analogy.
The Need for a Standard Format
Think about ordering food at a restaurant.
The kitchen could technically serve your food in anything — a plate, a box, a paper bag.
But restaurants use standard plates because everyone understands and expects them:

This standardization makes the serving process smooth and predictable.
The same principle applies to data sharing between platforms too.
No single platform uses the same tech stack or presents its data in the same format.
But since these platforms data is being used by others, they should share the data in a standard, recognizable format.
For example, when Instagram sends follower counts to Make.com, or when Google Sheets receives data to update your spreadsheet, this information needs to come in a standard, recognizable format.
And In most cases, JSON (JavaScript Object Notation) is that standard format.
There is another format called XML but discussing XML is out of scope for this course.
So, let's just talk about JSON for now.
JSON (JavaScript Object Notation)
JSON is a text-based format for storing and exchanging data between different platforms.
Think of JSON as the universal language that different platforms use to talk to each other.
JSON is popular because:
- It is easy to read for both humans and computers
- It works across all programming languages and platforms
- It's lightweight and fast to process
What Does JSON data Look Like?
Here’s how Google Sheets sends data in JSON format when we fetch rows from our “Quote Generation” spreadsheet:
[
{
"0": "andyhowardofficial@gmail.com",
"1": "Andy",
"2": "Howard",
"3": "troubleshooting emails",
"4": 300,
"5": false,
"__ROW_NUMBER__": 2,
"__SPREADSHEET_ID__": "1SJdca6nEeFEnmuWpBSbjw9a8k_xiOeOmjNaRL_t51Gw",
"__SHEET__": "Sheet1",
},
{
"0": "brosiojon@gmail.com",
"1": "Jon",
"2": "Brosio",
"3": "building a landing page",
"4": 1200,
"5": true,
"__ROW_NUMBER__": 3,
"__SPREADSHEET_ID__": "1SJdca6nEeFEnmuWpBSbjw9a8k_xiOeOmjNaRL_t51Gw",
"__SHEET__": "Sheet1",
},
{
"0": "jenniferhoffmanofficial@gmail.com",
"1": "Jennifer",
"2": "Hoffman",
"3": "trobleshooting checkout",
"4": 200,
"5": false,
"__ROW_NUMBER__": 4,
"__SPREADSHEET_ID__": "1SJdca6nEeFEnmuWpBSbjw9a8k_xiOeOmjNaRL_t51Gw",
"__SHEET__": "Sheet1",
},
{
"0": "oreallyjune2022@gmail.com",
"1": "June",
"2": "Oreilly",
"3": "converting your figma design to WordPress",
"4": 3000,
"5": true,
"__ROW_NUMBER__": 5,
"__SPREADSHEET_ID__": "1SJdca6nEeFEnmuWpBSbjw9a8k_xiOeOmjNaRL_t51Gw",
"__SHEET__": "Sheet1",
},
{
"0": "curryparkerofficial@gmail.com",
"1": "Curry",
"2": "Parker",
"3": "trobleshooting checkout",
"4": 200,
"5": false,
"__ROW_NUMBER__": 6,
"__SPREADSHEET_ID__": "1SJdca6nEeFEnmuWpBSbjw9a8k_xiOeOmjNaRL_t51Gw",
"__SHEET__": "Sheet1",
}
]
Look at this data closely.
1) The entire data is wrapped inside square brackets []
, meaning it is a JSON array (a list of items).
For example, our spreadsheet has five rows. So, the above JSON code has five items.

2) Each item inside the array is enclosed in curly braces {}
, meaning it is a JSON object (an item with multiple pieces of data).
[
{
"0": "andyhowardofficial@gmail.com",
"1": "Andy",
"2": "Howard",
...
},
{
"0": "brosiojon@gmail.com",
"1": "Jon",
"2": "Brosio",
...
},
{
"0": "jenniferhoffmanofficial@gmail.com",
"1": "Jennifer",
"2": "Hoffman",
...
},
{
"0": "oreallyjune2022@gmail.com",
"1": "June",
"2": "Oreilly",
...
},
{
"0": "curryparkerofficial@gmail.com",
"1": "Curry",
"2": "Parker",
...
}
]
3) Inside each object, data is stored as key:value pairs

Just to be on the same page:
In "1": "Jon"
key-value pair, "1"
is the key, "Jon"
is the value.
Having said all this, at the end of the day, JSON is just a piece of text with information structured in a particular way.
“Yep! Got it. But bro, I don't know code. JSON looks like code no matter how you sugar coat it.”
Hahaha :D
But, don't worry.
Tools like Make.com makes it easy to work with JSON responses
Once Make.com receives the JSON response from an API, it parses the JSON response and converts it into bundles so that you can easily work with the data.
For example:
- Our spreadsheet has five rows.
- So, Google Sheets API responded with five JSON objects
- Make.com converted those five JSON objects into five bundles.

Here is one more example of how make.com's bundles improves the readability of JSON data.
If you observe the JSON data, it doesn't have column names next to the values of a particular row:
{
"0": "curryparkerofficial@gmail.com",
"1": "Curry",
"2": "Parker",
"3": "trobleshooting checkout",
"4": 200,
"5": false,
}
But make.com bundles resolves this problem by linking column names to each value of a row:

This way, it becomes easy for us to map the values of different columns of a row in the next step of the automation.
Anyway, we will keep learning about JSON in the future lessons, but for now, before we continue implementing our automation, It is important to understand how the module execution flow works in Make.com.
And we will understand that in the next lesson.