プリザンターOpenAPI仕様を使ってn8nカスタムノードを作ってみた
はじめに
数年前にPowerAutomateのコネクタ作成記事を書いた際、プリザンターのOpenAPI仕様を作成していました。
今回はその仕様を最新のプリザンターAPIに合わせてアップデートし、n8n用のカスタムノードを作ってみましたので、その機能や使い方、AIによるコード生成の活用例についてご紹介します。
OpenAPIとは
OpenAPI(旧Swagger)は、APIの仕様をYAMLやJSONで記述できる標準フォーマットです。
この仕様を整備しておくことで、
- APIの仕様が明確になり、ドキュメントも自動生成できる
- 各種ツールやサービスとの連携がしやすくなる
- クライアントやテストコードの自動生成も可能
といったメリットがあります。
今回は、以前作成したままになっていたOpenAPI仕様を最新のプリザンターAPIに合わせて更新し、OpenAPIのバージョンも2.0から3.0にアップグレードしました。
- こちらから確認・ダウンロードできます
現在はレコードの「取得」「作成」「更新」「削除」のAPIのみですが、その他APIにも拡張していく予定です
n8nノード作成に活用
n8nは、ノーコード/ローコードでさまざまなサービスやアプリケーションを連携できるワークフロー自動化ツールです。
オープンソースとして開発されており、クラウド版・セルフホスト版の両方が提供されています。
主な特徴は以下の通りです。
- 直感的なUIで複雑な処理もドラッグ&ドロップで構築可能
- 300種類以上のサービス・アプリと連携できる豊富なノード
- JavaScriptやカスタム関数による柔軟な拡張性
業務の自動化やデータ連携、通知、定期処理など幅広い用途で利用されています。
AIによるコード生成との組み合わせ
今回はGitHub CopilotのAIエージェント(使用モデルはClaude Opus(preview))を使い、OpenAPI仕様からn8nのカスタムノード(TypeScript)を自動生成してみました。
AIへの指示は、
- Pleasanter OpenAPI仕様を正式なAPI仕様として参照すること
- n8n公式サイトの開発ガイドの推奨事項やベストプラクティスに従うこと
の2点だけでしたが、ほぼ期待するコードを生成してくれました。
OpenAPIのような構造化された標準仕様があることで、APIの仕様に関しては正確に把握できているように感じました。
n8nノード Pleasanter
今回作成したノードは、GitHubリポジトリで公開しています。ソースコードなどはこちらでご確認ください。
https://github.com/pleasanter-developer-community/n8n-node-pleasanter
また、npmでも公開しているので、n8nのCommunity nodesから簡単にインストールできます。
https://www.npmjs.com/package/n8n-nodes-pleasanter
デバッグ環境について
n8nノードの開発・デバッグには、n8nのDockerイメージを利用すると便利です。
以下は、docker-compose.ymlの例です。作成したカスタムノードn8n-nodes-pleasanterのソースコードをマウントして利用する設定になっています。
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n-pleasanter-dev
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL=http://localhost:5678/
- GENERIC_TIMEZONE=Asia/Tokyo
- TZ=Asia/Tokyo
volumes:
- ./volume:/home/node/.n8n
- ./n8n-nodes-pleasanter/dist:/home/node/.n8n/custom/node_modules/n8n-nodes-pleasanter/dist:ro
- ./n8n-nodes-pleasanter/package.json:/home/node/.n8n/custom/node_modules/n8n-nodes-pleasanter/package.json:ro
インストール方法
n8nのUI上でComunity notesとしてインストール可能です。
- n8nの設定 > Community nodes に移動します
-
n8n-nodes-pleasanterを検索してインストールします
使用例
下記のようなTODOリストのテーブルを例にワークフローの作成手順を説明します。
ワークフローの仕様
- 手動起動(n8nのUI上で手動実行)(Manual Trigger)
- TODOレコードの「開始」が当日且かつ「状況」が「未実施」のレコードを取得(Get record(s))
- 取得したレコードをループ処理(Loop Over Items)
- 各レコードの「状況」を「実行中」に変更(Update a record)
ワークフロー作成手順
-
n8nエディタで新しいワークフローを作成
-
ノード追加で「Pleasanter」を検索
-
CredentialでプリザンターのURLとAPIキーを登録
「Credential to connect with」のドロップダウンで「+Create new credential」をクリックしてプリザンターの認証情報(BaseURLとAPI Key)を登録します。
(既にプリザンターの認証情報を登録している場合は設定済みの認証情報を選択)



-
ワークフローを保存して実行
Output Formatについて
Get record(s) Actionの「Output Format」では「Flat」か「Raw」のどちらかを選択します。
-
Raw:プリザンターから返却されるJSONがそのまま出力されます。下記のようなフォーマットになります
[ { "StatusCode": 200, "LimitPerDate": 10000, "LimitRemaining": 9990, "Response": { "Offset": 0, "PageSize": 200, "TotalCount": 0, "Data": [] } } ] -
Flat: レコードデータの配列のみを返します。実行結果共通の項目(StatusCode, LimitPerDate, LimitRemaining, Offset, PageSize, TotalCount)は全てのレコードに追加されます。データ量は大きくなりますが、後続のループ処理にそのまま渡せるため便利です
[ { "StatusCode": 200, "LimitPerDate": 10000, "LimitRemaining": 9987, "Offset": 0, "PageSize": 200, "TotalCount": 1, "SiteId": 17244127, "UpdatedTime": "2025-12-15T11:06:06", "Title": "くさむしり", ... } ]
実行結果
実行ログを確認してみます。
2.「Get record(s)」で対象レコードの取得
開始が今日で未実施の2件を取得

3. 「Loop Over Items」1件目

4. 「Update a record」1件目

5. 「Loop Over Items」2件目

6. 「Update a record」2件目

7. 「Loop Over Items」終了時

8. フロー実行後のテーブル

想定通りにレコードが更新できていることが確認できます。
まとめ
OpenAPI仕様を最新化し、AIによるコード生成を組み合わせてn8nノードを作成することで、プリザンターのAPIをより直感的かつ効率的に活用できるようになりました。
今回はn8nのカスタムノードを例にご紹介しましたが、標準化されたOpenAPIをベースにすることで、今後は他のツールやサービスとの連携もさらに広がっていくと考えています。
今回公開したOpenAPI仕様やカスタムノードは、どちらもGitHubで自由に利用できます。
- OpenAPI仕様: https://github.com/pleasanter-developer-community/pleasanter-open-api
- n8nノード: https://github.com/pleasanter-developer-community/n8n-node-pleasanter
ぜひ実際に使ってみて、フィードバックやプルリクエストをお寄せいただけると嬉しいです。











