# kintoneで顧客管理アプリを作る｜失敗しない設計の基本

kintoneで顧客管理を始めるときの、アプリの分け方とつなぎ方を解説します。顧客・案件・対応履歴の3つに分ける理由、ルックアップと関連レコード一覧の使い分け、重複を防ぐ設定まで、サイボウズ公式の情報をもとに整理しました。

「顧客の情報がExcelや個人のメモに散らばっていて、誰がいつ何を話したのか分からない」という悩みから、kintoneで顧客管理を始める会社は多くあります。

kintoneなら、項目を並べるだけで顧客の一覧や検索ができるアプリがすぐに作れます。ただ、最初に1つのアプリへ何でも詰め込んでしまうと、半年後には「入力が面倒」「集計できない」という状態になりがちです。

この記事では、サイボウズの開発者向けサイト[cybozu developer network の「kintoneのデータ設計の基本」](https://cybozu.dev/ja/kintone/tips/best-practices/colum/basic-data-design-in-kintone/)（外部サイト）などをもとに、顧客管理アプリを失敗せずに作るための設計の基本を整理します。

<Points>

- 顧客管理は「顧客」「案件」「対応履歴」のようにアプリを分けて、互いにつなぐのが基本
- アプリのつなぎ方にはルックアップと関連レコード一覧があり、向き不向きが違う
- 顧客番号のような重複しない番号を決めておくと、後からのデータ移行や連携が楽になる

</Points>

## 顧客管理は3つのアプリに分ける

kintoneで顧客管理をするとき、まず決めたいのは「アプリをいくつに分けるか」です。会社の情報、商談の情報、電話や訪問の記録を1つのアプリにまとめると、1社につき1件のはずのデータが商談のたびに増え、顧客の一覧として使えなくなります。

<Figure title="顧客管理でよく使うアプリの分け方">

| アプリ | 1件のデータが表すもの | 主な項目の例 |
| --- | --- | --- |
| 顧客 | 1つの会社（取引先） | 顧客番号、会社名、住所、電話番号、担当営業 |
| 案件 | 1つの商談 | 顧客番号、案件名、金額、受注見込み、ステータス |
| 対応履歴 | 1回の電話・訪問・メール | 顧客番号、日時、内容、次にやること |

</Figure>

「1件のデータが何を表すか」が違うものは、アプリを分けると覚えておくと迷いにくくなります。

<Flow
  title="3つのアプリのつながり"
  caption="顧客番号を共通の鍵にして、案件と対応履歴から顧客を参照する"
  steps={[
    { label: "顧客", note: "1社1件" },
    { label: "案件", note: "顧客番号で顧客を参照" },
    { label: "対応履歴", note: "顧客番号で顧客を参照" },
  ]}
/>

## アプリのつなぎ方は2種類

分けたアプリをつなぐ方法として、kintoneには「ルックアップ」と「関連レコード一覧」の2つがあります。cybozu developer networkの記事では、それぞれの特徴が次のように説明されています。

<Compare>
<Column title="ルックアップ">

- 別のアプリの値を、こちらのアプリにコピーして持ってくる
- コピーした値は一覧画面での表示や集計、CSVの書き出しに使える
- 元のアプリの値を変えても、コピー先は取得し直すまで古いまま

</Column>
<Column title="関連レコード一覧" tone="accent">

- 条件に合う別のアプリのデータを、その場で一覧表示する
- 元のアプリの変更が自動で反映される
- 集計や一覧画面への表示、CSVの書き出しには使えない

</Column>
</Compare>

顧客管理に当てはめると、次のように使い分けると扱いやすくなります。

- **案件・対応履歴のアプリ**：ルックアップで顧客番号と会社名を取り込む。会社名ごとの売上の集計や、一覧での絞り込みができる
- **顧客のアプリ**：関連レコード一覧で、その会社の案件と対応履歴を表示する。顧客の画面を開けば、これまでのやり取りがまとめて見える

<Note tone="caution">

ルックアップで取り込んだ会社名は、顧客のアプリで社名を変えても自動では直りません。社名変更などがあったときは、取り込み直す手順を決めておきましょう。

</Note>

## 重複しない「顧客番号」を決める

同じ記事では、ルックアップの元になる項目は重複を禁止する設定にすることが勧められています。同じ値が複数あると、CSVやAPIでの更新が失敗することがあるためです。

顧客管理では、会社名を鍵にすると「株式会社」の有無や表記ゆれで同じ会社が二重に登録されがちです。会社名とは別に、重複しない顧客番号を用意しておきましょう。

<Steps>
<Step title="顧客番号の付け方を決める">

「C0001」のように、社内で決めたルールで番号を付けます。記事では、kintoneが自動で付けるレコード番号は、データ移行のときに番号が変わるおそれがあるため、鍵にするのは勧められていません。

</Step>
<Step title="顧客番号の項目を「重複禁止」にする">

顧客のアプリで、顧客番号の項目に値の重複を禁止する設定をします。二重登録を入力の時点で防げます。

</Step>
<Step title="案件・対応履歴から顧客番号でルックアップする">

案件や対応履歴のアプリに、顧客番号を元にしたルックアップを置き、会社名などを一緒に取り込みます。

</Step>
<Step title="顧客のアプリに関連レコード一覧を置く">

顧客の画面から、その会社の案件と対応履歴が見えるようにします。

</Step>
</Steps>

## 標準機能で足りないときの対処

顧客管理を続けていると、次のような要望が出てきます。kintoneのコースによって対処の方法が変わります。

<Figure title="よくある要望と対処の方向">

| 要望 | 対処の方向 |
| --- | --- |
| 顧客の画面で、案件の金額の合計を見たい | 関連レコード一覧は集計できないため、プラグインやJavaScriptで集計する |
| 名刺やWebのお問い合わせから自動で登録したい | 外部サービスとの連携を使う |
| メール配信サービスと顧客リストを同期したい | REST APIを使った連携を作る |

</Figure>

プラグインやJavaScript、外部サービス連携は、[kintoneの料金ページ](https://kintone.cybozu.co.jp/price/)（外部サイト）ではスタンダードコース以上で使える機能です。ライトコースで始めた場合は、こうした要望が出た時点でコースの見直しが必要になります。

## まとめ

- 顧客管理は「顧客」「案件」「対応履歴」のように、1件のデータが表すものごとにアプリを分けます。
- 集計や一覧での絞り込みに使う項目はルックアップ、常に最新の内容を見たい一覧は関連レコード一覧でつなぎます。
- 会社名とは別に、重複しない顧客番号を用意しておきましょう。
- 集計や外部連携が必要になったら、スタンダードコース以上でプラグインや連携を使います。

顧客の数や連携するサービスが増えてくると、プラグインの組み合わせだけでは管理しきれなくなることもあります。kintoneの顧客管理に機能を足したい、他のシステムとつなぎたい、専用の顧客管理アプリに作り直したいと考えたら、今の設計を見直すところから相談してみてください。

## よくある質問

### Q. 顧客管理は1つのアプリにまとめてはいけませんか？

顧客の数が少なく、商談や対応の記録をほとんど残さないなら1つでも使えます。ただ、商談や対応のたびに件数が増える情報を同じアプリに入れると、顧客の一覧として使いにくくなります。増え方が違う情報はアプリを分けるのが基本です。

### Q. ルックアップと関連レコード一覧はどちらを使えばいいですか？

集計や一覧画面での表示、CSVの書き出しに使いたい値はルックアップで取り込みます。元のアプリの変更をいつも反映して見たいだけなら関連レコード一覧が向いています。顧客管理では両方を組み合わせて使うのが一般的です。

### Q. ライトコースでも顧客管理アプリは作れますか？

顧客・案件・対応履歴のアプリを作り、ルックアップや関連レコード一覧でつなぐところまでは標準機能でできます。プラグインでの集計や外部サービスとの連携が必要になったら、スタンダードコース以上を検討してください。
