site-activity について
WebflowのEnterpriseサイトのアクティビティログを分析するスキルです。時間、ユーザー、イベント種別、リソースで変更を絞り込み、Webflow MCPツールで取得したデータから要約やレポートを作成します。
主な機能
- 01サイトのアクティビティログ検索と絞り込み
- 02イベント種別やユーザー別の変更分類
- 03前回公開後の変更の特定
- 04要約、タイムライン、共有レポートの作成
- 05ページネーションによる過去ログ取得
活用シーン
- 011週間のサイト変更を要約
- 02特定ユーザーやCMSイベントを確認
- 03前回公開後の変更を公開前に確認
- 04チーム共有用のアクティビティレポート作成
MCP 対応
Webflowの操作には、サイト検索やアクティビティログ取得を含め、Webflow MCPツールを使用する必要があります。アクティビティログはEnterpriseホスティングのサイトでのみ利用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ webflow/ webflow-skills --skill site-activityインストール後、Claude Code で/site-activityを入力して読み込まれたか確認します。
詳細
サイトアクティビティ
エンタープライズサイトの Webflow サイトアクティビティログを検索、分析、要約します。最近の変更を自然言語で検索したり、イベントの種類やユーザーで絞り込んだ要約を作成したり、チームで共有できる形式のレポートを作成したりできます。
重要な注意事項
すべての操作で、必ず Webflow MCP ツールを使用してください。
- 利用可能なサイトの一覧表示には、Webflow MCP の
data_sites_toolのアクションlist_sitesを使用してください - サイトの詳細情報の取得には、Webflow MCP の
data_sites_toolのアクションget_siteを使用してください - アクティビティログイベントの取得には、Webflow MCP の
data_enterprise_toolのアクションlist_site_activity_logsを使用してください - 作業を開始する前に、ベストプラクティスを確認するために Webflow MCP の
webflow_guide_toolを使用してください - Webflow の操作に、ほかのツールや方法を使用しないでください
- すべてのツール呼び出しに、必須の
contextパラメーター(第三者の視点による15~25語)を含めてください
エンタープライズのみ: アクティビティログを利用できるのは、エンタープライズホスティングプランのサイトのみです。ツールがエラーを返した場合、この機能にはエンタープライズプランが必要であることをユーザーに伝えてください。
list_site_activity_logs のツールパラメーター:
site_id(必須):サイト固有の識別子limit(任意):取得するレコードの最大数(最大100件)offset(任意):1ページ目以降を取得するためのページネーションオフセット
手順
フェーズ 1:サイトの選択とコンテキスト
-
対象サイトを特定する:ユーザーがサイト ID を指定しない場合は、
data_sites_toolをlist_sitesアクションで使用します。レスポンス内の各サイトには、displayName、lastPublished、lastUpdatedが含まれます。並べ替え順:
- ✅ サイト(最新)よりも⚠️ サイト(未公開の変更)を先に表示
- 各グループ内では、更新日時が新しい順(
lastUpdatedの降順)
表示件数の上限:上位 10 件のサイトのみ表示します。合計が 10 件を超える場合は、リストの下に
…and N more sites. Reply "show all" to see the rest.の行を追加します。ユーザーが「show all」(または同様の表現)と返信したら、同じ形式で全リストを再表示します。以下の正確な形式でリストを提示します。
📋 Site Activity — Site Selection Available Enterprise Sites: 1. <Site Name> ⚠️ — last published <short date>, updated <short date> (<N> days unpublished) 2. <Site Name> ✅ — published & updated <short date> 3. <Site Name> ⚠️ — never published, updated <short date> …and 4 more sites. Reply "show all" to see the rest. Which site would you like to review?書式ルール:
- 日付は省略形にします(「Mar 6」「Apr 14」)。現在の年でない場合にのみ、年を追加します。
lastUpdated > lastPublishedまたはlastPublishedが null の場合は⚠️を使用し、lastUpdated <= lastPublishedの場合は✅を使用します。lastPublished == lastUpdatedの場合、右側を「published & updated 」にまとめます。- ワークスペース内のサイトが 10 件以下の場合は、「…and N more sites」の行を省略します。
- ステータス記号と日付は省略しないでください。すべてのサイトで必要です。
-
選択したサイトの詳細を取得する:ユーザーがサイトを選択した後(または最初からサイト ID が指定されている場合)は、
data_sites_toolをget_siteアクションで、選択したサイトに対してのみ 1 回呼び出し、list_sitesで返されないフィールドを取得します。特に次の項目が対象です。- カスタムドメイン
- ロケール/ローカライズ設定
- 分析に必要なその他のサイトメタデータ
lastPublishedとlastUpdatedはステップ 1 ですでに確認済みです(ユーザーがサイト ID を直接指定した場合はget_siteから取得します)。フェーズ 3 の公開前フィルター用に、これらをメモリに保持します。 -
プロンプトから意図を推測する(プロンプトが明確な場合、追加の質問はしません)。リクエストを次のいずれかに分類します。
- 最近のアクティビティの概要(「今週、何が変更されましたか?」)
- 特定ユーザーのアクティビティ(「Sarah は何を変更しましたか?」)
- 特定のアクティビティ種別(「最近、CMS に変更はありましたか?」)
- 公開前のレビュー(「前回の公開以降、何が変更されましたか?」)
- 全般的な概要(プロンプトが曖昧な場合の既定値)
リクエストが本当に曖昧な場合に限り、明確化の質問をします(例:期間、ユーザー、イベント種別の情報がない「アクティビティを表示して」)。
フェーズ 2:アクティビティログの取得
- アクティビティログを取得する:サイト ID を指定して
list_site_activity_logsを使用します。- 包括的な結果を得るため、
limit: 100(リクエストあたりの最大値)を既定値にします。 - API はイベントを新しい順に返します(新しいものが先頭)。
- 包括的な結果を得るため、
- ページネーションを処理する:ユーザーがより古いアクティビティを必要としている場合、または結果からさらにデータが存在すると判断できる場合:
offsetパラメーターを使用して、追加のページを取得します。- 分析用に各ページの結果を結合します。
- 利用可能なデータの範囲を超えてさかのぼる場合は、ユーザーに警告します。
フェーズ 3:分析と要約
-
各アクティビティログのエントリを解析します:各イベントには次の情報が含まれます。
id:一意のイベント識別子createdOn:タイムスタンプ(ISO 8601)lastUpdated:最終更新日時event:イベントタイプを示す文字列(下記のイベントタイプを参照)user:idとdisplayNameを含むオブジェクト(バックアップなどのシステムイベントではありません)resourceOperation:実行された操作(CREATED、MODIFIED、DELETED)resourceId:影響を受けたリソースの ID(該当する場合)resourceName:影響を受けたリソースの人が読める名前payload:イベント固有の追加情報(下記のペイロードの詳細を参照)
-
イベントを分類します(イベントタイプは 41 種類です)。
ページの変更:
page_dom_modified— ページの構造/要素の変更page_created— 新しいページの作成page_deleted— ページの削除page_duplicated— ページの複製page_renamed— ページ名の変更page_settings_modified— ページ設定の更新(SEO、スラッグなど)page_custom_code_modified— ページ単位のカスタムコードの変更page_settings_custom_code_modified— ページ設定のカスタムコードの変更
スタイルと変数の変更:
styles_modified— スタイル/クラスの変更variable_modified— 単一の変数の変更variables_modified— 複数の変数の変更
コンポーネントの変更:
symbols_modified— コンポーネント/シンボルの作成、変更、削除
インタラクション:
ix2_modified_on_page— ページ上のインタラクションの変更ix2_modified_on_component— コンポーネント上のインタラクションの変更ix2_modified_on_class— クラス上のインタラクションの変更
CMS の変更:
cms_item— コレクションアイテムの作成、変更、削除cms_collection— コレクションスキーマの作成、変更、削除
サイト管理:
site_published— サイトの公開site_unpublished— サイトの公開解除site_custom_code_modified— サイト単位のカスタムコードの変更backup_created— 自動または手動のバックアップbackup_restored— バックアップの復元
ローカライズ:
secondary_locale_page_content_modified— ローカライズされたページコンテンツの変更locale_added— 新しいロケールの追加locale_removed— ロケールの削除locale_enabled— ロケールの有効化locale_disabled— ロケールの無効化locale_display_name_updated— ロケールの表示名の変更locale_subdirectory_updated— ロケールのサブディレクトリの変更locale_tag_updated— ロケールタグの変更
ブランチ:
branch_created— ブランチの作成branch_merged— ブランチのマージbranch_deleted— ブランチの削除branch_review_created— ブランチレビューのリクエストbranch_review_approved— ブランチレビューの承認branch_review_canceled— ブランチレビューのキャンセル
ライブラリ:
library_shared— ライブラリを他のサイトと共有library_unshared— ライブラリの共有解除library_installed— 別のサイトからライブラリをインストールlibrary_uninstalled— ライブラリのアンインストールlibrary_update_shared— ライブラリの更新を公開library_update_accepted— ライブラリの更新を承認 注:上記に記載されていないイベントタイプが表示された場合は、「その他」に分類し、eventの生の文字列を表示してください。
-
ユーザーのリクエストに基づいてフィルターを適用します。
- イベントカテゴリ別(例:CMS の変更のみ)
- ユーザー別(
user.displayNameで照合) - 期間別(クライアント側で
createdOnのタイムスタンプをフィルター) - リソース別(
resourceNameで照合) - 公開前レビュー:ユーザーが前回の公開以降の変更を確認したい場合は、サイトの
lastPublishedタイムスタンプ(フェーズ 1 で取得)を使用し、createdOn > lastPublishedのイベントに絞り込みます。lastPublishedが null(未公開)の場合は、すべてのイベントが未公開として扱われます。
-
インサイトを生成します(レポートの「ハイライト」セクションに含めます)。
- 対象期間内で最も活発だったユーザー
- イベントタイプの分布(どのカテゴリが最多だったか)
- 最も忙しかった曜日または時間帯
- 1 人のユーザーへの集中度(1 人が変更の 40% 以上を行った場合に指摘)
- 未公開の変更(
createdOn > lastPublishedであるイベントの件数)
フェーズ 4:レポート
-
以下のセクションを含む要約レポートを生成します。
- 対象期間とイベントの合計件数
- アクティビティタイプ別の内訳
- ユーザー別の内訳
- ハイライト — 1 つのページ/コレクションへの頻繁な変更、複数のユーザーが同じリソースを編集した状況、未公開の変更(前回の公開以降)、システムイベントとユーザーによる変更などの傾向を取り上げます
-
ユーザーの具体的な質問に回答します。具体的な質問がある場合は、構成されたレポートの前に、直接的な回答を提示してください。
-
プロンプトから詳細度を選択します。
- 「件数のみ」/「いくつ」/「数字だけ」→ クイック要約(カテゴリ別の件数のみ)
- デフォルト → 標準レポート(ユーザー情報を含むカテゴリ別イベント — 例 1 を参照)
- 「順を追って説明」/「すべての変更を表示」/「タイムライン」→ 詳細レポート(ペイロードを含む、イベントごとの時系列表示)
- 「共有」/「エクスポート」/「チーム向け」/「送信用の要約」→ 共有/エクスポート用レポート(例 3 を参照)
詳細度の切り替えは、ステップ 13 のフォローアップ項目のいずれかとして必ず提示し、ユーザーが別の詳細度をリクエストできるようにします。
-
すべてのレポートの最後には、必ずフォローアップ項目のセクションを付けます。 これは必須です。以下の正確な形式を使用し、回答したクエリに関連する選択肢に合わせて番号付き項目を調整してください。
--- 次の操作を行いますか? 1. 特定のユーザーで絞り込む 2. アクティビティタイプで絞り込む 3. 古いアクティビティを取得する(ページネーション) 4. クイック要約(件数のみ)または詳細表示(イベントごとのペイロード)に切り替える 5. Markdown または JSON としてエクスポートするレポートが共有/エクスポート形式(例:「共有できる要約」)の場合は、ユーザーがフォローアップメニューを含めずにレポートをそのままコピーできるよう、このブロックを共有コンテンツの外側に配置してください。
イベントペイロードの詳細
イベントタイプによって、含まれるペイロードフィールドが異なります。
page_dom_modified:
pageTitle:変更されたページの名前pageId:変更されたページの IDcount:このバッチでの変更数branchId/branchName:ブランチのコンテキスト(メインブランチの場合は null)
cms_item:
cmsCollectionId:親コレクションの IDcmsCollectionName:親コレクションの名前count:影響を受けたアイテム数name:ロケール名(例:「英語」、「スペイン語」)
styles_modified:
selector:CSS セレクター(該当する場合)variant:ブレークポイント/疑似クラスのバリアント文字列parentChain:親スタイル名の配列(コンボクラスの連鎖)type:スタイルタイプ(例:「クラス」)branchId/branchName:ブランチのコンテキスト
symbols_modified:
branchId/branchName:ブランチのコンテキスト
page_settings_modified:
pageTitle:変更されたページの名前branchId/branchName:ブランチのコンテキスト
backup_created:
- ペイロードなし。
resourceNameはバックアップの種類を示します(例:「自動バックアップ」、「メンテナンスバックアップ」) userフィールドなし(システムによる開始)
例
ユーザープロンプト:
What happened on my site this week?
ステップ 1:サイトの選択
📋 Site Activity — Site Selection
Available Enterprise Sites:
1. Acme Corp Website ⚠️ — last published Apr 14, updated Apr 16 (2 days unpublished)
2. Acme Blog ✅ — published & updated Apr 10
Which site would you like to review?
ステップ 2:アクティビティの概要
📋 Site Activity: Acme Corp Website
April 10–16, 2026 (93 events)
**93 events this week from 3 team members. 28 are unpublished since the last publish on Apr 14.**
---
## Activity Breakdown
📄 Page modifications 34 events
🎨 Class changes 22 events
📝 CMS updates 18 events
🧩 Component changes 8 events
🔤 Variable changes 5 events
🚀 Publishes 3 events
💾 Backups 2 events
🌿 Branch activity 1 event
---
## Activity by User
**Sarah Chen** — 42 events
└── Page modifications (18), Class changes (15), CMS updates (9)
**Alex Kim** — 31 events
└── CMS updates (9), Page modifications (12), Component changes (8), Variables (2)
**Jordan Lee** — 17 events
└── Class changes (7), Page modifications (4), Publishes (3), Backups (2), Branch (1)
**System** — 3 events
└── Backups (auto)
---
## Highlights
- ⚠️ **Unpublished changes**: 28 events since last publish (Apr 14)
- 📊 **Busiest day**: April 15 (41 events)
- 👤 **Most active**: Sarah Chen (45% of all activity)
- 🧩 8 component changes by Alex Kim — may affect multiple pages
---
Would you like to:
1. Filter by a specific user
2. Filter by activity type
3. See details for unpublished changes only
4. Switch to a quick summary (counts only) or detailed view (per-event payloads)
5. Fetch older activity
ユーザープロンプト:
Show me CMS changes on site 6924868ede9d3fbbc3195eb0
応答:
📋 CMS Activity: Acme Corp Website
April 10–16, 2026 (18 CMS events)
**18 CMS events from 2 users over 5 days. 3 changes are unpublished.**
---
## CMS Breakdown
📝 Items modified 11 events
➕ Items created 5 events
📚 Collection changes 2 events
---
## Activity by User
**Sarah Chen** — 10 events
└── 2 items created, 7 items modified, 1 collection modified
**Alex Kim** — 8 events
└── 3 items created, 4 items modified, 1 bulk publish
---
## Highlights
- ⚠️ **Unpublished**: 3 CMS changes since last publish (Apr 14)
- 📊 **Busiest day**: April 15 (8 events)
- 📚 **Schema changes**: 2 collection edits this week (review carefully before publish)
---
Would you like to:
1. Filter to a specific collection
2. Filter by user (Sarah or Alex)
3. See only the unpublished CMS changes
4. Switch to a timeline view (chronological per-event) or counts only
5. Fetch older CMS activity
ユーザープロンプト:
Give me a weekly summary I can share with my team for Acme Corp Website
(サイト名をインラインで指定すると、フェーズ 1 のステップ 1 は省略されます。ユーザーがサイト名を指定しない場合は、このレポートを作成する前に、まずサイト選択リストを実行してください。)
応答:
📋 Weekly Site Activity Report
Acme Corp Website — Week of April 10–16, 2026
---
### Overview
- **93 total changes** across 3 team members
- **3 publishes** (Apr 10, Apr 12, Apr 14)
- **28 unpublished changes** pending review
- **Last publish:** April 14 at 18:30 UTC
### What Changed
- 34 page modifications across 8 pages
- 22 class/style updates
- 18 CMS content changes (5 new items, 11 edits, 2 schema changes)
- 8 component updates
- 5 variable changes
### Team Activity
| Team Member | Changes | Top Activity |
|-------------|---------|-------------------------------|
| Sarah Chen | 42 | Page edits, style updates |
| Alex Kim | 31 | CMS content, components |
| Jordan Lee | 17 | Styles, publishing, backups |
### Action Items
- ⚠️ 28 changes are unpublished — consider reviewing and publishing
- 🧩 8 component changes may affect shared layouts — verify before publish
- 💾 Last backup: April 14 — consider creating a fresh backup
---
Generated from Webflow Site Activity Log
次の操作を選択できます:
- 特定のユーザーの変更に絞り込む
- 未公開の変更を詳しく分析する
- 期間を変更して再生成する
- クイックサマリー(件数のみ)またはイベントごとの詳細表示に切り替える
- Markdown ではなく JSON としてエクスポートする
ガイドライン
エンタープライズ限定のアクセス
プラン要件:
list_site_activity_logsはエンタープライズホスティングプランでのみ利用できます- API が権限エラーを返した場合は、ユーザーに明確に伝えてください:
⚠️ Site Activity Logs require an Enterprise hosting plan. This site does not appear to have Enterprise access. - 権限エラーの場合は再試行しないでください。問題は一時的なものではなく、プランに起因するものです
API の制約
ページネーション:
- 1 回のリクエストで取得できるイベントは最大 100 件です
- ページネーションには
offsetを使用します。最初の呼び出しは offset=0、2 回目は offset=100 のように指定します - アクティブなエンタープライズサイトでは、通常 100 件のイベントで約 1 週間分をカバーします
- ネイティブの日付フィルタリング機能はありません。取得後、すべてのフィルタリングをクライアント側で行う必要があります
ページネーションを行う場合:
- ユーザーが 1 週間を超える期間のアクティビティを求めている場合
- ユーザーが全体像を把握する必要があり、最初のページでちょうど 100 件のイベントが返された場合
- 取得したデータ量を必ずユーザーに伝えてください:「直近 93 件のイベントを表示しています(4 月 10~16 日)」
レートへの配慮:
- 不要なページネーションは避け、質問への回答に必要な分だけを取得してください
- ユーザーが「最近公開されたものはありますか?」と尋ねた場合は、100 件で十分な可能性があります
- ユーザーが「1 か月分のアクティビティすべて」を求めた場合は、制約を説明し、最大 300 件までページネーションを行ってください
エラー処理
よくあるエラー:
- 403 / 権限が拒否されました:エンタープライズプランが必要です。ユーザーに明確に伝えてください
- 404 / サイトが見つかりません:サイト ID を確認し、利用可能なサイトの一覧表示を提案してください
- 結果が空:サイトに最近のアクティビティがない可能性があります。ユーザーに確認し、サイトの詳細を調べてください
適切な縮退動作:
- サイト詳細の取得に失敗しても、アクティビティログの取得を試みてください
- ページネーションが途中で失敗した場合は、正常に取得できた内容を報告してください
- 何も表示しないのではなく、必ず部分的な結果を表示してください