Site Activity
Query, analyze, and summarize Webflow site activity logs for enterprise sites. Provides natural-language querying of recent changes, filtered summaries by event type or user, and formatted reports for team sharing.
Important Note
ALWAYS use Webflow MCP tools for all operations:
- Use Webflow MCP's
data_sites_tool with action list_sites for listing available sites
- Use Webflow MCP's
data_sites_tool with action get_site for detailed site information
- Use Webflow MCP's
data_enterprise_tool with action list_site_activity_logs for retrieving activity log events
- Use Webflow MCP's
webflow_guide_tool to get best practices before starting
- DO NOT use any other tools or methods for Webflow operations
- All tool calls must include the required
context parameter (15-25 words, third-person perspective)
Enterprise Only: Activity logs are only available for sites on Enterprise hosting plans. If the tool returns an error, inform the user that this feature requires an Enterprise plan.
Tool Parameters for list_site_activity_logs:
site_id (required): The site's unique identifier
limit (optional): Maximum records to return (max 100)
offset (optional): Pagination offset for fetching beyond the first page
Instructions
Phase 1: Site Selection & Context
Identify target site: If the user does not provide a site ID, use data_sites_tool with action list_sites. Each site in the response has displayName, lastPublished, and lastUpdated.
Sort order:
- ⚠️ sites (unpublished changes) before ✅ sites (up to date)
- Within each group, most recently updated first (by
lastUpdated descending)
Truncation: Show the top 10 sites only. If there are more than 10 total, append a line …and N more sites. Reply "show all" to see the rest. below the list. When the user replies "show all" (or similar), re-present the full list in the same format.
Present the list in this exact format:
📋 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?
Format rules:
- Dates: abbreviated ("Mar 6", "Apr 14"). Add the year only if it isn't the current year.
- Use ⚠️ when
lastUpdated > lastPublished OR lastPublished is null; ✅ when lastUpdated <= lastPublished.
- When
lastPublished == lastUpdated, collapse the right-hand side to "published & updated ".
- Omit the "…and N more sites" line when the workspace has 10 or fewer sites.
- Do not omit the status flag or the dates — they are required for every site.
Fetch selected-site details: After the user selects a site (or when a site ID was provided up front), call data_sites_tool with action get_site once, for the selected site only, to retrieve fields not returned by list_sites — in particular:
- Custom domains
- Locale / localization settings
- Any additional site metadata needed for the analysis
lastPublished and lastUpdated are already known from step 1 (or from get_site if the user provided a site ID directly). Keep these in memory for the pre-publish filter in Phase 3.
Infer intent from the prompt (do not ask a follow-up question if the prompt is clear). Map the request to one of:
- Recent activity summary ("what changed this week?")
- Specific user's activity ("what did Sarah change?")
- Specific activity type ("any CMS changes recently?")
- Pre-publish review ("what's changed since last publish?")
- General overview (default when the prompt is ambiguous)
Only ask a clarifying question if the request is genuinely ambiguous (e.g., "show me activity" with no time window, user, or event type context).
Phase 2: Fetch Activity Logs
- Fetch activity logs: Use
list_site_activity_logs with the site ID
- Default to
limit: 100 (maximum per request) for comprehensive results
- The API returns events in reverse chronological order (newest first)
- Handle pagination: If the user needs older activity or the results suggest more data exists:
- Use
offset parameter to fetch additional pages
- Combine results across pages for analysis
- Warn the user if going back further than available data
Phase 3: Analysis & Summarization
Parse each activity log entry: Each event contains:
id: Unique event identifier
createdOn: Timestamp (ISO 8601)
lastUpdated: Last update timestamp
event: Event type string (see Event Types below)
user: Object with id and displayName (absent for system events like backups)
resourceOperation: The operation performed (CREATED, MODIFIED, DELETED)
resourceId: ID of the affected resource (when applicable)
resourceName: Human-readable name of the affected resource
payload: Additional event-specific details (see Payload Details below)
Categorize events into human-readable groups (41 event types):
Page Changes:
page_dom_modified — Page structure/element changes
page_created — New page creation
page_deleted — Page deletion
page_duplicated — Page duplication
page_renamed — Page rename
page_settings_modified — Page settings updates (SEO, slug, etc.)
page_custom_code_modified — Page-level custom code changes
page_settings_custom_code_modified — Page settings custom code changes
Style & Variable Changes:
styles_modified — Style/class changes
variable_modified — Single variable change
variables_modified — Multiple variable changes
Component Changes:
symbols_modified — Component/symbol created, modified, or deleted
Interactions:
ix2_modified_on_page — Interaction changes on a page
ix2_modified_on_component — Interaction changes on a component
ix2_modified_on_class — Interaction changes on a class
CMS Changes:
cms_item — Collection item created, modified, or deleted
cms_collection — Collection schema created, modified, or deleted
Site Management:
site_published — Site published
site_unpublished — Site unpublished
site_custom_code_modified — Site-level custom code changes
backup_created — Automatic or manual backup
backup_restored — Backup restored
Localization:
secondary_locale_page_content_modified — Localized page content changed
locale_added — New locale added
locale_removed — Locale removed
locale_enabled — Locale enabled
locale_disabled — Locale disabled
locale_display_name_updated — Locale display name changed
locale_subdirectory_updated — Locale subdirectory changed
locale_tag_updated — Locale tag changed
Branches:
branch_created — Branch created
branch_merged — Branch merged
branch_deleted — Branch deleted
branch_review_created — Branch review requested
branch_review_approved — Branch review approved
branch_review_canceled — Branch review canceled
Library:
library_shared — Library shared with other sites
library_unshared — Library unshared
library_installed — Library installed from another site
library_uninstalled — Library uninstalled
library_update_shared — Library update published
library_update_accepted — Library update accepted
Note: If an event type not listed above appears, categorize it as "Other" and display the raw event string.
Apply filters based on user's request:
- By event category (e.g., only CMS changes)
- By user (match on
user.displayName)
- By time window (filter
createdOn timestamps client-side)
- By resource (match on
resourceName)
- Pre-publish review: When the user wants to see changes since the last publish, use the site's
lastPublished timestamp (from Phase 1) and filter to events where createdOn > lastPublished. If lastPublished is null (never published), all events qualify as unpublished.
Generate insights (include in the Highlights section of the report):
- Most active user in the time period
- Event type distribution (which category dominated)
- Busiest day or hour
- Single-user concentration (flag when one person made 40%+ of changes)
- Unpublished changes (count of events where
createdOn > lastPublished)
Phase 4: Reporting
Generate summary report with these sections:
- Time range covered and total event count
- Breakdown by activity type
- Breakdown by user
- Highlights — call out patterns such as high-frequency changes to a single page/collection, multiple users editing the same resource, unpublished changes (since last publish), and system events vs. user-initiated changes
Answer the user's specific question: If the user asked something specific, lead with the direct answer before the structured report.
Pick the detail level from the prompt:
- "counts only" / "how many" / "just numbers" → Quick summary (counts by category only)
- default → Standard report (categorized events with user attribution — see Example 1)
- "walk me through" / "show every change" / "timeline" → Detailed report (chronological per-event view with payload)
- "share" / "export" / "for my team" / "summary to send" → Shareable/Export report (see Example 3)
The detail-level switch is always surfaced as one of the follow-up options in step 13 so the user can request a different level.
Always end every report with a follow-up options section. This is required, not optional. Use the exact format below, tailoring the numbered options to what's relevant for the query just answered:
---
Would you like to:
1. Filter by a specific user
2. Filter by activity type
3. Fetch older activity (pagination)
4. Switch to a quick summary (counts only) or a detailed view (per-event payloads)
5. Export as markdown or JSON
If the report was a shareable/export format (e.g., "summary I can share"), place this block outside the shareable content so the user can copy the report cleanly without the follow-up menu in it.
Event Payload Details
Different event types include different payload fields:
page_dom_modified:
pageTitle: Name of the modified page
pageId: ID of the modified page
count: Number of modifications in this batch
branchId/branchName: Branch context (null if main)
cms_item:
cmsCollectionId: ID of the parent collection
cmsCollectionName: Name of the parent collection
count: Number of items affected
name: Locale name (e.g., "English", "Spanish")
styles_modified:
selector: CSS selector (if applicable)
variant: Breakpoint/pseudo-class variant string
parentChain: Array of parent style names (combo class chain)
type: Style type (e.g., "class")
branchId/branchName: Branch context
symbols_modified:
branchId/branchName: Branch context
page_settings_modified:
pageTitle: Name of the modified page
branchId/branchName: Branch context
backup_created:
- No payload;
resourceName indicates backup type (e.g., "Automatic backup", "Maintenance backup")
- No
user field (system-initiated)
Examples
User prompt:
What happened on my site this week?
Step 1: Site Selection
📋 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?
Step 2: Activity Summary
📋 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
User prompt:
Show me CMS changes on site 6924868ede9d3fbbc3195eb0
Response:
📋 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
User prompt:
Give me a weekly summary I can share with my team for Acme Corp Website
(Naming the site inline skips Phase 1 step 1. If the user doesn't name a site, run the site-selection list first before producing this report.)
Response:
📋 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
Would you like to:
- Filter to a specific user's changes
- Break down unpublished changes in detail
- Regenerate with a different date range
- Switch to a quick summary (counts only) or detailed per-event view
- Export as JSON instead of markdown
Guidelines
Enterprise-Only Access
Plan Requirement:
API Constraints
Pagination:
- Maximum 100 events per request
- Use
offset to paginate: first call offset=0, second call offset=100, etc.
- 100 events typically covers approximately one week for an active enterprise site
- No native date filtering — all filtering must be done client-side after fetching
When to paginate:
- User asks for more than one week of activity
- User needs a complete picture and first page returns exactly 100 events
- Always tell the user how much data you have: "Showing the last 93 events (Apr 10–16)"
Rate awareness:
- Avoid unnecessary pagination — fetch only what is needed to answer the question
- If user asks "any publishes recently?" — 100 events is likely enough
- If user asks "full month of activity" — explain the limitation and paginate up to 300 events maximum
Error Handling
Common errors:
- 403 / Permission denied: Enterprise plan required — inform user clearly
- 404 / Site not found: Verify site ID, offer to list available sites
- Empty results: Site may have no recent activity — confirm with user and check site details
Graceful degradation:
- If site details fetch fails, still attempt activity logs
- If pagination fails mid-way, report what was successfully fetched
- Always show partial results rather than nothing
1---2name: webflow-mcp-site-activity3description: Query and summarize site activity logs for a Webflow enterprise site. Surfaces recent changes, identifies who made them, and generates human-readable activity reports. Use for site monitoring, change tracking, publish preparation, or weekly activity summaries. Enterprise plans only.4---5
6# Site Activity
7
8Query, analyze, and summarize Webflow site activity logs for enterprise sites. Provides natural-language querying of recent changes, filtered summaries by event type or user, and formatted reports for team sharing.
9
10## Important Note
11
12**ALWAYS use Webflow MCP tools for all operations:**
13- Use Webflow MCP's `data_sites_tool` with action `list_sites` for listing available sites
14- Use Webflow MCP's `data_sites_tool` with action `get_site` for detailed site information
15- Use Webflow MCP's `data_enterprise_tool` with action `list_site_activity_logs` for retrieving activity log events
16- Use Webflow MCP's `webflow_guide_tool` to get best practices before starting
17- DO NOT use any other tools or methods for Webflow operations
18- All tool calls must include the required `context` parameter (15-25 words, third-person perspective)
19
20**Enterprise Only:** Activity logs are only available for sites on Enterprise hosting plans. If the tool returns an error, inform the user that this feature requires an Enterprise plan.
21
22**Tool Parameters for `list_site_activity_logs`:**
23- `site_id` (required): The site's unique identifier
24- `limit` (optional): Maximum records to return (max 100)
25- `offset` (optional): Pagination offset for fetching beyond the first page
26
27## Instructions
28
29### Phase 1: Site Selection & Context
301. **Identify target site**: If the user does not provide a site ID, use `data_sites_tool` with action `list_sites`. Each site in the response has `displayName`, `lastPublished`, and `lastUpdated`.
31
32 **Sort order**:
33 1. ⚠️ sites (unpublished changes) before ✅ sites (up to date)
34 2. Within each group, most recently updated first (by `lastUpdated` descending)
35
36 **Truncation**: Show the top **10** sites only. If there are more than 10 total, append a line `…and N more sites. Reply "show all" to see the rest.` below the list. When the user replies "show all" (or similar), re-present the full list in the same format.
37
38 Present the list in this exact format:
39
40 ```
41 📋 Site Activity — Site Selection
42
43 Available Enterprise Sites:
44
45 1. <Site Name> ⚠️ — last published <short date>, updated <short date> (<N> days unpublished)
46 2. <Site Name> ✅ — published & updated <short date>
47 3. <Site Name> ⚠️ — never published, updated <short date>
48
49 …and 4 more sites. Reply "show all" to see the rest.
50
51 Which site would you like to review?
52 ```
53
54 Format rules:
55 - Dates: abbreviated ("Mar 6", "Apr 14"). Add the year only if it isn't the current year.
56 - Use ⚠️ when `lastUpdated > lastPublished` OR `lastPublished` is null; ✅ when `lastUpdated <= lastPublished`.
57 - When `lastPublished == lastUpdated`, collapse the right-hand side to "published & updated <date>".
58 - Omit the "…and N more sites" line when the workspace has 10 or fewer sites.
59 - Do not omit the status flag or the dates — they are required for every site.
602. **Fetch selected-site details**: After the user selects a site (or when a site ID was provided up front), call `data_sites_tool` with action `get_site` **once, for the selected site only**, to retrieve fields not returned by `list_sites` — in particular:
61 - Custom domains
62 - Locale / localization settings
63 - Any additional site metadata needed for the analysis
64
65 `lastPublished` and `lastUpdated` are already known from step 1 (or from `get_site` if the user provided a site ID directly). Keep these in memory for the pre-publish filter in Phase 3.
663. **Infer intent from the prompt** (do not ask a follow-up question if the prompt is clear). Map the request to one of:
67 - Recent activity summary ("what changed this week?")
68 - Specific user's activity ("what did Sarah change?")
69 - Specific activity type ("any CMS changes recently?")
70 - Pre-publish review ("what's changed since last publish?")
71 - General overview (default when the prompt is ambiguous)
72
73 Only ask a clarifying question if the request is genuinely ambiguous (e.g., "show me activity" with no time window, user, or event type context).
74
75### Phase 2: Fetch Activity Logs
764. **Fetch activity logs**: Use `list_site_activity_logs` with the site ID
77 - Default to `limit: 100` (maximum per request) for comprehensive results
78 - The API returns events in reverse chronological order (newest first)
795. **Handle pagination**: If the user needs older activity or the results suggest more data exists:
80 - Use `offset` parameter to fetch additional pages
81 - Combine results across pages for analysis
82 - Warn the user if going back further than available data
83
84### Phase 3: Analysis & Summarization
856. **Parse each activity log entry**: Each event contains:
86 - `id`: Unique event identifier
87 - `createdOn`: Timestamp (ISO 8601)
88 - `lastUpdated`: Last update timestamp
89 - `event`: Event type string (see Event Types below)
90 - `user`: Object with `id` and `displayName` (absent for system events like backups)
91 - `resourceOperation`: The operation performed (`CREATED`, `MODIFIED`, `DELETED`)
92 - `resourceId`: ID of the affected resource (when applicable)
93 - `resourceName`: Human-readable name of the affected resource
94 - `payload`: Additional event-specific details (see Payload Details below)
957. **Categorize events** into human-readable groups (41 event types):
96
97 **Page Changes:**
98 - `page_dom_modified` — Page structure/element changes
99 - `page_created` — New page creation
100 - `page_deleted` — Page deletion
101 - `page_duplicated` — Page duplication
102 - `page_renamed` — Page rename
103 - `page_settings_modified` — Page settings updates (SEO, slug, etc.)
104 - `page_custom_code_modified` — Page-level custom code changes
105 - `page_settings_custom_code_modified` — Page settings custom code changes
106
107 **Style & Variable Changes:**
108 - `styles_modified` — Style/class changes
109 - `variable_modified` — Single variable change
110 - `variables_modified` — Multiple variable changes
111
112 **Component Changes:**
113 - `symbols_modified` — Component/symbol created, modified, or deleted
114
115 **Interactions:**
116 - `ix2_modified_on_page` — Interaction changes on a page
117 - `ix2_modified_on_component` — Interaction changes on a component
118 - `ix2_modified_on_class` — Interaction changes on a class
119
120 **CMS Changes:**
121 - `cms_item` — Collection item created, modified, or deleted
122 - `cms_collection` — Collection schema created, modified, or deleted
123
124 **Site Management:**
125 - `site_published` — Site published
126 - `site_unpublished` — Site unpublished
127 - `site_custom_code_modified` — Site-level custom code changes
128 - `backup_created` — Automatic or manual backup
129 - `backup_restored` — Backup restored
130
131 **Localization:**
132 - `secondary_locale_page_content_modified` — Localized page content changed
133 - `locale_added` — New locale added
134 - `locale_removed` — Locale removed
135 - `locale_enabled` — Locale enabled
136 - `locale_disabled` — Locale disabled
137 - `locale_display_name_updated` — Locale display name changed
138 - `locale_subdirectory_updated` — Locale subdirectory changed
139 - `locale_tag_updated` — Locale tag changed
140
141 **Branches:**
142 - `branch_created` — Branch created
143 - `branch_merged` — Branch merged
144 - `branch_deleted` — Branch deleted
145 - `branch_review_created` — Branch review requested
146 - `branch_review_approved` — Branch review approved
147 - `branch_review_canceled` — Branch review canceled
148
149 **Library:**
150 - `library_shared` — Library shared with other sites
151 - `library_unshared` — Library unshared
152 - `library_installed` — Library installed from another site
153 - `library_uninstalled` — Library uninstalled
154 - `library_update_shared` — Library update published
155 - `library_update_accepted` — Library update accepted
156
157 Note: If an event type not listed above appears, categorize it as "Other" and display the raw `event` string.
1588. **Apply filters** based on user's request:
159 - By event category (e.g., only CMS changes)
160 - By user (match on `user.displayName`)
161 - By time window (filter `createdOn` timestamps client-side)
162 - By resource (match on `resourceName`)
163 - **Pre-publish review**: When the user wants to see changes since the last publish, use the site's `lastPublished` timestamp (from Phase 1) and filter to events where `createdOn > lastPublished`. If `lastPublished` is null (never published), all events qualify as unpublished.
1649. **Generate insights** (include in the Highlights section of the report):
165 - Most active user in the time period
166 - Event type distribution (which category dominated)
167 - Busiest day or hour
168 - Single-user concentration (flag when one person made 40%+ of changes)
169 - Unpublished changes (count of events where `createdOn > lastPublished`)
170
171### Phase 4: Reporting
17210. **Generate summary report** with these sections:
173 - Time range covered and total event count
174 - Breakdown by activity type
175 - Breakdown by user
176 - **Highlights** — call out patterns such as high-frequency changes to a single page/collection, multiple users editing the same resource, unpublished changes (since last publish), and system events vs. user-initiated changes
17711. **Answer the user's specific question**: If the user asked something specific, lead with the direct answer before the structured report.
17812. **Pick the detail level** from the prompt:
179 - "counts only" / "how many" / "just numbers" → **Quick summary** (counts by category only)
180 - default → **Standard report** (categorized events with user attribution — see Example 1)
181 - "walk me through" / "show every change" / "timeline" → **Detailed report** (chronological per-event view with payload)
182 - "share" / "export" / "for my team" / "summary to send" → **Shareable/Export report** (see Example 3)
183
184 The detail-level switch is always surfaced as one of the follow-up options in step 13 so the user can request a different level.
18513. **Always end every report with a follow-up options section.** This is required, not optional. Use the exact format below, tailoring the numbered options to what's relevant for the query just answered:
186
187 ```
188 ---
189
190 Would you like to:
191 1. Filter by a specific user
192 2. Filter by activity type
193 3. Fetch older activity (pagination)
194 4. Switch to a quick summary (counts only) or a detailed view (per-event payloads)
195 5. Export as markdown or JSON
196 ```
197
198 If the report was a shareable/export format (e.g., "summary I can share"), place this block **outside** the shareable content so the user can copy the report cleanly without the follow-up menu in it.
199
200## Event Payload Details
201
202Different event types include different payload fields:
203
204**`page_dom_modified`:**
205- `pageTitle`: Name of the modified page
206- `pageId`: ID of the modified page
207- `count`: Number of modifications in this batch
208- `branchId`/`branchName`: Branch context (null if main)
209
210**`cms_item`:**
211- `cmsCollectionId`: ID of the parent collection
212- `cmsCollectionName`: Name of the parent collection
213- `count`: Number of items affected
214- `name`: Locale name (e.g., "English", "Spanish")
215
216**`styles_modified`:**
217- `selector`: CSS selector (if applicable)
218- `variant`: Breakpoint/pseudo-class variant string
219- `parentChain`: Array of parent style names (combo class chain)
220- `type`: Style type (e.g., "class")
221- `branchId`/`branchName`: Branch context
222
223**`symbols_modified`:**
224- `branchId`/`branchName`: Branch context
225
226**`page_settings_modified`:**
227- `pageTitle`: Name of the modified page
228- `branchId`/`branchName`: Branch context
229
230**`backup_created`:**
231- No payload; `resourceName` indicates backup type (e.g., "Automatic backup", "Maintenance backup")
232- No `user` field (system-initiated)
233
234## Examples
235
236**User prompt:**
237```
238What happened on my site this week?
239```
240
241**Step 1: Site Selection**
242```
243📋 Site Activity — Site Selection
244
245Available Enterprise Sites:
246
2471. Acme Corp Website ⚠️ — last published Apr 14, updated Apr 16 (2 days unpublished)
2482. Acme Blog ✅ — published & updated Apr 10
249
250Which site would you like to review?
251```
252
253**Step 2: Activity Summary**
254```
255📋 Site Activity: Acme Corp Website
256 April 10–16, 2026 (93 events)
257
258**93 events this week from 3 team members. 28 are unpublished since the last publish on Apr 14.**
259
260---
261
262## Activity Breakdown
263
264📄 Page modifications 34 events
265🎨 Class changes 22 events
266📝 CMS updates 18 events
267🧩 Component changes 8 events
268🔤 Variable changes 5 events
269🚀 Publishes 3 events
270💾 Backups 2 events
271🌿 Branch activity 1 event
272
273---
274
275## Activity by User
276
277**Sarah Chen** — 42 events
278└── Page modifications (18), Class changes (15), CMS updates (9)
279
280**Alex Kim** — 31 events
281└── CMS updates (9), Page modifications (12), Component changes (8), Variables (2)
282
283**Jordan Lee** — 17 events
284└── Class changes (7), Page modifications (4), Publishes (3), Backups (2), Branch (1)
285
286**System** — 3 events
287└── Backups (auto)
288
289---
290
291## Highlights
292
293- ⚠️ **Unpublished changes**: 28 events since last publish (Apr 14)
294- 📊 **Busiest day**: April 15 (41 events)
295- 👤 **Most active**: Sarah Chen (45% of all activity)
296- 🧩 8 component changes by Alex Kim — may affect multiple pages
297
298---
299
300Would you like to:
3011. Filter by a specific user
3022. Filter by activity type
3033. See details for unpublished changes only
3044. Switch to a quick summary (counts only) or detailed view (per-event payloads)
3055. Fetch older activity
306```
307
308**User prompt:**
309```
310Show me CMS changes on site 6924868ede9d3fbbc3195eb0
311```
312
313**Response:**
314```
315📋 CMS Activity: Acme Corp Website
316 April 10–16, 2026 (18 CMS events)
317
318**18 CMS events from 2 users over 5 days. 3 changes are unpublished.**
319
320---
321
322## CMS Breakdown
323
324📝 Items modified 11 events
325➕ Items created 5 events
326📚 Collection changes 2 events
327
328---
329
330## Activity by User
331
332**Sarah Chen** — 10 events
333└── 2 items created, 7 items modified, 1 collection modified
334
335**Alex Kim** — 8 events
336└── 3 items created, 4 items modified, 1 bulk publish
337
338---
339
340## Highlights
341
342- ⚠️ **Unpublished**: 3 CMS changes since last publish (Apr 14)
343- 📊 **Busiest day**: April 15 (8 events)
344- 📚 **Schema changes**: 2 collection edits this week (review carefully before publish)
345
346---
347
348Would you like to:
3491. Filter to a specific collection
3502. Filter by user (Sarah or Alex)
3513. See only the unpublished CMS changes
3524. Switch to a timeline view (chronological per-event) or counts only
3535. Fetch older CMS activity
354```
355
356**User prompt:**
357```
358Give me a weekly summary I can share with my team for Acme Corp Website
359```
360
361(Naming the site inline skips Phase 1 step 1. If the user doesn't name a site, run the site-selection list first before producing this report.)
362
363**Response:**
364```
365📋 Weekly Site Activity Report
366 Acme Corp Website — Week of April 10–16, 2026
367
368---
369
370### Overview
371- **93 total changes** across 3 team members
372- **3 publishes** (Apr 10, Apr 12, Apr 14)
373- **28 unpublished changes** pending review
374- **Last publish:** April 14 at 18:30 UTC
375
376### What Changed
377- 34 page modifications across 8 pages
378- 22 class/style updates
379- 18 CMS content changes (5 new items, 11 edits, 2 schema changes)
380- 8 component updates
381- 5 variable changes
382
383### Team Activity
384| Team Member | Changes | Top Activity |
385|-------------|---------|-------------------------------|
386| Sarah Chen | 42 | Page edits, style updates |
387| Alex Kim | 31 | CMS content, components |
388| Jordan Lee | 17 | Styles, publishing, backups |
389
390### Action Items
391- ⚠️ 28 changes are unpublished — consider reviewing and publishing
392- 🧩 8 component changes may affect shared layouts — verify before publish
393- 💾 Last backup: April 14 — consider creating a fresh backup
394
395---
396Generated from Webflow Site Activity Log
397```
398
399Would you like to:
4001. Filter to a specific user's changes
4012. Break down unpublished changes in detail
4023. Regenerate with a different date range
4034. Switch to a quick summary (counts only) or detailed per-event view
4045. Export as JSON instead of markdown
405
406## Guidelines
407
408### Enterprise-Only Access
409
410**Plan Requirement:**
411- `list_site_activity_logs` is available only on Enterprise hosting plans
412- If the API returns a permissions error, clearly inform the user:
413 ```
414 ⚠️ Site Activity Logs require an Enterprise hosting plan.
415 This site does not appear to have Enterprise access.
416 ```
417- Do not retry on permissions errors — the issue is plan-level, not transient
418
419### API Constraints
420
421**Pagination:**
422- Maximum 100 events per request
423- Use `offset` to paginate: first call offset=0, second call offset=100, etc.
424- 100 events typically covers approximately one week for an active enterprise site
425- No native date filtering — all filtering must be done client-side after fetching
426
427**When to paginate:**
428- User asks for more than one week of activity
429- User needs a complete picture and first page returns exactly 100 events
430- Always tell the user how much data you have: "Showing the last 93 events (Apr 10–16)"
431
432**Rate awareness:**
433- Avoid unnecessary pagination — fetch only what is needed to answer the question
434- If user asks "any publishes recently?" — 100 events is likely enough
435- If user asks "full month of activity" — explain the limitation and paginate up to 300 events maximum
436
437### Error Handling
438
439**Common errors:**
440- **403 / Permission denied**: Enterprise plan required — inform user clearly
441- **404 / Site not found**: Verify site ID, offer to list available sites
442- **Empty results**: Site may have no recent activity — confirm with user and check site details
443
444**Graceful degradation:**
445- If site details fetch fails, still attempt activity logs
446- If pagination fails mid-way, report what was successfully fetched
447- Always show partial results rather than nothing