# Multi-Row Writeback

When you need to update or insert many database records at once, writing back row by row is impractical. The **Multi-Row Writeback** component lets you bind a table range from your spreadsheet and send all its rows to a database in one operation, receiving a status response for every execution.

{% hint style="success" %}
**Multi-Row Writeback** is available on **Builder** Plans and above. It requires an active InfoBurst Enterprise (IBE) connection. The component appears in the Connections panel only when IBE connectivity is enabled on your account.
{% endhint %}

### Adding a Multi-Row Writeback Component

The Multi-Row Writeback component is a non-visual connection component. It runs in the background and does not appear on the canvas.

1. Open the **Connections** panel in the left sidebar.
2. Locate the **InfoBurst** section.
3. Click **Multi-Row Writeback** to add it to your project.

<figure><img src="https://911720298-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkLBGzn2hXrIMe50klQCv%2Fuploads%2F33bfT5dywxTFriuAXdtB%2Fimage.png?alt=media&#x26;token=d5989c79-f41a-4e71-a2df-e4698e99684d" alt="" width="256"><figcaption></figcaption></figure>

The component appears in the Connections panel list. Select it to open its properties in the right-hand properties panel.

***

### Configuring the Component

The properties panel contains three sections: **Login**, **Writeback Statement**, and **Usage**. Complete them in order — each section depends on the one before it.

**LOGIN**

The **Login** section connects the component to your InfoBurst instance.

1. Select either **InfoBurst Server** or **InfoBurst Cloud** using the radio buttons at the top of the section.
2. If you selected **InfoBurst Server**, enter the **InfoBurst URL (with port)** — for example, `https://infoburst:8551`.
3. Enter your **Username** and **Password**.
4. Click **Login**.

<figure><img src="https://911720298-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkLBGzn2hXrIMe50klQCv%2Fuploads%2FfI6TBum8h9V9ScbhNAdH%2Fimage.png?alt=media&#x26;token=76a10903-3c96-4c35-852f-95da18acab2a" alt="" width="250"><figcaption></figcaption></figure>

After a successful connection, the status displays **Connected** and the **Select the database connection** dropdown appears. If the connection fails, the status displays **Unable to connect** — check your credentials and try again.

5. Select a database connection from the **Select the database connection** dropdown.

**WRITEBACK STATEMENT**

Once a database connection is selected, the **Writeback Statement** section becomes available.

Select the writeback statement you want to execute from the **Select the writeback statement** dropdown. The list is populated from the queries configured for the selected database connection in InfoBurst.

<figure><img src="https://911720298-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkLBGzn2hXrIMe50klQCv%2Fuploads%2F5Qkcf8EBJQN990ssokSl%2Fimage.png?alt=media&#x26;token=9654a81f-f112-4b04-a34e-81f051624b33" alt="" width="249"><figcaption></figcaption></figure>

After selecting a statement, the **Parameters & Response** sub-section appears if the selected statement includes parameters.

**PARAMETERS & RESPONSE**

The **Parameters & Response** sub-section defines what data is sent to the database and where the response is written.

<figure><img src="https://911720298-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkLBGzn2hXrIMe50klQCv%2Fuploads%2FcFEY6raAaaHLs5uzHmYY%2Fimage.png?alt=media&#x26;token=4ccc2022-dc84-422a-93c1-87421dda6d39" alt="" width="255"><figcaption></figcaption></figure>

**Parameter Table**

Bind the **Parameter Table** field to a spreadsheet range that contains the data to write back. Structure the range as a table:

* **Row 1** — header row containing the parameter names, which must match the parameter names defined in the writeback statement exactly
* **Rows 2 onwards** — data rows, one database row per spreadsheet row

The field label shows the number of columns the selected statement expects — for example, **Parameter Table (3 columns)**.

To confirm the correct column names and order, click **Copy Parameter Header Row**. This copies the expected parameter names to your clipboard so you can paste them as the first row of your data range.

{% hint style="warning" %}
The order of columns in your data range must match the parameter order defined in the writeback statement. Use **Copy Parameter Header Row** to verify the expected names and their sequence before binding.
{% endhint %}

**Response Table**

Bind the **Response Table** field to a spreadsheet range where the writeback response will be written. Define a range in a different area from your parameter table to avoid overwriting your input data. See Reading the Response for details on the columns this table contains.

***

### Reading the Response

After each writeback execution, the component populates the **Response Table** range with four columns, one row per data row that was sent:

| Column            | Description                                                        |
| ----------------- | ------------------------------------------------------------------ |
| **Status**        | The result code returned by InfoBurst for each row                 |
| **Rows Affected** | The number of database rows inserted or updated                    |
| **Timestamp**     | The time the writeback operation completed                         |
| **Error Message** | Any error returned by InfoBurst; empty when the operation succeeds |

Bind these columns to scorecard cells, text components, or other components in your project to surface the results to end users.

***

### Usage Settings

The **Usage** section controls when the writeback executes at runtime. You can enable any combination of the three options.

<figure><img src="https://911720298-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkLBGzn2hXrIMe50klQCv%2Fuploads%2F2wtiBmqz77ufse5lIUkr%2Fimage.png?alt=media&#x26;token=bf7b0762-6196-422c-8e97-15b79b5e357f" alt="" width="249"><figcaption></figcaption></figure>

**REFRESH ON LOAD**

Enable **Refresh on Load** to execute the writeback automatically when the project loads. Use this when your data range is pre-populated and the writeback should run immediately on open.

**REFRESH ON INTERVAL**

Enable **Refresh on Interval** to execute the writeback on a recurring schedule. Enter the frequency in the **Interval** field, in seconds.

{% hint style="info" %}
Set the interval to a value that allows the previous writeback to finish before the next one begins. Short intervals may cause requests to overlap if the database operation takes longer than expected.
{% endhint %}

**REFRESH ON CELL CHANGES**

Enable **Refresh on Cell Changes** to execute the writeback whenever specific spreadsheet values change. Use the condition builder that appears below the checkbox to define which cell or cells trigger the execution.
