> For the complete documentation index, see [llms.txt](https://developer.kizen.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.kizen.com/docs/integrations-and-plugins/integrations/mysql.md).

# MySQL

{% hint style="success" %}
**Audience:** Admins, Developers, Solution Architects

**Purpose:** Explains what the MySQL integration is, when to use it, and how it works within your Agentic Workflows
{% endhint %}

## Overview

Run SQL queries and statements against an external MySQL database directly from an <code class="expression">space.vars.automation</code> in <code class="expression">space.vars.Kizen\_company\_name</code> and use the results in later steps with the MySQL integration.

### What Is the MySQL Integration?

The MySQL integration adds two action steps to the <code class="expression">space.vars.automation</code> builder:

* **Read Data**: Runs a `SELECT` query against your MySQL database and returns the results to a variable
* **Write Data**: Executes `INSERT`, `UPDATE`, or `DELETE` statements and returns the number of affected <code class="expression">space.vars.entities</code>

You configure the connection to your MySQL database once, as an integration secret in <code class="expression">space.vars.Kizen\_company\_name</code>. See [Enable MySQL in Kizen](/docs/integrations-and-plugins/integrations/mysql/enable-mysql-in-kizen.md) for details.

The integration supports a single MySQL environment or multiple environments, each with its own connection credentials. If you have more than one environment, you specify which to query when you call Read Data or Write Data from your <code class="expression">space.vars.automation</code>.&#x20;

To learn more, see [Add MySQL Data to an Agentic Workflow](/docs/integrations-and-plugins/integrations/mysql/add-mysql-data-to-an-agentic-workflow.md).

### When to Use the MySQL Integration

Use the MySQL integration when an <code class="expression">space.vars.automation</code> needs to check or update data that lives outside <code class="expression">space.vars.Kizen\_company\_name</code>, in a MySQL application database or data warehouse, before continuing to the next step. You don't need to copy the data into <code class="expression">space.vars.Kizen\_company\_name</code> first. The integration handles the communication with the MySQL server.

#### Common Use Cases

* Pulling a patient's eligibility status before routing a task
* Checking an insurance applicant's policy claim count to determine whether manual underwriting is necessary
* Validating a credit applicant's credit tier

***

## How the MySQL Integration Works

Before you configure the MySQL integration, it's important to understand how it functions at a conceptual level.

### Connection Model

Connecting to a MySQL database from <code class="expression">space.vars.Kizen\_company\_name</code> requires a MySQL user account with the appropriate read and write privileges on the tables to query. But instead of using an authorization protocol like OAuth, the MySQL integration keeps track of your connection credentials as an integration secret. A single secret can hold credentials to multiple MySQL environments, such as production and staging, as separate keys. You select which environment to use at each Read Data or Write Data step of the <code class="expression">space.vars.automation</code>.&#x20;

For more information, see [Add MySQL Data to an Agentic Workflow](/docs/integrations-and-plugins/integrations/mysql/add-mysql-data-to-an-agentic-workflow.md).

### Query Execution

Queries and statements execute synchronously, so the <code class="expression">space.vars.automation</code> waits at the Read Data or Write Data step until the MySQL database returns the result. The step times out on the <code class="expression">space.vars.Kizen\_company\_name</code> side after 30 seconds.

### Rate Limiting

Rate limits are subject to your MySQL server's maximum number of connections, per-role connection limits, and timeout setting.

If you exceed the rate limit, MySQL refuses the connection, and the <code class="expression">space.vars.automation</code> step fails immediately. <code class="expression">space.vars.Kizen\_company\_name</code> doesn't retry the request. Because the query never runs, a blocked Write Data step doesn't write any changes to the database.&#x20;

For more information, see [Troubleshoot MySQL](/docs/integrations-and-plugins/integrations/mysql/troubleshoot-mysql.md).

### Results Handling

Both the Read Data and Write Data steps include the Return Single Value input, which, when `true`, signifies that you expect to return exactly one row and one column from the database. The result comes back as a string. When `false`, the full result set comes back as a single string in JSON format. To refer to the values of individual keys in later steps of the <code class="expression">space.vars.automation</code>, parse the JSON string in a Code step.

Please also note the following:

* Results sets larger than 5 MB might be truncated. Use `LIMIT` in the query to narrow the results.
* A result with multiple rows isn't auto-paginated. If you need pages, use `LIMIT` and `OFFSET` in the query.
* A query that returns no rows returns an empty string, not the null value.

### Failure Handling

If a connection or query fails, for example because of invalid credentials, an unreachable database, or invalid SQL, the step fails immediately and results in an error message. For more information, see [Troubleshoot MySQL](/docs/integrations-and-plugins/integrations/mysql/troubleshoot-mysql.md). <code class="expression">space.vars.Kizen\_company\_name</code> doesn't automatically retry a failed step, so after you correct the underlying issue, rerun the step manually.

### Data Safety

If your <code class="expression">space.vars.automation</code> writes data to your database, be sure to validate its behavior thoroughly on non-production data first. You can't roll back a Write Data operation after it executes, and the operation might partially apply if an error occurs during execution.

To maximize the safety of your data, grant the connected user account the appropriate level of access to MySQL data and operations. If you don't intend to write data, for example, a read-only user account with `SELECT` privileges on the specific tables to read is sufficient. Avoid MySQL superusers.

***

## Available MySQL Actions and Topics

For step-by-step instructions on using the MySQL integration, see the following topics:

* [Enable MySQL in Kizen](/docs/integrations-and-plugins/integrations/mysql/enable-mysql-in-kizen.md)
* [Add MySQL Data to an Agentic Workflow](/docs/integrations-and-plugins/integrations/mysql/add-mysql-data-to-an-agentic-workflow.md)
* [Troubleshoot MySQL](/docs/integrations-and-plugins/integrations/mysql/troubleshoot-mysql.md)

***

## What's Next

Continue to [Enable MySQL in Kizen](/docs/integrations-and-plugins/integrations/mysql/enable-mysql-in-kizen.md) to configure your MySQL network, turn on the MySQL integration, and enter your connection credentials as an integration secret.

<details>

<summary><strong>Related Topics</strong></summary>

* [Enable MySQL in Kizen](/docs/integrations-and-plugins/integrations/mysql/enable-mysql-in-kizen.md)
* [Add MySQL Data to an Agentic Workflow](/docs/integrations-and-plugins/integrations/mysql/add-mysql-data-to-an-agentic-workflow.md)
* [Troubleshoot MySQL](/docs/integrations-and-plugins/integrations/mysql/troubleshoot-mysql.md)

</details>

***

*Oracle, Java, MySQL, and NetSuite are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.kizen.com/docs/integrations-and-plugins/integrations/mysql.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
