# フォームスタジオ（入力規則） 詳細マニュアル | 設定リファレンス・トラブルシューティング - KINTAUROS

> kintoneプラグイン「フォームスタジオ（入力規則）」の詳細マニュアル。全設定項目のリファレンス(意味・制約値)、動作条件・制限事項、エラーコード別のトラブルシューティングを掲載。対象バージョン: v1.5.0。

元ページ: https://kintauros.com/plugins/field-validation/manual/

フォームスタジオ（入力規則）は、レコードを保存するときに入力内容を検査し、条件に当てはまったらエラー(保存できない)または警告(確認して保存できる)を表示するプラグインです。「必須」「メールアドレスの形式」「終了日は開始日以降」のようなよくあるルールは対象フィールドを選ぶだけでおすすめが出て、細かい条件はフォームパーツで、複雑なものは数式(関数と演算子)で書けます。保存前の整形(全角・半角の統一、電話番号・郵便番号の書式)、郵便番号からの住所自動入力、一覧画面での「入力規則をチェック」(REST・CSVで入ったデータの点検)にも対応します。Web公開ライセンス(KINTAUROS Publish)と組み合わせると、kintoneのフォーム設定とこの入力規則をそのままWebフォームとして公開し、送信内容をkintoneへ登録できます。このマニュアルでは、設定項目のリファレンスと、動作仕様・制限事項・トラブルシューティングを説明します。

機能紹介・画面イメージ・導入手順は[プラグイン紹介ページ](https://kintauros.com/plugins/field-validation/)を、ダウンロードは[ダウンロードページ](https://kintauros.com/download/)をご覧ください。このマニュアルは[Markdown版](index.md)でも提供しており、全プラグインのメタ情報と設定スキーマは機械可読な[catalog.json](https://kintauros.com/catalog.json)から取得できます。

## 基本情報

- **プラグインID**: field-validation

- **対象バージョン**: v1.5.0(配布中の最新版)

- **カテゴリ**: 入力効率化

- **説明**: 条件や数式による入力チェック・警告・整形をレコード保存時に適用します。Web公開ライセンスで Web フォームとしても公開できます。

## 動作条件

- **対応環境**: kintone スタンダードコース。デスクトップ版UIとモバイル版UI(ブラウザ)の両方で動作します。最新版の Chrome / Edge / Safari / Firefox に対応。

- **動作画面**: レコードの追加・編集画面、一覧画面のインライン編集、モバイル画面、プロセス管理のアクション(設定したルールのみ)。一覧画面には「入力規則をチェック」ボタンが表示されます。

- **必要な権限**: プラグインの設定にはアプリ管理権限。利用者側は通常のレコード追加・編集権限だけで動作します。

- **設定**: 入力ルールを1つ以上設定してください(整形・テーブル設定・住所セットだけでも動作します)。

## 設定項目リファレンス

プラグイン設定の全項目です。「項目」は設定データ(エクスポートファイルの config)のキーを表し、[] は配列の要素を意味します。設定画面での入力項目と1対1に対応します。この構造の正式な定義はJSON Schema([catalog.json](https://kintauros.com/catalog.json) の configSchema)として公開しています。

- **項目**: 型 / 必須 / 説明・制約

- **rules**: 配列 / 任意 / 入力ルール(上から順に評価)

- **rules[].id**: 文字列 / 任意 / ルールID(省略時は保存時に採番)

- **rules[].name**: 文字列 / 必須 / ルール名 / 1文字以上 / 100文字以内

- **rules[].field**: 文字列 / 必須 / 対象フィールド(エラーを表示するフィールド。1 つ) / scope.table を指定したときは、そのテーブルの列のフィールドコード。省略時は条件が参照する先頭のフィールドに表示 / 1文字以上

- **rules[].description**: 文字列 / 任意 / 説明(管理者向けメモ)

- **rules[].enabled**: 真偽値 / 任意 / 有効(省略時 true)

- **rules[].when**: オブジェクト / 必須 / エラー条件(TRUE になったら action を適用)

- **rules[].when.mode**: 文字列 / 必須 / 値: builder | formula

- **rules[].when.formula**: 文字列 / 任意 / 数式(mode=formula) / 例: AND(NOT(ISNEW()), ISCHANGED(金額), ISPICKVAL(PRIORVALUE(ステータス), "確定")) / 4000文字以内

- **rules[].when.builder**: オブジェクト / 任意 / 条件ビルダー(mode=builder)

- **rules[].when.builder.logic**: 文字列 / 任意 / conditions と groups の結合(省略時 and) / 値: and | or

- **rules[].when.builder.conditions**: 配列 / 任意 / -

- **rules[].when.builder.groups**: 配列 / 任意 / 条件グループ(1 段のネスト)

- **rules[].when.builder.groups[].logic**: 文字列 / 任意 / 値: and | or

- **rules[].when.builder.groups[].conditions**: 配列 / 任意 / -

- **rules[].action**: 文字列 / 必須 / 結果 / BLOCK = エラー(保存できない) / WARN = 警告(確認して保存できる) / 値: BLOCK | WARN

- **rules[].message**: 文字列 | オブジェクト / 任意 / メッセージ(文字列または言語別 {ja,en,zh,zh-TW}) / {フィールドコード} で値、{フィールドコード:label} でフィールド名、{$rule} でルール名を埋め込める

- **rules[].screens**: 配列(文字列) / 任意 / 適用する画面(省略時 create/edit/index/mobile/webform) / create=追加 / edit=編集 / index=一覧のインライン編集 / mobile=モバイル / webform=Web フォーム(KINTAUROS Publish) / process=プロセス管理のアクション。process だけは既定に含まれない / 重複不可 / 値: create | edit | index | mobile | process | webform

- **rules[].applyTo**: 文字列 / 任意 / 適用する操作(省略時 both) / 値: both | new | edit

- **rules[].trigger**: オブジェクト / 任意 / 評価のタイミング(省略時 保存時のみ)

- **rules[].trigger.onSubmit**: 真偽値 / 任意 / 保存時

- **rules[].trigger.onChange**: 真偽値 / 任意 / 入力中(条件が参照するフィールドが変わったとき)

- **rules[].process**: オブジェクト / 任意 / プロセス管理(screens に process を含むとき)

- **rules[].process.nextStatus**: 配列(文字列) / 任意 / このステータスへ進めるときだけ評価(省略時は全アクション)

- **rules[].scope**: オブジェクト / 任意 / テーブルの各行で評価する

- **rules[].scope.table**: 文字列 / 必須 / テーブルのフィールドコード / 数式・条件では行の列をそのフィールドコードで参照できる(ROWINDEX() で行番号) / 1文字以上

- **rules[].users**: オブジェクト / 任意 / 適用するユーザー

- **rules[].users.include**: 配列 / 任意 / この人・グループ・組織にだけ適用

- **rules[].users.exclude**: 配列 / 任意 / この人・グループ・組織には適用しない

- **rules[].source**: オブジェクト / 任意 / 自動生成の出所(住所セットから生成されたルール。設定画面では編集不可で、セットの変更で作り直される)

- **rules[].source.type**: 文字列 / 必須 / 値: address

- **rules[].source.setId**: 文字列 / 任意 / -

- **rules[].source.kind**: 文字列 / 任意 / 値: zipFormat | required | mismatch | banchi

- **formatters**: 配列 / 任意 / 整形(保存前の自動変換。検証の前に適用)

- **formatters[].fieldCode**: 文字列 / 必須 / 対象フィールド(テーブルの列は テーブル.列) / 1文字以上

- **formatters[].ops**: 配列(文字列) / 必須 / 変換(順に適用) / 1件以上 / 値: trim | removeSpaces | collapseSpaces | toHalfWidth | toHalfAlnum | toFullWidth | toFullKana | toKatakana | toHiragana | upper | lower | unifyHyphen | phoneJp | zipJp | digitsOnly | normalize

- **table**: 配列 / 任意 / テーブルの行数・重複禁止列

- **table[].tableCode**: 文字列 / 必須 / 1文字以上

- **table[].minRows**: 整数 / 任意 / 0以上

- **table[].maxRows**: 整数 / 任意 / 0以上

- **table[].uniqueColumns**: 配列(文字列) / 任意 / テーブル内で重複を禁止する列 / 1文字以上

- **table[].message**: 文字列 | オブジェクト / 任意 / -

- **table[].uniqueMessage**: 文字列 | オブジェクト / 任意 / -

- **options**: オブジェクト / 任意 / 全体設定

- **options.showSummaryOnTop**: 真偽値 / 任意 / エラー時に画面上部へまとめて表示(省略時 true)

- **options.warnTitle**: 文字列 / 任意 / 警告の確認ダイアログの見出し

- **options.postalConsent**: オブジェクト / 任意 / 住所入力補助の外部送信への同意(管理者。無い/false の設定では実行画面は通信しない) / 送信先 api.kintauros.site、送信内容は郵便番号の先頭 3 桁のみ(下 4 桁・他の項目・kintone のドメイン名・利用者情報・Cookie は送らない)、当社は保存・集計しない。SERVICE-POLICY §4-5 住所入力補助の例外

- **options.postalConsent.agreed**: 真偽値 / 必須 / -

- **options.postalConsent.at**: 文字列 / 任意 / 同意日時(ISO 8601)

- **options.postalConsent.by**: 文字列 / 任意 / 同意した管理者のログイン名

- **addressSets**: 配列 / 任意 / 住所セット(郵便番号から住所を自動入力) / 1 セット = 1 つの住所(所在地・請求先など。複数あるときは「住所1」「住所2」と呼ぶ)。郵便番号フィールドが 7 桁になったとき、都道府県・市区町村・住所1(町域)を自動入力し、保存時に郵便番号の整形と結合住所(建物名を含む)の生成を行う。検証(書式・条件付き必須・郵便番号と住所の不一致・番地未入力)は rules[] に自動生成される。

- **addressSets[].id**: 文字列 / 必須 / セットID(ルールの id に使う。変更しない) / 1文字以上

- **addressSets[].label**: 文字列 / 任意 / 表示名(設定画面が自動で付ける。複数セットのとき「住所1」「住所2」。ルール名・メッセージの接頭辞) / 50文字以内

- **addressSets[].fields**: オブジェクト / 必須 / フィールドの割り当て(フィールドコード)

- **addressSets[].fields.zip**: 文字列 / 必須 / 郵便番号(文字列 1 行) / 1文字以上

- **addressSets[].fields.pref**: 文字列 / 任意 / 都道府県(ドロップダウン〔47 都道府県の選択肢〕または文字列 1 行)

- **addressSets[].fields.city**: 文字列 / 任意 / 市区町村(文字列 1 行)

- **addressSets[].fields.addr1**: 文字列 / 任意 / 住所1(町域・番地。文字列 1 行。町域を自動入力し番地を追記する)

- **addressSets[].fields.addr2**: 文字列 / 任意 / 住所2(建物名・部屋番号。文字列 1 行。任意)

- **addressSets[].fields.full**: 文字列 / 任意 / 住所(結合。文字列 1 行。任意。保存時に「都道府県+市区町村+住所1+半角スペース+住所2」を生成。ジオスタジオの住所フィールドに使える)

- **addressSets[].zipFormat**: 文字列 / 任意 / 郵便番号の保存形式(省略時 hyphen = 123-4567 / plain = 1234567) / 値: hyphen | plain

- **addressSets[].required**: 文字列 / 任意 / 必須の範囲(省略時 ifZip = 郵便番号があれば都道府県・市区町村・住所1 も必須 / all = 全て必須 / none = 必須にしない) / 値: ifZip | all | none

- **addressSets[].mismatch**: 文字列 / 任意 / 郵便番号と都道府県・市区町村の不一致(省略時 WARN = 警告 / BLOCK = エラー / off = 確認しない) / 値: WARN | BLOCK | off

- **addressSets[].banchiWarn**: 真偽値 / 任意 / 住所1 が町域名のまま(番地未入力)なら警告(省略時 true)

- **publish**: オブジェクト / 任意 / Web公開(KINTAUROS Publish)の「Webフォーム公開」の設定。共通ランタイム(KINTAUROS.publish)が読み書きする。kintone のフォーム設定(フィールド・レイアウト)とこの入力規則をそのまま Web フォームとして公開し、送信内容を追加専用 API トークンで kintone に登録する(トークン・復号鍵はこの設定には保存されない)。tenantId / slug は公開サイト側の識別子で、別アプリへインポートしたときは引き継がれない

- **publish.enabled**: 真偽値 / 任意 / Web公開を有効にするか

- **publish.tenantId**: 文字列 / 任意 / 公開サイトのテナントID(「公開を開始」で発行)

- **publish.slug**: 文字列 / 任意 / 公開サイトのサブドメイン({slug}.kintauros.site)

- **publish.whitelist**: 配列(文字列) / 任意 / Web フォームが受け付けるフィールドのコード(各フォームの項目の和集合。共通ランタイムが自動で入れる)

- **publish.attachments**: 配列(文字列) / 任意 / (Webフォーム公開では未使用。添付ファイルフィールドは forms[].fields に含めるだけで Web フォームに出る〔画像のみ・1 ファイル 10MB・5 ファイルまで・お試し中は表示されない〕。テーブルも forms[].fields に含めると Web フォームに出る〔columns で列を絞れる・添付ファイルの列も可・行の追加・削除可。行スコープの入力規則とテーブル設定〔行数・一意〕も適用〕)

- **publish.condition**: オブジェクト / 任意 / (Webフォーム公開では未使用)

- **publish.condition.operator**: 文字列 / 必須 / 値: always | in | not_empty

- **publish.condition.field**: 文字列 / 任意 / -

- **publish.condition.values**: 配列(文字列) / 任意 / -

- **publish.site**: オブジェクト / 任意 / -

- **publish.site.name**: 文字列 / 任意 / サイト名(公開ページのヘッダーに表示) / 100文字以内

- **publish.site.themeColor**: 文字列 / 任意 / 形式: ^#[0-9a-fA-F]{6}$

- **publish.site.noindex**: 真偽値 / 任意 / 検索エンジンに登録しない

- **publish.syncUsers**: 配列 / 任意 / 一覧・詳細画面に公開ボタンを表示するユーザー(空なら全員)

- **publish.syncUsers[].type**: 文字列 / 必須 / 値: user | group

- **publish.syncUsers[].code**: 文字列 / 必須 / -

- **publish.customDomain**: 文字列 / 任意 / 独自ドメイン(例: help.example.com)。設定画面の「このドメインを登録」で登録し、DNS の CNAME が有効になってから公開できる(無料お試し中も利用可)。空なら既定の {slug}.kintauros.site

- **publish.forms**: 配列 / 任意 / 公開するフォーム(1 アプリに 5 つまで。URL は https://{slug}.kintauros.site/{フォームID}) / 5件以内

- **publish.forms[].slug**: 文字列 / 必須 / フォームID(URL の末尾) / 形式: ^[a-z0-9][a-z0-9-]{0,38}[a-z0-9]$|^[a-z0-9]$

- **publish.forms[].name**: 文字列 / 任意 / フォーム名(見出し) / 100文字以内

- **publish.forms[].description**: 文字列 / 任意 / 説明(冒頭に表示) / 4000文字以内

- **publish.forms[].fields**: 配列 / 必須 / 項目(kintone のレイアウト順に表示。含めたフィールドだけを受け付ける)

- **publish.forms[].fields[].code**: 文字列 / 必須 / フィールドコード(文字列1行/複数行・数値・日付・時刻・日時・ドロップダウン・ラジオ・チェックボックス・複数選択・リンク・添付ファイル・テーブル)

- **publish.forms[].fields[].columns**: 配列(文字列) / 任意 / テーブルのとき: Web フォームに出す列のフィールドコード(省略 = 全列。kintone の必須列は外せない。添付ファイルの列も指定できる)

- **publish.forms[].fields[].visible**: 真偽値 / 任意 / 表示する(省略時 true。false でも初期値・URL パラメータの値は送信される)

- **publish.forms[].fields[].readonly**: 真偽値 / 任意 / 編集不可(値を見せるが編集できない)

- **publish.forms[].fields[].default**: 文字列 / 任意 / 初期値(固定値 / {{param:名前}} / {{today}} / {{now}} / {{referrer}} / {{lang}}。複数選択はカンマ区切り)

- **publish.forms[].fields[].param**: 文字列 / 任意 / URL パラメータ名の別名(省略時はフィールドコード。?名前=値 で初期値を渡せる)

- **publish.forms[].fields[].label**: 文字列 / 任意 / ラベルの上書き(省略時は kintone のフィールド名) / 200文字以内

- **publish.forms[].fields[].help**: 文字列 / 任意 / 入力の説明 / 2000文字以内

- **publish.forms[].fields[].placeholder**: 文字列 / 任意 / 200文字以内

- **publish.forms[].submitLabel**: 文字列 / 任意 / 送信ボタンの文言 / 40文字以内

- **publish.forms[].doneTitle**: 文字列 / 任意 / 完了の見出し / 100文字以内

- **publish.forms[].doneMessage**: 文字列 / 任意 / 完了メッセージ({{receipt}} = 受付番号、{{recordId}} = 登録されたレコード番号〔即時登録できたときだけ〕) / 4000文字以内

- **publish.forms[].redirectUrl**: 文字列 / 任意 / 完了後の転送先(https のみ。指定すると完了ページの代わりに転送)

- **publish.forms[].allowRepeat**: 真偽値 / 任意 / 廃止(2026-09-09)。値に関わらず「もう一度送信する」は表示しない

- **publish.forms[].turnstile**: 真偽値 / 任意 / ボット対策(Cloudflare Turnstile)。常に有効(値に関わらず true 扱い。埋め込み・独自ドメインでも有効〔独自ドメインでは KINTAUROS のサブドメインの確認枠を表示〕)

- **publish.forms[].closed**: 真偽値 / 任意 / 受付を停止する(設定画面のトグル「公開中 / 停止中」。true = 停止中)

- **publish.forms[].closeAt**: 文字列 / 任意 / この日時を過ぎたら受付終了(ISO 8601)

- **publish.forms[].maxCount**: 整数 / 任意 / この件数に達したら受付終了 / 1以上

- **publish.forms[].privacyUrl**: 文字列 / 任意 / プライバシーポリシーの URL(フォーム下部の送信者向け説明に表示。https のみ)

- **publish.forms[].lang**: 文字列 / 任意 / フォームの UI 言語(省略時 ja) / 値: ja | en | zh | zh-TW

- **publish.forms[].autoReply**: オブジェクト / 任意 / 送信者への自動返信メール(受付番号と控え。お試し中は送信されない。差出人は KINTAUROS Publish の送信ドメイン、表示名はサイト名)

- **publish.forms[].autoReply.enabled**: 真偽値 / 任意 / 自動返信を送る

- **publish.forms[].autoReply.emailField**: 文字列 / 任意 / 宛先にするフィールドのコード(フォームに含めたリンク〔メールアドレス〕または文字列(1行)フィールド)

- **publish.forms[].autoReply.subject**: 文字列 / 任意 / 件名({{receipt}} {{siteName}} {{formName}} を埋め込める。省略時は既定の文言) / 200文字以内

- **publish.forms[].autoReply.body**: 文字列 / 任意 / 本文(同上。末尾に自動送信である旨の固定文が付く) / 4000文字以内

- **publish.forms[].autoReply.includeCopy**: 真偽値 / 任意 / 送信内容の控え(表示した項目の値)を本文に含める(省略時 true)

- **publish.forms[].autoReply.replyTo**: 文字列 / 任意 / 返信先(Reply-To)のメールアドレス(任意。契約者の問い合わせ窓口)

- **publish.forms[].notify**: オブジェクト / 任意 / 新しい送信の通知メール(フォームを設置した側へ。お試し中は送信されない)

- **publish.forms[].notify.enabled**: 真偽値 / 任意 / 通知を送る

- **publish.forms[].notify.to**: 配列(文字列) / 任意 / 通知先のメールアドレス(5 件まで。空なら公開を開始した管理者のメール) / 5件以内

- **publish.forms[].notify.subject**: 文字列 / 任意 / 件名({{receipt}} {{siteName}} {{formName}} を埋め込める。省略時は既定の文言) / 200文字以内

- **publish.forms[].notify.includeCopy**: 真偽値 / 任意 / 送信内容(表示した項目の値)を本文に含める(省略時 false。既定は受付番号とレコードへのリンクだけ)

## 設定のポイント

- rules(入力ルール)は上から順に評価されます。各ルールは 対象フィールド(field: エラーを表示するフィールド1つ)・条件(when)・結果(action: BLOCK=エラー / WARN=警告)・メッセージ(message)で構成します。設定画面の「ルールを追加」で対象フィールドを選ぶと、その型に合う「よくあるルール」(必須・書式・範囲・日付の前後関係など)がおすすめされ、選ぶだけで条件とメッセージが埋まります。

- 条件は「選択式」(when.builder: フィールド・演算子・値のフォームパーツ)と「数式」(when.formula)を1つのルールに両方持て、when.mode でどちらを採用するかを選びます。数式はフィールドコードで値を参照し、AND / OR / NOT / ISBLANK / ISPICKVAL / REGEX / LEN / TODAY / DATEDIFF / ISNEW / ISCHANGED / PRIORVALUE などの関数が使えます(関数一覧は設定画面の「関数」ボタンで確認できます)。

- message には {フィールドコード} で値、{フィールドコード:label} でフィールド名、{$rule} でルール名を埋め込めます。言語別({ja, en, zh, zh-TW})に書くと、利用者の表示言語に合わせて切り替わります。「自動生成」ボタンで条件から文面を作れます。

- screens(適用する画面)は既定で 追加・編集・一覧のインライン編集・モバイル・Webフォーム に適用されます。プロセス管理のアクション(process)だけは明示的に選び、必要なら process.nextStatus で「このステータスへ進めるときだけ」に絞れます。applyTo で新規のみ・編集のみに限定できます。

- trigger.onChange を有効にすると、条件が参照するフィールドの値が変わったその場でも評価し、フィールドの脇に結果を表示します(保存時の評価も行われます)。

- scope.table を指定すると、テーブルの各行でルールを評価します(対象フィールドはその列)。数式では行の列をフィールドコードで参照でき、ROWINDEX() で行番号を取れます。テーブル全体の行数の下限・上限や重複禁止列は table(テーブル設定)で指定します。

- users(適用するユーザー)で、特定のユーザー・グループ・組織にだけ適用する/適用しないを指定できます。

- formatters(整形)は保存時、入力ルールの評価より前に適用されます。前後の空白除去、全角・半角の統一、カタカナ/ひらがな変換、大文字・小文字、ハイフンの統一、電話番号・郵便番号の書式、数字だけ残す、Unicode正規化(NFKC)を順に組み合わせられます。

- addressSets(住所セット)は、郵便番号・都道府県・市区町村・住所1(町域・番地)・住所2(建物名)・住所(結合)のフィールドを割り当てる設定です。郵便番号が7桁になったときに都道府県・市区町村・町域を自動入力し、保存時に郵便番号の整形と結合住所の生成を行います。検証ルール(書式・条件付き必須・郵便番号と住所の不一致・番地未入力の警告)は rules に source:{type:"address"} 付きで自動生成されるので、手で編集せず住所セット側を変更してください。自動入力には郵便番号の先頭3桁を当社サーバー(api.kintauros.site)へ送るため、初回設定時に管理者の同意(options.postalConsent)が必要です。

- options.showSummaryOnTop(既定 true)で、エラー時に画面上部へメッセージをまとめて表示するかを切り替えられます。options.warnTitle で警告の確認ダイアログの見出しを変えられます。

- publish(Web公開)は、Web公開ライセンス(KINTAUROS Publish)を利用する場合の設定で、設定画面の「Web公開機能を利用する」から共通ランタイムが管理します。公開するフォーム(publish.forms: 1アプリに5つまで)ごとに、含めるフィールド・表示/読み取り専用/非表示・初期値・URLパラメータ名・ラベルの上書き・完了メッセージ・転送先・ボット対策・受付停止を設定できます。追加専用APIトークンと復号鍵はこの設定には保存されません。

## 動作仕様

- 保存時の流れ: 整形(formatters)→ 郵便番号の整形・結合住所の生成(addressSets)→ 入力ルールの評価(rules)→ テーブル設定(table)。エラー(BLOCK)が1つでも当てはまると保存は中止され、対象フィールドの脇と画面上部にメッセージを表示します。エラーが無く警告(WARN)だけのときは確認ダイアログを出し、「このまま保存」で保存できます。

- 入力中の評価(trigger.onChange): 条件が参照するフィールドの change イベントで評価し、対象フィールドの脇にエラー/警告を表示します。保存は止めません(保存時に改めて評価します)。

- ISNEW / ISCHANGED / PRIORVALUE などレコードの変更前の値を使う関数は、画面を開いたときのレコードのスナップショットと比較します。一覧のインライン編集・モバイルでも同じです。Webフォームでは変更前の値が無いため、PRIORVALUE は空、ISCHANGED は FALSE、$User は空になります(数式の $Screen で画面を判別できます)。

- プロセス管理のアクション(screens に process を含むルール)は、アクション実行時にレコードの値で評価し、エラーならアクションを中止します。

- 一覧画面の「入力規則をチェック」: 表示中の一覧(絞り込み条件を含む)の全レコードを、保存時と同じルールで評価し、違反のあるレコードとメッセージを一覧表示します(書き込みは行いません)。REST API や CSV 読み込みで登録・更新されたレコードは保存時のチェックを通らないため、その点検に使います。走査は先頭1万件までです。

- 住所の自動入力: 郵便番号フィールドが7桁になると、都道府県・市区町村・住所1(町域)に値を入れます。同じ郵便番号に複数の住所がある場合は選択ダイアログを表示します。都道府県フィールドがドロップダウンの場合は選択肢のラベル(「東京都」など)に合わせます。取得した郵便番号データはブラウザ内(localStorage)に7日間保持し、同じ先頭3桁は再取得しません。

- ルールの評価中に例外(構文エラーなど)が起きたときは、そのルールだけを「判定不能」として扱い、保存は止めません(フェイルオープン)。ブラウザのコンソールにエラーコード E202 で記録されます。

- 外部通信: 判定はすべてブラウザ内で行われ、レコードの内容が当社(KINTAUROS)のサーバーに送信されることはありません。例外は住所セットの自動入力で、管理者が設定画面で同意したときだけ、郵便番号の先頭3桁のみを当社サーバー(api.kintauros.site)へ送って日本郵便の郵便番号データの該当部分を受け取ります(下4桁・他のフィールド・kintoneのドメイン名・利用者情報は送らず、当社はリクエストを保存・集計しません。到達できないときは自動入力を止めるだけで保存は妨げません)。このほかの通信はライセンス確認(kintoneドメイン名・プラグインID・バージョンのみ)です。Web公開ライセンスでWebフォームを公開した場合は、フォームの定義と送信者の入力内容が当社の運用するCloudflareに届き、kintoneへの登録完了後に削除されます(登録に失敗した分だけ暗号化して最長30日保管し、自動再試行の後はkintone管理者だけが復号できる鍵で保管します)。

## 制限事項・既知の仕様

- REST API・CSV読み込み・他プラグインによる登録・更新には入力ルールが適用されません(一覧の「入力規則をチェック」で事後に点検できます)。

- 条件・数式で参照できるフィールドは 文字列(1行/複数行)・リッチエディター・数値・計算・日付・時刻・日時・ドロップダウン・ラジオボタン・チェックボックス・複数選択・ユーザー/組織/グループ選択・リンク・レコード番号・作成者/更新者・作成日時/更新日時・ステータス・テーブルの列 です。添付ファイル・関連レコード一覧は参照できません。

- 数式は4,000文字・ネスト32段まで。REGEX のパターンは500文字までで、入れ子の量指定子など処理が重くなるパターンは警告されます。

- 「入力規則をチェック」の走査は表示中の一覧の先頭1万件までです。

- 住所の自動入力は日本国内の郵便番号(日本郵便の郵便番号データ)のみです。事業所の個別郵便番号にも対応しますが、番地・建物名は自動入力されません(町域までを入れ、番地は利用者が追記します)。データは月次で更新されます。

- Webフォームに出せるフィールドは 文字列(1行/複数行)・数値・日付・時刻・日時・ドロップダウン・ラジオボタン・チェックボックス・複数選択・リンク です。添付ファイル・テーブルは今後の対応予定です。Webフォームでは、フォームに含めたフィールドだけで判定できるルールが適用されます。

## 設定のインポート / エクスポート

プラグイン設定画面の上部にある「設定のインポート / エクスポート」から、現在の設定をJSONファイルとして書き出し(エクスポート)、別のアプリで読み込み(インポート)できます。検証用アプリから本番アプリへの設定コピーや、バックアップ・復元にご利用ください。

- インポートは取り込む内容の差分を確認してから「設定画面に反映」し、最後に「保存」を押して確定します(反映しただけでは保存されません)。

- 読み込んだファイルはブラウザ内で処理され、KINTAUROSのサーバーには送信されません。

- 別のアプリの設定を取り込んだ場合、このアプリに存在しないフィールドは警告として一覧表示されるので、反映後に該当箇所を選び直してください。

エクスポートファイルは次の形式(封筒形式)です。config の中身が設定本体で、その構造は上の設定項目リファレンスのとおりです。

```
{
  "kintauros": "config/v1",
  "plugin": "<プラグインID>",
  "pluginName": "<プラグイン名>",
  "pluginVersion": "<バージョン>",
  "exportedAt": "<書き出し日時(ISO 8601)>",
  "sourceApp": "<書き出し元アプリID>",
  "config": { ... 設定本体 ... }
}
```

### AIエージェント向け: ブラウザコンソールAPI

各プラグインは共通ランタイム window.KINTAUROS を搭載しており、ブラウザの開発者コンソールから設定の読み取り・検証・保存ができます。設定の保存(save: true)はkintoneの制約上、プラグイン設定画面でのみ成功します。

```
KINTAUROS.config.plugins()                   // このページのKINTAUROSプラグインID一覧
KINTAUROS.config.describeAll()               // 同居プラグインすべての設定サマリ
KINTAUROS.config.of('<プラグインID>').schema()    // 設定のJSON Schema
KINTAUROS.config.of('<プラグインID>').export()    // 現在の設定(封筒つき)
KINTAUROS.config.of('<プラグインID>').validate(x) // 保存せず検証
KINTAUROS.config.of('<プラグインID>').diff(x)     // 現在の設定との差分
await KINTAUROS.config.of('<プラグインID>').import(x, { save: true }) // 検証して保存(設定画面のみ)
```

登録が1件だけのページでは of(...) を省略できます(例: KINTAUROS.config.export())。

## トラブルシューティング

**ルールを設定したのにエラーが出ない**

アプリにプラグインが追加され「アプリを更新」済みかを確認してください。ルールの「適用する画面」に該当する画面が含まれているか、「適用する操作」が新規のみ/編集のみになっていないか、「適用するユーザー」で除外されていないかも確認してください。数式に構文エラーがあると、そのルールは判定不能として無視されます(設定画面の構文チェックで確認できます)。

**条件に当てはまらないはずなのにエラーになる**

条件は「TRUE になったらエラー」です。「必須にしたい」場合は ISBLANK(フィールド) のように「空ならエラー」の形で書きます。選択式と数式の両方を持つルールは、「採用する条件」で選んだ方だけが評価されます。整形(formatters)は評価の前に適用されるため、整形後の値で判定される点にもご注意ください。

**住所が自動入力されない**

設定画面の「4. 住所」で住所データの取得への同意にチェックが入っているか、郵便番号フィールドの割り当てが正しいかを確認してください。郵便番号は7桁(ハイフンや全角でも可)になった時点で取得します。ブラウザから api.kintauros.site への通信がネットワーク機器などで遮断されている場合も自動入力は動きません(この場合も保存はできます)。

**警告の確認ダイアログを出さずに保存させたい**

そのルールの結果を「警告」ではなく「エラー」にするか、ルールを無効にしてください。警告は必ず確認ダイアログを伴います。

**E001: 設定されたフィールドが見つかりません**

設定後にルール・整形・住所セットが参照するフィールドが削除・変更された状態です。プラグイン設定画面を開き、現在のフォームに合わせて対象フィールドを選び直して保存してください。

**E202: ルールを評価できませんでした**

数式の構文エラーや、フィールドの型に合わない関数の使い方が原因です。設定画面でそのルールを開き、「構文チェック」の結果に従って修正してください。この状態でも保存は止まりません(そのルールだけが無視されます)。

## エラーコードと診断情報

フォームスタジオ（入力規則）を含むKINTAUROSプラグインは、エラー発生時にブラウザのコンソールへ統一形式のログを出力します。人間向けの1行に続けて、機械可読なJSON(code / plugin / version / appId / message / doc)を出力し、doc には該当エラーの解説ページのURLが入ります。

```
[KINTAUROS <プラグインID>@<バージョン>] E001: 設定されたフィールドが見つかりません: ...
{"kintauros":{"code":"E001","plugin":"...","version":"...","appId":"...","message":"...","doc":"https://kintauros.com/docs/errors/E001"}}
```

各エラーコードの意味と対処は[エラーコード一覧](https://kintauros.com/docs/errors/)を参照してください。また、プラグイン設定画面の「サポート用情報をコピー」から、環境・バージョン・ライセンス状態・直近のエラーを含む診断情報をコピーできます(レコードの内容や個人情報は含まれません)。お問い合わせの際はこの情報を添えてください。

## ライセンスについて

- 初回利用時は、プラグイン設定画面の「利用開始」ボタンから60日間の無料トライアルを開始できます(カード登録不要)。

- トライアル・契約の期限が切れるとプラグインの動作は停止し、画面に案内が表示されます。[料金プラン](https://kintauros.com/#pricing)から契約すると同じ設定のまま再開できます。

- ライセンス確認のための外部通信で送信されるのは、kintoneドメイン名・プラグインID・バージョンのみです。レコードの内容や個人情報が外部に送信されることはありません。

- ライセンスサーバーに一時的に接続できない場合も、プラグインは一定期間動作を継続する設計です。

## サポート

解決しない場合は[お問い合わせ](https://kintauros.com/contact/)からご連絡ください。その際、プラグイン設定画面の「サポート用情報をコピー」でコピーした診断情報を添えていただくと、調査がスムーズです。

最終更新: 2026-09-12 / 対象バージョン: v1.5.0
