Skill instructions
ga4-connect1.99 KB
View saved version →
---
name: ga4-connect
description: Connect, reconnect, or add Google Analytics 4 (GA4) properties to Windsor.ai and resolve which connected property a request means. Use when the user wants to connect a property, asks what is connected, or hits a permission error. Do not use for analysis or exports.
---
# Connect GA4 properties
Help the user connect, reconnect, or add a Google Analytics 4 property to Windsor.ai (connector id `googleanalytics4`), and resolve which connected property a request refers to.
## Stay in scope
- Use this skill when the user wants to connect a property, add another one, reconnect after a permission error, or asks which properties are connected.
- For analysis use $ga4-insights; for recurring exports use $ga4-export.
## Workflow
1. Call get_connectors with include_not_yet_connected=True to see whether `googleanalytics4` has connected properties.
2. For a connection, call get_connector_authorization_url for a ready-to-open setup link (Google sign-in), or get_connector_connect_info for the auth details. Hand the user the link and tell them to authorize with the Google account that has access to the property.
3. Never ask the user to paste tokens or passwords into the chat, and never describe manual dashboard navigation instead of giving the link.
4. After they finish, call get_connectors again and confirm the new property by name.
## Property resolution
- If a request names a property or site, match it to a connected account id. If several properties could match, ask which one before any read.
- A permission error on a read usually means the Google account lacks access to that property; reconnect through the same setup link with the right account.
## Support
- get_windsor_login_url gives an auto-login link into the Windsor.ai dashboard; get_current_user shows who is signed in; contact_windsor files a support or feature request. Never discuss plans or pricing.
## Answer with evidence
State which properties are connected, which are not, and the exact next step with its link.
Referenced files: 1 — file references are metadata, not package contents.
ga4-export1.89 KB
View saved version →
---
name: ga4-export
description: Set up and review recurring exports of the user's Google Analytics 4 (GA4) data to warehouses, databases, spreadsheets, or cloud storage through Windsor.ai (BigQuery, Snowflake, Google Sheets, PostgreSQL, S3, and more). Use for scheduled, daily, weekly, or automated exports and syncs. Do not use for a one-off answer.
---
# Export GA4 data on a schedule
Set up recurring exports of connected Google Analytics 4 data (connector id `googleanalytics4`) to a warehouse, database, spreadsheet, or cloud storage through Windsor.ai, for example daily sessions and conversions by channel to BigQuery, or a weekly landing-page report to Google Sheets.
## Stay in scope
- Use this skill for recurring, scheduled, daily, weekly, or automated exports and syncs, and for questions about existing export tasks.
- A one-off answer is $ga4-insights, not an export.
## Workflow
1. Call get_destination_tasks to see existing exports and avoid duplicates.
2. Call get_connectors to confirm the properties to export.
3. Call get_destinations to list destinations; note which have create_in_chat true and any reusable credentials.
4. Call get_destination_setup_info for the chosen destination to get its target fields, allowed schedules, and credential_id options.
5. Call get_fields for `googleanalytics4` to get the exact dimension and metric ids to export.
6. Confirm properties, fields, destination target, credential, and schedule with the user, then call create_destination_task once. If create_in_chat is false, hand the user the setup_url instead.
## Rules
- Prefer a rolling date_preset (for example last_7d) over fixed dates so each run stays fresh.
- Never put secrets in config; sensitive values are entered by the user in the setup_url form.
- Report the created task's id, schedule, and manage_url from the tool result.
## Hand-offs
- Reporting -> $ga4-insights. Connecting a property -> $ga4-connect.
Referenced files: 1 — file references are metadata, not package contents.
ga4-help1.77 KB
View saved version →
---
name: ga4-help
description: Explain what this Windsor.ai app for Google Analytics 4 covers (read-only website and app analytics for the user's own GA4 properties), what it does not (advertising cost or ROAS, property settings, other analytics platforms), and which skill handles a request. Use when the user asks what the app can do or asks for something outside its scope.
---
# What this app can do
This app reads report data for the user's own connected Google Analytics 4 properties through Windsor.ai (connector id `googleanalytics4`): sessions, users, new users, engagement rate, bounce rate, pageviews, average session duration, event count, conversions (key events), and revenue, broken down by date, default channel group, source and medium, campaign, landing page, device category, or country. It is read-only. It does not change property settings or create key events, has no advertising cost or ROAS data (that lives in the ad-platform listings such as Windsor.ai Google Ads), and does not read other analytics platforms.
## Route the request
- Reports, rankings, comparisons, trends -> $ga4-insights
- Connecting, reconnecting, adding a property, or asking what is connected -> $ga4-connect
- Recurring exports and syncs -> $ga4-export
- What the app covers and does not -> $ga4-help
## Answering "what can you do"
- Call get_connectors with include_not_yet_connected=True and answer from it: which properties are connected and which options exist. Do not list capabilities the tool result does not show.
- Reads are available on the free plan.
## Out of scope
- Data from other platforms: name the Windsor.ai listing that covers them instead of attempting the read.
- Generating content, general marketing advice unrelated to the connected properties, or anything about plans and pricing.
Referenced files: 1 — file references are metadata, not package contents.
ga4-insights3.3 KB
View saved version →
---
name: ga4-insights
description: Report, rank, compare, and trend the user's own Google Analytics 4 (GA4) website and app data through Windsor.ai - sessions, users, new users, engagement rate, bounce rate, pageviews, average session duration, event count, conversions (key events), and revenue, broken down by date, default channel group, source and medium, campaign, landing page, device category, or country. Use when the user asks how their site, app, traffic, channels, or conversions are doing. Read-only - do not use to change property settings, for advertising cost or ROAS, to connect a property, or to schedule exports.
---
# GA4 insights
Read live Google Analytics 4 report data for the user's connected properties through Windsor.ai and turn it into a clear report, ranking, comparison, or trend. The connector id is `googleanalytics4`. This app is read-only and has no advertising cost data.
## Resolve scope and time
- Call get_connectors first to see which properties are connected. If none is, hand off to $ga4-connect. If several properties match, ask which one.
- Read field ids from get_fields for `googleanalytics4`: GA4 splits into dimensions (date, sessionDefaultChannelGroup, source and medium, campaign, landing page, device category, country) and metrics (sessions, users, engagement rate, conversions, revenue). Use the exact ids returned, never the examples. Call get_options for date-filter columns and connector options.
- Use the date range the user gave. If none, use a sensible preset (last_30d, this_month, last_7d) and state which one you used. Append T to a preset to include today.
## Choose the smallest useful read
- Traffic overview or trend -> date plus sessions and users over the preset; report direction and magnitude.
- By channel -> sessionDefaultChannelGroup plus sessions and conversions; rank in the answer and name the metric used.
- Top source, campaign, or landing page -> that dimension plus the metric asked for, ranked. If "best" or "top" has no metric, ask which one.
- Period comparison -> two get_data calls with the same fields and different ranges; show absolute and relative change.
- Keep field sets small, request only the properties you need, and check for truncated or paginated results before claiming complete coverage.
## Accuracy guardrails
- GA4 "conversions" are key events. Cost per conversion and ROAS need ad spend, which this connector does not have; say so and point to the ad-platform listing instead of estimating.
- Sampling, thresholding, and the property time zone can shift numbers; when the range includes today or yesterday, say the data may still be incomplete.
- If a field the user wants is not in get_fields, say so rather than substituting a different metric.
- Public data about other websites is not available: this app reads only the user's connected properties.
## Answer with evidence
Lead with the requested result, then state the property, the time window, and the numbers behind the conclusion. Keep internal ids and raw JSON out of the answer unless the user asks for them.
## Route the request
- Reports, rankings, comparisons, trends -> $ga4-insights
- Connecting, reconnecting, adding a property, or asking what is connected -> $ga4-connect
- Recurring exports and syncs -> $ga4-export
- What the app covers and does not -> $ga4-help
Never offer plans, upgrades, or pricing.
Referenced files: 1 — file references are metadata, not package contents.