# Bulk Create Rows

The Bulk Create Rows step allows you to create multiple rows in a table.

By default, the expected format of the action is an **array of objects** representing the rows to be created. The object *keys* are the column names and the *values* are the values to be inserted.

```javascript
{
  name: "John",
  age: 30
},
{
  name: "Doe",
  age: 28
}
```

<figure><img src="https://837703843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUX6zPRMFFK0yrTghj7cY%2Fuploads%2FSGbGMf6HCVeLUzkYhxuD%2FCleanShot%202025-05-08%20at%2012.15.35%402x-min.png?alt=media&#x26;token=6f73c668-06b2-47aa-9033-5688a083530d" alt=""><figcaption></figcaption></figure>

This object will be sent to the server and converted to an `INSERT` statement, for example:

```sql
INSERT INTO users (name, age) VALUES ('John', 30), ('Doe', 28);
```

{% hint style="info" %}
You can check the action's *Payload* tab to see the objects sent to the server.
{% endhint %}

Unset fields will be presented as undefined and will not be used in the `INSERT` statement - the table defaults will be applied instead.

```javascript
{
  id: 23,
  created_at: "2022-10-21",
  // this value will not be sent to the server
  required_at: undefined,
}
```

You can always adjust the data before sending it and you can also add dynamic data to the query using Table variables - `{{ui.table.value}}`.
