# Microsoft 365 Copilot で kintone のデータにアクセスしたときの失敗談

**URL:** <https://community.cybozu.dev/t/topic/12619>\
**Category:** やってみたことの共有\
**Tags:** ai\
**Created:** [2026 年 6 月 17 日午前 2:58 UTC](https://community.cybozu.dev/t/topic/12619 "2026-06-17T02:58:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![wv-sumichan](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/wv-sumichan/32/1665_2.png) [@wv-sumichan](https://community.cybozu.dev/u/wv-sumichan)\
**Post date:** [2026 年 6 月 17 日午前 2:58 UTC](https://community.cybozu.dev/t/topic/12619/1 "2026-06-17T02:58:13Z")

</div>

> [@【Tips公開】kintoneのSFAデータをMicrosoft 365 Copilotから自然言語で問い合わせる](https://community.cybozu.dev/t/topic/12616):
>
> 「kintoneに情報を入れているけど、あまり活用できていない」 そんな声、聞いたことはないでしょうか。 kintoneで業務管理をしている組織でよく起きる課題のひとつが、情報は蓄積されているが活用されないという問題です。 案件情報をkintoneで管理していて、一覧やグラフで確認できるはずなのに、面倒だからと直接担当者に確認してしまう。 結果として、「何のために入力しているのか」がわから…

この記事を見て、私が以前に試したときはうまくいかなかったのに上手いことできるんだ……と驚愕したので、あえて失敗談を共有します。

ただ、実際うまくいかなかったので正解が分からないのと、正直うろ覚えなので、正確ではないかもしれません。またそもそもこうした宣言チックな外部連携はあまり経験がなく、勘所もわかってません。書いたことだけがダメな原因ではないかも。また時間のある時にトライして追記するかもしれません。

## Swagger の定義が長すぎる

> **[/ja/kintone/ai/kintone-copilot-sfa-natural-language/](https://cybozu.dev/ja/id/46ee41fb5c4d37bcffc9ae8e/#create-oas-yaml)**

> Copilot StudioのカスタムコネクタはOAS 2.0（Swagger）形式のみ受け付けます。  
> そのため、次のkintoneのAPIドキュメントをベースに、Swagger形式のYAMLを作成します。
> 
> - [複数のレコードを取得する](https://cybozu.dev/ja/id/ba1703e9391653c667ce958b/)
> 
> ゼロから書くのは手間がかかるため、LLMを活用しました。  
> 以下に参考としてYAMLの例を示します。

記事ではここでレコード取得の API のみを定義していますが、以前私は **すべての API を網羅した Swagger 定義** を作成して読み込ませようとしました。

結果、定義のサイズが大きすぎてコネクタの登録ができず。機能を削ってレコード操作のみに限定したところ、コネクタの宣言はできました。

ただ、そもそも Outlook や Sharepoint などのコネクタが操作ごとに分かれている (ex. 予定を登録する / 1件の予定を取得する / 予定を検索する etc…) ので、この記事のように取得 / 登録 / 編集 / 削除みたいに操作ごとにコネクタを用意するほうがよかったのかもしれません。管理が大変ですが。

## OpenAPI 2.0 の制約

当時は Copilot を使って kintone REST API の OpenAPI 定義を生成したのですが、何も指示しないとバージョンが 2.0 ではなく 3 系 (?) で生成されてしまいました。

要するに Copilot のコネクタとして登録できるのは OpenAPI 2.0 なのに、そのバージョンでは対応してない機能を使って記述されてしまい、構文エラーと認識されてしまいました。

特にフィールドやフォームのプロパティなどは定義を **名前参照** かつ内部で **再帰参照** するところが厄介で、結構そういう箇所があって修正に苦労しました。

あと、確かドメインの指定も 2.0 と後続バージョンでプロパティ名が違って、それでうまくいかなかったのも覚えています……。

## 複数ドメイン対応はできないと思う

Swagger 定義の中にこんな感じの記述を含めると、エージェントを作成するときにドメインを指定できるみたいです。

```yaml
x-ms-parameterized-host:
  hostTemplate: '{subdomain}.cybozu.com'
  useSchemePrefix: true
  parameters:
    - name: subdomain
      description: 'kintone サブドメイン（例: mycompany → mycompany.cybozu.com）'
      required: true
      x-ms-summary: kintone サブドメイン
      x-ms-url-encoding: single
      in: path
      type: string

```

ただ **OAuth2 の設定をパラメータにすることが可能かどうかが分かってない** です。もしかしたら同じようにパラメータにできる構文があるのかもしれませんが、ちょっと調べ切れてません。

で、気づいたら私は **ホストは可変なのに OAuth2 は特定ドメイン専用** とかいう意味不明なコネクタが爆誕させてました。つまり正しいドメインを指定しないと動かない。悲しい。

## ナレッジを作らなかった / コネクタ側の説明文が不十分だったかも

とりあえず検証しようと先走って、コネクタを作って動かしてみらそれっぽく通信はできた。

けど何かを検索させたりするのはまったくもってできなくて、特に検索用のクエリの生成や戻り値の解読が全然できませんでした。

今回記事を見て **ナレッジを作成する** というところが根本的に足りてないことに気づきました。確かにこれがあれば AI 側で迷わず行けるのかも。

* * *

走り書きにはなりますが、もし試してみようと思われた方がいらっしゃったら、ご参考程度に。

---

<div class="post-metadata">

**Author:** ![Staff-kirin](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/staff-kirin/32/2754_2.png) [@Staff-kirin](https://community.cybozu.dev/u/Staff-kirin)\
**Post date:** [2026 年 6 月 18 日午前 8:01 UTC](https://community.cybozu.dev/t/topic/12619/2 "2026-06-18T08:01:14Z")

</div>

丁寧に共有してくださり、ありがとうございます✨とても参考になりました。

「ナレッジの作成が足りていなかったかも」という気づきはこれから試す方にとっても大きなヒントになりそうですね。  
実際に運用の現場で、ナレッジがどこまで細かく整理できるものなのか気になっています🦒

もしまた試されることがあれば、どのくらい実用的に運用できそうか、ぜひ感触を聞かせてもらえると嬉しいです☺
