> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kintone

export const CommonDatasourceMoreInformation = ({datasource = "the data source", advancedurl = "", siteName = "CData Sync", driverVersion = ""}) => {
  return <>
      <p>
        For more information about interactions between {siteName} and {datasource}, see{' '}
        <a href={`https://cdn.cdata.com/help/${advancedurl}${driverVersion}/synch/default.htm`}>
          {datasource} Connector for {siteName}
        </a>.
      </p>
    </>;
};

export const CommonAuthSchemeOauthCustom = ({siteName = "CData Sync", siteNameShort = "Sync", datasource = "the data source"}) => {
  return <>
      <p>To connect with OAuth custom credentials, specify the following properties:</p>
      <ul>
        <li><strong>Auth Scheme:</strong> Select <strong>OAuth</strong>.</li>
        <li><strong>OAuth Client Id:</strong> Enter the client Id that you were assigned when you registered your application with an OAuth authorization server.</li>
        <li><strong>OAuth Client Secret:</strong> Enter the client secret that you were assigned when you registered your application with an OAuth authorization server.</li>
      </ul>
    </>;
};

export const CommonAuthSchemePassword = ({siteName = "CData Sync", siteNameShort = "Sync", datasource = "the data source"}) => {
  return <>
      <p>To connect with your user credentials, set the following properties:</p>
      <ul>
        <li><strong>Auth Scheme:</strong> Select <strong>Password</strong>.</li>
        <li><strong>User:</strong> Enter the username that you use to authenticate to your {datasource} account.</li>
        <li><strong>Password:</strong> Enter the password that you use to authenticate to your {datasource} account.</li>
      </ul>
    </>;
};

export const CommonDatasourceAddConnector = ({datasource = "the data source", title = "the connector", destination = false, siteNameShort = "Sync"}) => {
  return <>
      <p>
        To enable {siteNameShort} to use data from {datasource}, you first must add the
        connector, as follows:
      </p>
      <ol>
        <li>Open the <strong>Connections</strong> page of the {siteNameShort} dashboard.</li>
        <li>Click <strong>Add Connection</strong> to open the <strong>Select Connectors</strong> page.</li>
        <li>
          Click the <strong>{destination ? "Destinations" : "Sources"}</strong> tab and locate
          the <strong>{title}</strong> row.
        </li>
        <li>
          Click the <strong>Configure Connection</strong> icon at the end of that row to open
          the <strong>New Connection</strong> page. This action opens the{' '}
          <strong>Add Connection</strong> dialog box.
          <br />
          <strong>Note:</strong> If the <strong>Configure Connection</strong> icon is not
          available, click the <strong>Download Connector</strong> icon to install
          the {title} connector.
        </li>
        <li>Enter a name for your connection in the <strong>Add Connection</strong> dialog box.</li>
        <li>Click <strong>Add</strong> to open the <strong>Settings</strong> tab for your connector.</li>
      </ol>
      <p>
        For more information about installing new connectors, see{' '}
        <a href="../connections">Connections</a>.
      </p>
    </>;
};

export const CommonDatasourceIntroDestination = ({datasource = "the data source", siteName = "CData Sync"}) => {
  return <p>
      You can use the {datasource} connector from the {siteName} application to move data
      from any supported source to the {datasource} destination. To do so, you need to add
      the connector, authenticate to the connector, and complete your connection.
    </p>;
};

export const driverVersion = "M";

export const siteNameShort = "Sync";

export const siteName = "CData Sync";

<CommonDatasourceIntroDestination datasource="Kintone" siteName={siteName} />

## Add the Kintone Connector

<CommonDatasourceAddConnector datasource="Kintone" title="Kintone" destination={true} siteNameShort={siteNameShort} />

## Authenticate to Kintone

After you add the connector, you need to set the required properties.

**URL:** Enter the URL for your Kintone account.

{siteName} supports authenticating to Kintone in several ways. Select your authentication method below to proceed to the relevant section that contains the authentication details.

* [**Password**](#password) (default)
* [**API Token**](#api-token)
* [**OAuth**](#oauth)

### Password

<CommonAuthSchemePassword siteName={siteName} datasource="Kintone" />

### API Token

To connect with an API token, specify these settings:

* **Auth Scheme:** Select **APIToken**.
* **App Idz:** Enter your application Id, which is the number of that specific application in the sequence under **Apps** in Kintone UI dashboard.
* **API Token:** Enter your API token. To obtain the token:
  1. Access the specific application that you want and click the **Settings** icon.
  2. On the **App Settings** tab, click **API Token**.
  3. Click **Generate** to produce the API token.

### OAuth

<CommonAuthSchemeOauthCustom siteName={siteName} />

## Complete Your Connection

To complete your connection:

1. For **Schema**, select one of the following schema options:
   * (Default) **REST:** Select this option to connect to the Kintone REST API. The Kintone REST API supports all three authentication schemes ([Password](#password), [API Token](#api-token), and [OAuth](#oauth)).
   * **USER:** Select this option to connect to the Kintone USER API. The Kintone USER API supports only the [Password](#password) authentication scheme.
2. Define advanced connection settings on the **Advanced** tab. (In most cases, though, you should not need these settings.)
3. If you authenticate with OAuth, click **Connect to Kintone** to connect to your Kintone account.
4. Click **Create & Test** to create your connection.

## Transferring Data to the Kintone Destination

For reverse ETL, you can transfer data into Kintone using any of the following modes:

* **Insert:** This mode enables you to insert new records into the target table. The only prerequisite is that the source table must have a primary key (PK).

* **Update:** This mode updates the details of multiple records in a Kintone application. Records can be identified by using either their record identifier (Id) or unique keys (fields with the **Prohibit duplicate values** setting enabled).

  For instructions about enabling unique keys, see <a href="https://forum.kintone.dev/t/prevent-users-from-entering-duplicate-values-with-prohibit-duplicate-values-fields-settings/625" target="_blank" rel="noopener noreferrer">Prevent users from entering duplicate values with Prohibit Duplicate Values Fields' Settings</a>.

* **Upsert:** This mode updates existing records and inserts new records when they do not exist already. You should use unique keys to determine whether a record should be updated or inserted.

## Limitations for Using Kintone as a Reverse ETL Destination

Although the Kintone destination is supported for reverse ETL, certain limitations apply.

### Unsupported Tables

{siteNameShort} supports data transfer only for tables that store user-entered records. Tables that are related to application configurations, permissions, automation, and notifications are not supported.

The following tables are not supported:

* **Permissions tables:** FieldPermissionsEntities, RecordPermissionsEntities, ActionSettingsEntities
* **Automation tables:** ActionSettingsMappings, ProcessManagementActions, ReminderNotificationsTargets
* **Notifications tables:** PerRecordNotificationsTargets, ReminderNotificationsTargets

### Handling Table Data in Requests

If table data **is not included** in the request, the existing data within the table remains unchanged.

If table data **is included**:

* Any fields within the table that are not included in the request are deleted.
* To retain specific fields, ensure that their values are included explicitly in the request.

## More Information

<CommonDatasourceMoreInformation datasource="Kintone" advancedurl="EK" siteName={siteName} driverVersion={driverVersion} />
