6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita / Zenn / noteの記事をkintoneに自動登録する仕組みを作った話

6
Last updated at Posted at 2025-12-23

こんにちは!アシノです!
私は普段、エンジニア向け kintone 開発勉強会(devCamp)や、cybozu developer network の運営をしています。
本記事は、「kintone Advent Calendar 2025」24日目の記事となります🎄

はじめに

突然ですが、皆さんはどのようにkintoneカスタマイズに関する情報を収集していますか?
Xを見たり、QiitaやZennなどの記事プラットフォームをチェックしたりしている方も多いと思います。
その中で、kintoneカスタマイズに関する情報のみピックアップしたいと感じたことはありませんか?

今回はそのような方に向けて、Qiita / Zenn / noteに書かれている、kintoneカスタマイズ × チェックするキーワードを含む記事を収集し、2日に1回、kintoneアプリに自動登録される仕組みを紹介します✨

作ったもの

kintone MCPサーバーを用いて、VibeCodingで以下を作成しました!

image.png

「チェックするキーワード」は次の7つに設定しました。

  • API関連(特に新規API)
  • MCP
  • 連携コネクタ
  • 外部サービス
  • 基幹連携
  • 開催報告(ユーザーイベント)
  • Advent Calendar

自動登録の部分はGitHub Actionsで実装しました。
実際にGitHub Actionsが実行されると次のようなログを表示されます。

=== Qiita・Zenn・note → kintone 同期開始 ===
実行日時: 2025/12/11 0:23:40

1. Qiitaから記事を取得中...
Searching with query: tag:kintone body:API created:>=2025-12-09
Searching with query: tag:kintone body:MCP created:>=2025-12-09
Searching with query: tag:kintone body:連携コネクタ created:>=2025-12-09
Searching with query: tag:kintone body:外部 created:>=2025-12-09
Searching with query: tag:kintone body:基幹 created:>=2025-12-09
Searching with query: tag:kintone body:連携 created:>=2025-12-09
Searching with query: tag:kintone body:開催 created:>=2025-12-09
Fetching Advent Calendar articles from RSS feed...
   取得件数: 23件

2. Zennから記事を取得中...
   取得件数: 9件

3. noteから記事を取得中...
   取得件数: 2件

   合計: 34件の記事を取得

4. 新規記事をフィルタリング中...
   新規記事: 7件

5. kintoneに記事を登録中...
   ✓ 7件の記事を登録しました

【登録された記事】

■ Qiita (6件)
   1. kintoneの様々なフィールドをMotionBoard/Dr.Sumに連携する方法
      URL: https://qiita.com/yasutouhoshino/items/2ccedb2bf2749cf90dfc
      キーワード: API関連(特に新規API)
      公開日: 2025-12-10
   2. 【有料プラグインなし】kintoneで帳票を出力しよう【jsPDF】
      URL: https://qiita.com/YYYYaMMaDDa/items/e63fdba1331b6e218b50
      キーワード: なし
      公開日: 2025-12-10
   3. 【kintone】 サブテーブルのルックアップを“ボタン追加式”に変える JSテンプレ(Subtable Lookup Selector)
      URL: https://qiita.com/NestRec/items/7b0b2f89e01f7166bb9d
      キーワード: Advent Calendar
      公開日: 2025-12-02
   4. 『こんなこともあろうかと』と言いたいエンジニアに捧ぐ! JavaScriptカスタマイズの設定画面として使うヘッドレスプラグイン
      URL: https://note.com/motohasystem/n/nbee44bef7e8f
      キーワード: Advent Calendar
      公開日: 2025-12-11
   5. kintoneローカルMCPサーバーのテストを行いました
      URL: https://blog.cybozu.io/entry/2025/12/09/113000
      キーワード: Advent Calendar, MCP
      公開日: 2025-12-10
   6. kintoneで「ラベル目次」を生成するシンプルテンプレート
      URL: https://qiita.com/NestRec/items/90b9914cb907dccc42cb
      キーワード: Advent Calendar
      公開日: 2025-11-11

■ note (1件)
   1. Customineのページ分けのルール
      URL: https://note.com/black777cat/n/nade7c4d25a58
      公開日: 2025-12-09

=== 同期完了 ===

システム概要

仕様

  • 3つのプラットフォームから記事を自動収集
    • Qiita:
      • APIを使用して「タグにkintoneを含む」かつ「本文にチェックするキーワードを含む」かつ「記事が実行日の2日前以降」(tag:kintone body:keyword created:>=${YYYY-MM-DD})に作成されたものを取得
      • bodyに含まれる文字列からチェックするキーワードを自動判定
        (例:本文に「MCP」という文字列があったら、キーワードフィールドに「MCP」を自動追加)
      • アドベントカレンダーの記事は確実に取得するためRSSフィードから記事を取得
    • Zenn:
      • kintoneトピックのRSS( https://zenn.dev/topics/kintone/feed )を取得
      • <title>または<description>内にチェックするキーワードが含まれる場合のみ記事を登録
    • note:
      • #kintoneタグのRSS( https://note.com/hashtag/kintone/rss )を取得
      • <title>または<description>内にチェックするキーワードが含まれる場合のみ記事を登録
  • 重複チェック機能:既に登録済みの記事はスキップ
  • GitHub Actionsによる自動実行:2日に1回、朝9時(JST)に実行

構成

┌────────────────────────────────────────┐
│       GitHub Actions (Scheduler)       │
│        2日に1回、朝9時(JST)に実行         │
└──────────────────┬─────────────────────┘
                   │
                   ▼
          ┌─────────────────┐ ← メイン処理:
          │    index.js     │   ・Qiita、Zenn、noteの3つのクライアントを呼び出して記事を収集
          └────────┬────────┘   ・集めた記事をまとめて、KintoneClientに渡す
                   │            ・結果をコンソールに表示する
       ┌───────────┼───────────┐
       │           │           │
       ▼           ▼           ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Qiita     │ │ Zenn      │ │ note      │ ← 各プラットフォームからデータを取得。左から
│ Client.js │ │ Client.js │ │ Client.js │  Qiita API連携 / Zenn RSS連携 / note RSS連携
└──────┬────┘ └────┬──────┘ └──┬────────┘
       │           │           │
       └───────────┴───────────┘
                   │
                   ▼
            ┌─────────────┐
            │  Kintone    │ ← kintoneアプリにレコードを登録するための処理:
            │  Client.js  │  ・kintone APIとの通信のみ
            └──────┬──────┘  ・「記事の登録」「既存URLの取得」「重複チェック」を行う
                   │
                   ▼
            ┌─────────────┐
            │   kintone   │
            │     App     │
            └─────────────┘

kintone アプリのフィールド構成

アプリへのフィールドの追加や編集は、kintone MCPサーバーにお願いしました!

フィールド名 タイプ フィールドコード 用途
記事タイトル 文字列(1行) article_title 記事のタイトル
記事リンク リンク article_link 記事のURL
公開日 日付 published_date 記事の公開日
記事媒体 ドロップダウン article_media Qiita / Zenn / note
キーワード チェックボックス keywords API関連(特に新規API)/ MCP / 連携コネクタ / 外部サービス / 基幹連携 / 開催報告(ユーザーイベント)/ Advent Calendar
執筆者 文字列(1行) author 記事の執筆者
企業名/チーム名 文字列(1行) company_team 執筆者の所属企業やチーム名
タグ(Qiitaのみ取得) 文字列(1行) tags Qiitaのタグ情報
メモ📝 文字列(複数行) memo 備考欄

ひっかかったポイント解説

最初から上記のような構成をがっちり決めたわけではなく、VibeCodingでAIと対話と議論をしながら進めていきました。
その中で、私がひっかかったポイントは3つありました。

1. kintone MCPサーバーで後からフィールドを追加する時

kintoneアプリのフィールド配置にこだわりがある人は要注意です⚠️

例えば、レコードを見やすくするために自分でフィールドの配置を変更した後、AIに「kintone MCPサーバーを使って、〇〇フィールドを追加してください。」等の指示をすると、フィールドの配置を崩される場合があります。

これを防ぐためには、次の2つの方法が考えられます。

  • プロンプトを工夫する(例:勝手にフィールドの配置を変えないでください。)
  • kintone-update-form-layoutツールを自動実行しないように設定する

生成AIの出力には揺らぎがあるので、してほしくないものは明示したり、実行権限を確認したりしましょう。

kintone MCPサーバーの導入は、次のリンクを参考にしてください。
kintoneとGaroonのMCPサーバーを使ってみよう

2. APIの存在有無

Qiitaには公式APIがありますが、Zennやnoteにはありません。
今回後者2つに関しては、RSSを使うことにしました。

3. RSS フィードの制限

ZennとnoteのRSSフィードは、それぞれ最新の記事20件と25件しか取得できません。
noteは短期間に多くの記事が投稿されるため、漏れなく記事を収集するにはGitHub Actionsを2日に1回実行する必要がありました。

また、キーワードの取得に関して、公式APIが存在するQiitaの場合「『タグにkintoneを含む』かつ『本文にチェックするキーワードを含む』かつ『記事が実行日の2日前以降』」と細かい条件で目的の記事を絞り込みできました。

しかし、ZennとnoteはAPIが存在しないため、RSSフィードの「<title>または<description>内にチェックするキーワードが含まれる場合のみ記事を登録」としました。
限られた文字数の記事のタイトルと記事冒頭一部分にチェックするキーワードが含まれているかの判断になるので、APIを使用しているQiitaに比べて漏れが発生している可能性はあります。

(おまけ)kintone AIラボ「レコード一覧分析AI」を使って記事の分析

kintone AIラボのレコード一覧分析AIを使えば、収集した記事の分析も簡単にできます!

image.png

kintone AIラボの利用方法は、kintone ヘルプを確認してください。

まとめ

今回紹介した仕組みにより、Qiita / Zenn / noteに投稿されたkintoneカスタマイズ × チェックするキーワードを含む記事を自動的に収集し、kintoneで一元管理できるようになりました。

それによって、チームや部内で共有したり分析が簡単になりました。
ただ、ツールはあくまで手段の一つと考えており、こうした仕組みを活用しながら、皆さんの記事をしっかりチェックし、学びを深めています。
「もっといい方法があるよ!」という方がいらしたらぜひ教えてください!

技術情報を日々発信してくださっている皆さんに、心から感謝しています。
そして、これからも皆さまのkintoneに関する発信を楽しみにしています✨

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?