フォームスタジオ(入力規則)は、レコードを保存するときに入力内容を検査し、条件に当てはまったらエラー(保存できない)または警告(確認して保存できる)を表示するプラグインです。「必須」「メールアドレスの形式」「終了日は開始日以降」のようなよくあるルールは対象フィールドを選ぶだけでおすすめが出て、細かい条件はフォームパーツで、複雑なものは数式(関数と演算子)で書けます。保存前の整形(全角・半角の統一、電話番号・郵便番号の書式)、郵便番号からの住所自動入力、一覧画面での「入力規則をチェック」(REST・CSVで入ったデータの点検)にも対応します。Web公開ライセンス(KINTAUROS Publish)と組み合わせると、kintoneのフォーム設定とこの入力規則をそのままWebフォームとして公開し、送信内容をkintoneへ登録できます。このマニュアルでは、設定項目のリファレンスと、動作仕様・制限事項・トラブルシューティングを説明します。
| プラグインID | field-validation |
|---|---|
| 対象バージョン | v1.5.0(配布中の最新版) |
| カテゴリ | 入力効率化 |
| 説明 | 条件や数式による入力チェック・警告・整形をレコード保存時に適用します。Web公開ライセンスで Web フォームとしても公開できます。 |
| 対応環境 | kintone スタンダードコース。デスクトップ版UIとモバイル版UI(ブラウザ)の両方で動作します。最新版の Chrome / Edge / Safari / Firefox に対応。 |
|---|---|
| 動作画面 | レコードの追加・編集画面、一覧画面のインライン編集、モバイル画面、プロセス管理のアクション(設定したルールのみ)。一覧画面には「入力規則をチェック」ボタンが表示されます。 |
| 必要な権限 | プラグインの設定にはアプリ管理権限。利用者側は通常のレコード追加・編集権限だけで動作します。 |
| 設定 | 入力ルールを1つ以上設定してください(整形・テーブル設定・住所セットだけでも動作します)。 |
プラグイン設定の全項目です。「項目」は設定データ(エクスポートファイルの config)のキーを表し、[] は配列の要素を意味します。設定画面での入力項目と1対1に対応します。この構造の正式な定義はJSON Schema(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。既定は受付番号とレコードへのリンクだけ) |
プラグイン設定画面の上部にある「設定のインポート / エクスポート」から、現在の設定をJSONファイルとして書き出し(エクスポート)、別のアプリで読み込み(インポート)できます。検証用アプリから本番アプリへの設定コピーや、バックアップ・復元にご利用ください。
エクスポートファイルは次の形式(封筒形式)です。config の中身が設定本体で、その構造は上の設定項目リファレンスのとおりです。
{
"kintauros": "config/v1",
"plugin": "<プラグインID>",
"pluginName": "<プラグイン名>",
"pluginVersion": "<バージョン>",
"exportedAt": "<書き出し日時(ISO 8601)>",
"sourceApp": "<書き出し元アプリID>",
"config": { ... 設定本体 ... }
}
各プラグインは共通ランタイム 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())。
フォームスタジオ(入力規則)を含む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"}}
各エラーコードの意味と対処はエラーコード一覧を参照してください。また、プラグイン設定画面の「サポート用情報をコピー」から、環境・バージョン・ライセンス状態・直近のエラーを含む診断情報をコピーできます(レコードの内容や個人情報は含まれません)。お問い合わせの際はこの情報を添えてください。
解決しない場合はお問い合わせからご連絡ください。その際、プラグイン設定画面の「サポート用情報をコピー」でコピーした診断情報を添えていただくと、調査がスムーズです。
最終更新: 2026-09-12 / 対象バージョン: v1.5.0