pipefy-html-interfaces について
Pipefy のパイプやテーブルをデータソースにする HTML インターフェースを作成・管理するスキルです。データバインディングと公開を案内し、検証や変更の即時反映にも注意を促します。
主な機能
- 01HTML インターフェースの作成と編集
- 02パイプとテーブルのデータソース連携
- 03既存インターフェースと HTML の確認
- 04プラットフォーム規則に沿った検証
活用シーン
- 01Pipefy のパイプを使ったダッシュボード作成
- 02テーブルをページのデータソースに追加
- 03インターフェースのレイアウト確認や更新
MCP 対応
MCP クライアント向けに別途 MCP 利用ガイドを案内し、インターフェースの読み取り・変更操作を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pipefy/ ai-toolkit --skill pipefy-html-interfacesインストール後、Claude Code で/pipefy-html-interfacesを入力して読み込まれたか確認します。
同梱ファイルreferences/cli.mdreferences/mcp.md
詳細
HTML インターフェース
MCP クライアントは references/mcp.md を参照してください。CLI ユーザーは references/cli.md を参照してください。
HTML インターフェースは、単一の要素が 1 つの HTML ドキュメントを保持する customCode 要素であるページです。この要素は、HTML がソース ID で読み取るデータソース(パイプまたはテーブル)を宣言できます。HTML を書き込むと公開されます。下書きはありません。
使用する場面
- 「未対応のリクエストを表示するページを作って」「このパイプからダッシュボードページを作って」
- 「HTML インターフェースのレイアウト/文言/色を変更して」
- 「テーブル X をページのデータソースに追加して」
- 「HTML インターフェースを一覧表示して」「ページ Y の HTML を表示して」
ユーザーが「ページ」と依頼し、それが単独の HTML ページを指すのか、メインポータル内のページを指すのか不明な場合は、作業を始める前に確認してください。
使用しない場面: メインポータル、そのグリッドレイアウトのページと要素、サブポータルは pipefy-portal-setup にあります(list_portals と get_portal で確認でき、get_interface_html はこれらを拒否します)。パイプ、フィールド、カード自体は pipefy-pipes-and-cards にあります。ポータルのページまたは要素のツールを使って HTML インターフェースを変更しないでください。これらのツールはその customCode 要素を受け付けますが、ここにあるツールが実施するチェックを行わずに、そのメタデータとソースを置き換えます。
前提条件
- 組織で HTML インターフェースが有効になっていること。 Pipefy が組織ごとに有効化します。組織の管理者が有効化することはできません。この機能が有効になっていないために呼び出しが失敗した場合は、作業を中止し、組織で HTML インターフェースを有効にするよう Pipefy に依頼することをユーザーに伝えてください。有効化できるツールはありません。
- 組織 ID。
list_interface_reposが受け付けるのは数値の組織 ID のみです。create_html_interfaceとlist_interfacesは数値 ID または UUID を受け付けます。通常、ユーザーが提示するのは UUID または名前なので、list_organizationsのidを使って数値 ID を調べ、すべての操作で使用してください。 - ページに表示するパイプとテーブルへの管理者アクセス権。
list_interface_reposに表示されるのは、呼び出し元が管理する公開済みのパイプとテーブルのみです。
操作
| 操作 | 読み取り専用 | 目的 |
|---|---|---|
get_interface_html_guidelines | はい | HTML が従うべきルール、データのバインドに使う data-pfy-* の語彙、フィルター形式を取得します。include_design_system を指定すると、デザインシステムのカタログも取得します。 |
list_interface_repos | はい | データソースとして使用できるパイプとテーブルを一覧表示します。 |
get_interface_repo_fields | はい | ソースの fieldKeys を選ぶために、パイプまたはテーブルのカスタムフィールドを取得します。 |
list_interfaces | はい | 組織の HTML インターフェースを visibility とともに一覧表示します。 |
get_interface_html | はい | 1 つのインターフェースのページ、要素、データソース、公開中の HTML を取得します。 |
create_html_interface | いいえ | インターフェースを作成し、最初のページを書き込みます。ソースは任意で指定できます。 |
set_interface_sources | いいえ | 要素のデータソースを置き換えます。 |
write_interface_html | いいえ | 要素の HTML を置き換えて公開します。 |
すべてのフローに適用されるルール
- まずガイドラインを読みます。 HTML を書く前に
get_interface_html_guidelinesを呼び出し、その内容に従ってください。このスキルではルールを繰り返しません。ガイドラインが唯一の参照元であり、プラットフォームに応じて変更されます。デフォルトでは、ルールより数倍大きいコンポーネントカタログであるdesignSystemは省略されます。ページのスタイルを設定する場合に限り、include_design_systemを指定して取得してください。 dataPfyVocabularyの指示どおりにデータをバインドします。 各data-pfy-*属性の役割、ほとんどの場合に属性を付ける要素、属性に設定する値が記載されています。バリデーターが確認するのは属性が許可されているかどうかだけなので、誤った場所にバインドしても受け入れられます。- 書き込みはすべて即時反映されます。
create_html_interface、write_interface_html、set_interface_sourcesを実行すると、訪問者に表示される内容がすぐに変わります。ユーザーからの具体的な依頼(「見出しを X に変更して」など)は、その変更への承認とみなされます。ユーザーが言及していないマークアップの書き換えや、まだ使用中のソースの削除など、それ以外の変更を行う前に、変更内容をユーザーに見せて承認を得てください。 - 公開中のページが、宣言済みのソースだけを読み取るようにします。 要素が宣言していないソース ID を読み取る HTML は、エラーを表示せずに空白でレンダリングされます。そのソースを読み取る HTML を書く前に、ソースを追加してください。ソースの削除や名前の変更は、公開中の HTML がそのソースを読み取らなくなってから行ってください。
- 再度書き込む前に、違反をすべて修正します。 書き込みが拒否されると、何も保存されず、すべての違反が一覧表示されます。すべてを一度に修正してから、再度書き込んでください。HTML がユーザーから提供されたものの場合は、違反内容とルールに従ったバージョンをユーザーに見せ、ユーザーが同意してから公開してください。
手順 — ページの作成
-
ルールを読みます。 ページのスタイルを設定する場合は、デザインシステムのカタログも読みます。
get_interface_html_guidelines get_interface_html_guidelines include_design_system=true -
名前が使用可能か確認します。 その名前のインターフェースがすでに存在する場合は、変更するか(次のセクションを参照)、別のインターフェースを作成するか、ユーザーに確認してください。
list_interfaces organization_uuid=<org_id> search_term=<name> -
データを選びます(ライブデータのないページでは省略)。候補となるリポジトリを一覧表示し、使用する各リポジトリのフィールドを一覧表示します。
list_interface_repos organization_id=<org_id> repo_name=<name_fragment> get_interface_repo_fields repo_uuid=<repo_uuid>ソースは
{"id", "name", "repoId", "fieldKeys", "filters"}です。repoIdはリポジトリのuuidです。fieldKeysには 1〜30 個のキーを指定します。キーにはカスタムフィールドのuuid(idではありません)、またはtitleのような組み込みキーを指定できます(組み込みキーは、ガイドラインのfilters.fixedColumnNamesに記載されています)。filtersは任意で、ガイドラインに記載されたフィルター形式に従います。idとnameは要素内で一意であり、HTML はidでソースを読み取ります。1 つの要素が保持できるソースは最大 10 個です。 -
ガイドラインに従って HTML を記述し、
dataPfyVocabularyの属性を使って各ソースをそのidでバインドします。 -
1 回の呼び出しで、ソースと HTML を含むインターフェースを作成します。
create_html_interface organization_uuid=<org_id> name="Open requests" html=<document> data_sources=[{"id": "requests", "name": "Open requests", "repoId": <repo_uuid>, "fieldKeys": ["title", <field_uuid>]}]結果には、新しいインターフェースの
uuidとページ ID、要素 ID が含まれます。インターフェースの名前とuuidをユーザーに伝えてください。
手順 — 既存のページを変更する
-
ページを探して読み取ります:
list_interfaces organization_uuid=<org_id> search_term=<name_fragment> get_interface_html interface_uuid=<interface_uuid>ユーザーが指定したページにある、
typeがcustomCodeの要素を使います。インターフェースに複数のページまたはcustomCode要素がある場合は、それらを一覧表示してどれを使うか尋ねます。pages[].uuidからpage_idを、pages[].elements[].uuidからelement_idを取得し、要素のdataSourcesから現在のソースを取得して、htmlDocument.contentHashを記録します。 -
新しい HTML でさらにデータが必要な場合は、ソースを追加します。ページでまだ読み取っていないフィールドの場合、ソースの
repoIdに対してget_interface_repo_fieldsを使い、その uuid を探します。現在のソースに新しいソースを加えた完全なリストを送信します。これは要素のソースを置き換えます。[]を送信すると、すべてのソースが削除されます。get_interface_htmlで読み取ったソースは、そのまま読み取り用として返せます。保持する各ソースのidは変更しないでください。set_interface_sources interface_uuid=<interface_uuid> page_id=<page_id> element_id=<element_id> data_sources=[...] -
読み取ったドキュメントを基に、新しい HTML を作成します。書き込む直前に、インターフェースを再度読み取ります。
contentHashが変わっていた場合は、誰かがページを編集しています。その場合は新しいドキュメントを基にやり直し、ユーザーに変更内容を提示します。write_interface_html page_id=<page_id> element_id=<element_id> content=<document> -
ユーザーが削除を希望する場合は、新しい HTML で読み取らなくなったソースを、完全なリストを送信する
set_interface_sourcesの追加呼び出しで削除または名前変更します。
成功条件
- 作成または書き込みが、違反なしで成功を返します。
get_interface_htmlに、新しいドキュメントと要素の想定どおりのdataSourcesが表示されます。- HTML が読み取るすべてのソース ID が、要素の
dataSourcesに含まれています。
失敗時の対応
- 作成は成功しましたが、書き込みに失敗しました。 空白のページがあるインターフェースが作成されています。エラーには、その
uuid、page_id、element_idが示されます。エラーを解決し(HTML が拒否された場合は修正し)、それらの ID を使ってwrite_interface_htmlを呼び出します。create_html_interfaceは再度呼び出さないでください。孤立したインターフェースがもう一つ作成されます。 - 作成の結果、書き込み先のページが返されませんでした。 インターフェースは存在している可能性があり、エラーにはその
uuidが示されます。それ以上の操作をする前にget_interface_htmlで確認し、作成をむやみに再試行しないでください。 - 作成に失敗し、エラーに
uuidがありません。 インターフェースは存在している可能性があります。再試行する前にlist_interfacesを名前で検索し、同じ名前の新しいインターフェースが見つからない場合に限り、再度作成します。 - 書き込み時に HTML が拒否されました。 何も保存されていません。ガイドラインに照らして、一覧に示された違反をすべて修正してから、再度書き込みます。
- 違反が一覧表示されずに書き込みに失敗しました。
get_interface_htmlでページを読み取り、何が保存されているかを確認してから、もう一度書き込みます。再度失敗した場合は停止してユーザーに伝えます。 - ページのセクションが空白で表示されます。 HTML が読み取るソース ID が要素に宣言されていないか、名前変更または削除されています。
get_interface_htmlの HTML とdataSourcesを比較して、ソースまたは HTML を修正します。 - インターフェースが重複しています。 両方の名前と uuid をユーザーに提示します。ユーザーの承認を得たうえで、追加のインターフェースの uuid を
portal_uuidとして指定し、確認を求めるdelete_portalで削除します。 list_interface_reposにリポジトリがありません。 未公開か、呼び出し元がその管理者ではありません。空のリストは、組織 ID が間違っていることも意味します。この一覧取得では、存在しない組織やインターフェースは報告されません。get_interface_htmlがインターフェースを拒否します。 グリッドレイアウトのポータルまたはサブポータルです。pipefy-portal-setupを使用してください。- ソースの更新内容が不明です。
set_interface_sourcesは、保存された内容ではなく送信されたソースを返します。get_interface_htmlでもう一度読み取ってください。
関連項目
pipefy-portal-setup:メインポータル、そのグリッドレイアウトのページと要素、およびサブポータル。pipefy-pipes-and-cards:ページが読み取るパイプとフィールドを作成します。