
kintoneとGoogleスプレッドシートを連携する方法|4つの選択肢と「どちらで管理するか」の線引き
「kintoneを入れたのに、結局みんなスプレッドシートに転記して集計している」
「kintoneとスプレッドシートを連携したいけど、GASを書くべき?連携サービスを使うべき?」
「そもそも、この台帳はkintoneとスプレッドシートのどちらで管理すべき?」
Google Workspaceとkintoneを併用している小さな会社で、よく聞く悩みです。kintoneとGoogleスプレッドシートの連携は、方法を選ぶ前に「原本をどちらに置くか」を決めるのが先です。ここが曖昧なまま双方向に同期すると、どちらが正しいデータか分からなくなります。
結論を先に書きます。
原本(みんなで入力・更新し、履歴や権限が必要なデータ)はkintone、集計・分析・一時的な試算はスプレッドシート
連携の向きは、まずkintone→スプレッドシートの一方向にする
方法は、頻度が低ければCSVの手作業、毎日自動で反映したければGAS(Google Apps Script)かノーコードの連携サービス
APIを使う自動連携は、kintoneのコース(ライト/スタンダード)によって使えない場合があるので、最初に確認する
この記事では、2026年10月時点の公式情報(cybozu developer network、kintone公式サイト、Google Apps Scriptのドキュメントなど)をもとに、役割分担の判断表、4つの連携方法の比較、GASのサンプルコード、セキュリティの注意点、Geminiを使った分析までを整理します。
スプレッドシートとkintoneの違い:どちらで管理するかの判断表
まずは「このデータはどちらで持つか」の判断表です。どちらも表形式でデータを扱えますが、得意なことがはっきり違います。
入力する人|kintoneが向いている:複数人が日常的に登録・更新する / スプレッドシートが向いている:1人〜少人数が作業する
アクセス権|kintoneが向いている:「この人はこのレコードだけ」など細かく分けたい / スプレッドシートが向いている:ファイル単位の共有で足りる
承認・ステータス|kintoneが向いている:申請→承認などの流れ(プロセス管理)がある / スプレッドシートが向いている:流れはない
履歴|kintoneが向いている:誰がいつ何を変えたかを残したい / スプレッドシートが向いている:版の履歴が見られれば十分
社外との共有|kintoneが向いている:原則は社内(ゲストスペースは別途設計) / スプレッドシートが向いている:取引先と表を一時的に共有したい
計算・分析|kintoneが向いている:定型の集計・グラフ / スプレッドシートが向いている:自由な関数・ピボット・試算
データの寿命|kintoneが向いている:何年も使い続ける台帳 / スプレッドシートが向いている:その場限りの分析・使い捨ての表
ざっくり言うと、「業務の記録」はkintone、「考えるための作業台」はスプレッドシートです。
たとえば顧客台帳、案件管理、申請・承認、日報のように、複数人が入力して長く使い、権限や履歴が必要なものはkintoneが向いています。一方で、月次の売上分析、来期の予算シミュレーション、取引先と一緒に埋める見積の明細のように、自由に計算したい・一時的に使う・社外とやり取りするものはスプレッドシートが便利です。
よくある失敗は、スプレッドシートで管理していた台帳をkintoneに移したあとも、「念のため」スプレッドシートでも同じ台帳を更新し続けることです。原本が2つになると、どちらかが必ず古くなります。原本はkintoneに1つ、スプレッドシートはkintoneから取り出した「写し」と決めておくと、連携の設計がシンプルになります。
スプレッドシートやExcelの台帳をこれからkintoneへ移す場合は、取り込みの前に列名・日付・重複を整えておくと失敗が減ります。
→ kintoneにExcelを取り込む前に|重複・日付・列名で失敗しない準備と確認手順
kintoneとスプレッドシートを連携する4つの選択肢
連携の方法は、大きく次の4つです。

①CSVで手作業|手間:毎回操作が必要 / 自動化:なし / 費用の目安:追加費用なし / 向いている会社:月1回程度の集計でよい
②GAS×kintone REST API|手間:最初にコードを用意 / 自動化:時間指定で自動 / 費用の目安:追加費用なし(Google Workspace内) / 向いている会社:少しコードを触れる人がいる
③ノーコード連携サービス|手間:画面で設定 / 自動化:登録・更新をきっかけに自動 / 費用の目安:各サービスの料金 / 向いている会社:コードを書かずに自動化したい
④kintoneのプラグイン・連携サービス|手間:製品ごとに設定 / 自動化:製品による / 費用の目安:各製品の料金 / 向いている会社:特定の用途にぴったり合う製品がある
前提:APIを使う方法はkintoneのコースを確認
②〜④は、kintoneの外からデータを読み書きする方法なので、kintone側で外部連携が使えることが前提になります。
kintone公式の料金ページ(2026年10月時点)では、ライトコースが月額1,000円/ユーザー、スタンダードコースが月額1,800円/ユーザー(いずれも最小10ユーザー)と案内されています。また、コースの比較表では「外部サービス連携、プラグインなどの拡張機能」はスタンダードコース以上の機能として示されています。ライトコースでは、APIを使った連携やJavaScriptによるカスタマイズができないと案内している販売パートナーのFAQもあります。
ライトコースを使っている場合は、①のCSVが中心になります。自動連携が必要になったら、コース変更も含めて検討してください。
→ kintoneライトとスタンダードの違い|小さな会社はどっちを選ぶ?料金・できないこと・後から変更の注意点【2026年版】
①CSVで手作業(kintone標準の書き出し・読み込み)
いちばん手軽なのは、kintone標準のCSV書き出しを使う方法です。
kintone→スプレッドシート
kintoneのアプリで、書き出したい一覧を表示する
「ファイルに書き出す」を選び、書き出す項目・文字コード・区切り文字を選ぶ
書き出したCSVをGoogleドライブにアップロードし、スプレッドシートで開く(または「ファイル」→「インポート」)
スプレッドシート→kintone
スプレッドシートで「ファイル」→「ダウンロード」→「カンマ区切り形式(.csv)」
kintoneのアプリで「ファイルから読み込む」を選び、列とフィールドの対応を確認して取り込む
注意点は次の3つです。
文字コード:kintoneの書き出しでは文字コードを選べます。スプレッドシートで開くならUTF-8を選ぶと文字化けしにくくなります(Excelで開く前提ならShift-JISを選ぶケースもあります)
ヘッダー行:公式ヘルプでは、ヘッダー行(項目名)を含めて書き出しておくと、アプリに読み込むときにフィールドの対応付けが自動で行われると案内されています
読み込みは「追加」か「更新」かを意識する:キーになる項目(レコード番号など)を指定しないと、更新のつもりが新規レコードとして重複登録されることがあります
月1回の集計程度なら、この方法で十分です。手順書を1枚作っておけば、担当が変わっても回せます。
②GAS(Google Apps Script)×kintone REST API
毎日決まった時間に、kintoneのデータをスプレッドシートへ自動で反映したいときの定番がGASです。Google Workspaceに含まれているので、追加費用なしで始められます。
仕組みはシンプルで、スプレッドシートに紐づくGASから、kintoneの「レコードの一括取得」API(GET /k/v1/records.json)を呼び出し、結果をシートに書き込みます。
押さえておきたい公式の仕様は次のとおりです。
1回で取得できる件数|公式の仕様(2026年10月時点):最大500件(queryのlimitで指定、省略時は100件)
offsetの上限|公式の仕様(2026年10月時点):10,000(それ以上はレコード番号順に区切って取得する方法などを使う)
APIトークンの送り方|公式の仕様(2026年10月時点):リクエストヘッダー X-Cybozu-API-Token
GASの実行時間|公式の仕様(2026年10月時点):1回の実行につき最大6分
GASのトリガーの合計実行時間|公式の仕様(2026年10月時点):1日あたり6時間(Google Workspaceアカウント)/90分(個人のGoogleアカウント)
GASのURL Fetch回数|公式の仕様(2026年10月時点):1日あたり100,000回(Google Workspaceアカウント)/20,000回(個人アカウント)
小さな会社で数千件程度のアプリなら、1日1回の更新で上限に困ることはまずありません。ただし、Googleはクォータは予告なく変わることがあると明記しているので、件数が多い場合は余裕を持った設計にします。サンプルコードは後半で紹介します。
③ノーコードの連携サービス(Zapier・Yoomなど)
コードを書かずに自動化したい場合は、連携サービスを使う方法があります。公式ページで、kintoneとGoogleスプレッドシートの連携が確認できたものを挙げます。
Zapier:kintoneのトリガーとして「New Record(新しいレコード)」、アクションとして「Create Record」「Update Record」などが案内されており、Googleスプレッドシートとの連携ページも用意されています。無料プランでは新規データの確認が15分ごとと案内されています
Yoom:kintoneの「レコードが登録されたら」「レコードが登録または編集されたら」をきっかけに、スプレッドシートに「行を追加する」などのフローを作れると案内されています。毎日決まった時間にkintoneのレコードをスプレッドシートへ転記するテンプレートも紹介されています
連携サービスは、「レコードが1件登録されたら、スプレッドシートに1行追加」のようなイベント型が得意です。一方で、全件をまとめて洗い替えするような処理は、プランの実行回数や件数の上限に引っかかりやすいので、料金ページで確認してから選んでください。料金・無料枠は改定されることがあるため、導入前に各サービスの公式サイトで最新情報を確認するのが確実です。
④kintoneのプラグイン・連携サービス
kintoneには、サイボウズ以外の会社が提供するプラグインや連携サービスが多数あり、スプレッドシートやExcelへの出力、外部サービスへの転記をうたう製品もあります。
ただし、仕様・料金・サポート範囲は製品ごとに大きく異なります。導入前には次の点を確認してください。
スプレッドシートへの出力が手動ボタンか、自動か
どのアカウントの権限でデータを読み書きするか
提供会社のサポート体制と、解約したときにデータや設定がどうなるか
プラグインは便利な反面、入れすぎると管理が大変になります。「スプレッドシートに出したい」だけなら、まず①〜③で足りないかを確認してから検討するのがおすすめです。
連携の向きは「kintone→スプレッドシートの一方向」から
方法を選んだら、次はデータの流れる向きを決めます。おすすめは、kintone→スプレッドシートの一方向です。
一方向が安全な理由
原本が1つに決まる:正しいデータは常にkintone。スプレッドシートは「写し」なので、壊れても作り直せる
権限と履歴がkintoneに残る:誰がいつ変えたかはkintone側で追える
トラブルの原因が追いやすい:流れが1本なので、数字が合わないときに確認する場所が限られる
双方向同期の落とし穴
「スプレッドシートで修正したらkintoneにも反映したい」という要望はよくありますが、双方向にすると次のような問題が起きやすくなります。
同時編集の競合:kintoneとスプレッドシートで同じレコードを別々に直すと、どちらかの変更が上書きされる
ループ:kintoneの更新でスプレッドシートが変わり、それをきっかけにkintoneが更新され…と処理が繰り返される
権限のすり抜け:kintoneで「この人は編集不可」にしていても、スプレッドシート経由で書き換えられてしまう
入力チェックのすり抜け:kintoneの必須項目や選択肢の制限が、スプレッドシート側では効かない
どうしてもスプレッドシートからkintoneへデータを入れたい場合は、「新規登録だけ」「特定の列だけ」のように範囲を絞り、更新はkintoneの画面で行う運用にすると安全です。
一方向連携の設定手順(GASの場合)

kintoneでAPIトークンを発行する:アプリの設定から、アクセス権を「レコード閲覧」だけにしたトークンを作り、「アプリを更新」で反映する
共有ドライブにスプレッドシートを作る:個人のマイドライブではなく、会社の共有ドライブに置く
スクリプトプロパティに設定値を保存する:ドメイン・アプリID・APIトークンをコードに直接書かない
GASを貼り付けて手動で実行する:初回は権限の承認が必要。結果を目で確認する
時間主導型トリガーを設定する:毎朝6〜7時など、使う前の時間帯に1日1回
失敗時の通知を確認する:トリガーのエラー通知の宛先と頻度を設定しておく
GASのサンプルコード:kintoneのレコードをシートに読み込む
kintoneのアプリから指定したフィールドを取得し、「kintone」という名前のシートに上書きで書き込むサンプルです。スプレッドシートの「拡張機能」→「Apps Script」から作成します(コンテナバインド型)。
事前準備:スクリプトプロパティ
Apps Scriptのエディタで「プロジェクトの設定」→「スクリプト プロパティ」に、次の3つを登録します。
KINTONE_DOMAIN|値の例:自社のkintoneのドメイン(例:xxxx.cybozu.com の形式)
KINTONE_APP_ID|値の例:アプリID(アプリのURLの /k/ の後ろの数字)
KINTONE_API_TOKEN|値の例:発行したAPIトークン
コード
// kintoneのレコードを「kintone」シートに書き出す(kintone → スプレッドシートの一方向)
function syncKintoneToSheet() {
const props = PropertiesService.getScriptProperties();
const domain = props.getProperty('KINTONE_DOMAIN');
const appId = props.getProperty('KINTONE_APP_ID');
const token = props.getProperty('KINTONE_API_TOKEN');
// 取得するフィールドコード(自社のアプリに合わせて変更)
const fields = ['$id', '顧客名', '担当者', '金額', 'ステータス'];
const rows = [];
let lastId = 0;
while (true) {
// レコードID順に500件ずつ取得(offsetの上限10,000を避けるため)
const query = `$id > ${lastId} order by $id asc limit 500`;
const params = ['app=' + appId, 'query=' + encodeURIComponent(query)]
.concat(fields.map((f, i) => encodeURIComponent(`fields[${i}]`) + '=' + encodeURIComponent(f)))
.join('&');
const res = UrlFetchApp.fetch(`https://${domain}/k/v1/records.json?${params}`, {
method: 'get',
headers: { 'X-Cybozu-API-Token': token },
muteHttpExceptions: true,
});
if (res.getResponseCode() !== 200) {
throw new Error('kintone API error: ' + res.getContentText());
}
const records = JSON.parse(res.getContentText()).records;
records.forEach(r => {
rows.push(fields.map(f => {
const v = r[f] ? r[f].value : '';
return Array.isArray(v) ? v.map(x => x.name || x).join(', ') : v; // 複数選択・ユーザー選択などは文字列に
}));
});
if (records.length < 500) break;
lastId = records[records.length - 1].$id.value;
}
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('kintone');
sheet.clearContents();
const data = [fields].concat(rows);
sheet.getRange(1, 1, data.length, fields.length).setValues(data);
}
コードのポイントと安全上の注意
APIトークンはコードに直接書かない:スクリプトプロパティに置くことで、コードを人に見せたり共有したりしても、トークンがそのまま漏れることを防げます。ただし、スクリプトの編集権限がある人はプロパティも見られるので、スプレッドシートの編集者は最小限にします
トークンのアクセス権は「レコード閲覧」だけ:cybozu developer networkでも、トークンは発行したアプリでしか使えず、実行できるAPIの種類を絞れることが案内されています。読み込み専用の連携なら、追加・編集・削除の権限は付けません
全件取得はレコードID順に:一括取得は1回最大500件、offsetの上限は10,000です。上のコードは、offsetを使わず「前回の最後のID より大きいもの」を順に取得する形にしています
フィールドの型に注意:ユーザー選択や添付ファイル、テーブルなどは値がオブジェクトや配列になります。最初は文字列・数値・日付・ドロップダウンなど単純なフィールドだけを対象にするのがおすすめです
件数が多い場合:数万件を毎回洗い替えすると、6分の実行時間に近づくことがあります。その場合は、query で更新日時を絞る、必要なフィールドだけにする、などで量を減らします
APIリクエスト数:kintone公式の料金ページでは、1アプリごとのAPIリクエスト数の上限(1日あたり)が案内されています。1日1回・数十リクエスト程度なら問題になりにくいですが、他の連携と合計で考えます
トリガーは、Apps Scriptエディタの「トリガー」から「時間主導型」→「日付ベースのタイマー」で、毎日の時間帯を選んで設定します。
セキュリティ:連携したら「スプレッドシート側の管理」が大事
kintoneで細かくアクセス権を設定していても、スプレッドシートに書き出した瞬間から、データの管理はGoogleドライブの共有設定に移ります。ここが連携でいちばん見落とされやすいポイントです。
1. APIトークンの管理
アクセス権は必要最小限(読み込みだけなら「レコード閲覧」のみ)
用途ごとにトークンを分け、使わなくなったら削除する
トークンをチャットやメールに貼らない。漏れた疑いがあれば、kintone側で削除して再発行する
2. スプレッドシートの共有設定
「リンクを知っている全員」の共有は使わない。kintoneでは見られない人に、データが丸見えになることがあります
kintoneのアプリで閲覧を制限しているフィールド(給与、個人情報など)は、そもそも書き出す対象に入れない
取引先と共有したい場合は、連携用のシートとは別ファイルに必要な列だけをコピーする
kintone側の権限設計は、スプレッドシート連携の前提になります。
→ kintoneアクセス権の設定方法|3層の違いと情報漏えいを防ぐ設計・テスト
3. ファイルとスクリプトのオーナー
GASとトリガーは、作った人のアカウントで動きます。担当者の個人のマイドライブにスプレッドシートを置き、その人のアカウントでトリガーを設定していると、退職や異動でアカウントが停止したときに連携が止まります。
スプレッドシートは共有ドライブに置く(ファイルの持ち主が会社になる)
トリガーを設定したアカウント、APIトークンの発行者を、台帳やkintoneのアプリにメモしておく
退職・異動の手順に「連携の引き継ぎ(トリガーの再設定、トークンの見直し)」を入れておく
→ 共有ドライブとマイドライブの違いは?Google Workspaceのフォルダ設計と退職時のデータ移行
AIの使い方:分析はGemini in Sheets、原本はkintone
kintoneのデータをスプレッドシートに一方向で書き出しておくと、GoogleスプレッドシートのGeminiで分析しやすくなります。
Google Workspaceの公式アップデート情報(2025年10月)では、Gemini in Sheetsで、同じタブ内の複数の表をまたいだ数式の作成、グラフ・分析、選択した範囲の要約や外れ値の確認などができると案内されています。対象は、Business Standard・Plusなどの対象エディションで、管理者がスマート機能とパーソナライズを有効にしている必要があります。
たとえば次のような聞き方ができます。
「担当者別・月別の金額をピボットテーブルにして」
「先月と比べてステータスが『失注』の件数が増えた担当者は?」
「金額が極端に大きい・小さいレコードを洗い出して」
このとき大事なのは、AIで気づいたことの修正は、スプレッドシートではなくkintoneで行うことです。スプレッドシートはあくまで写しなので、次の同期で上書きされます。「分析はスプレッドシート、データの修正と記録はkintone」と分けておけば、AIを使っても原本が崩れません。
また、Geminiはユーザーがアクセスできるファイルを使って答えます。前の章の共有設定が整っていないと、見せるべきでない人がAI経由でデータを要約できてしまうこともあるので、AIを使う前に共有範囲を見直しておきましょう。
→ Google WorkspaceのGeminiは何ができる?2026年のプラン別機能・料金と小さな会社の使い方
よくある失敗3つ
失敗1:スプレッドシートとkintoneの両方で台帳を更新している
原本が2つになり、数字が合わなくなります。対策:原本はkintoneと決め、スプレッドシートは書き出し専用のシートにします。シートの保護機能で、同期用シートを編集できないようにしておくと安心です。
失敗2:個人アカウントのトリガーで動いていて、退職で止まる
気づいたのは数週間後、ということがよくあります。対策:スプレッドシートは共有ドライブに置き、トリガーの設定者と引き継ぎ手順を決めておきます。シートの1行目などに「最終更新日時」を書き込むようにしておくと、止まっていることにすぐ気づけます。
失敗3:APIトークンに必要以上の権限を付けている
「とりあえず全部チェック」で発行すると、コードの誤りでレコードを削除・上書きしてしまうおそれがあります。対策:読み込み専用の連携なら「レコード閲覧」のみ。書き込みが必要な連携とは、トークンを分けます。
まとめ

原本(複数人で入力・権限・履歴が必要)はkintone、集計・分析・一時的な試算はスプレッドシート。原本は1つに決める
連携方法は、①CSV手作業、②GAS×REST API、③ノーコード連携サービス、④プラグイン・連携サービスの4つ。APIを使う方法は、kintoneのコースを先に確認する
向きはkintone→スプレッドシートの一方向から。双方向は競合・上書き・権限のすり抜けが起きやすい
GASでは、APIトークンをスクリプトプロパティに置き、権限は「レコード閲覧」のみ。一括取得は1回500件まで、GASの実行は1回6分まで
スプレッドシートは共有ドライブに置き、リンク共有を使わない。AI(Gemini)で分析しても、修正はkintoneで行う
まずは「月次集計に使っているスプレッドシートを、kintoneからの一方向の写しにする」ところから始めてみてください。転記の手間と、数字の食い違いが一度に減ります。
※情報は2026年10月時点の公式情報に基づきます。料金・API仕様・クォータ・画面の名称などは変更される場合があるため、設定前に必ず各社の公式サイトで最新情報をご確認ください。サンプルコードは動作を保証するものではありません。テスト用のアプリとスプレッドシートで確認してから本番に適用してください。
参考:
レコードを一括取得する(cybozu developer network)https://cybozu.dev/ja/kintone/docs/rest-api/records/get-records/
APIトークンを使ってみよう(cybozu developer network)https://cybozu.dev/ja/kintone/tips/development/customize/development-know-how/api-tokens/
JavaScriptでレコードを一括取得する方法(cybozu developer network)https://cybozu.dev/ja/kintone/tips/development/customize/development-know-how/bulk-get-records-using-javascript/
kintone 料金(サイボウズ)https://kintone.cybozu.co.jp/price/
Exporting Data to a File(kintone Help)https://help.kintone.com/k/en/user/app_collectdata/export/data_export.html
Quotas for Google Services(Google Apps Script)https://developers.google.com/apps-script/guides/services/quotas
Kintone integrations(Zapier)https://zapier.com/apps/kintone/integrations
Google スプレッドシートとkintoneの連携(Yoom)https://lp.yoom.fun/integration-apps/google-sheets-to-kintone
Gemini in Google Sheets can now analyze data across multiple tables(Google Workspace Updates)https://workspaceupdates.googleblog.com/2025/10/gemini-in-google-sheets-analyze-data.html