{"id":93706,"plugin_id":"plugin_asdk_app_694a52cfaa3c819192bea84eaa254968","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-13T00:08:59.614Z","digest":"b62107cf43b87578c00a765a0e04add2c277111567d48ecf44bc647fe9f18747","against":null,"payload":{"description":"Google Business Profile through Windsor.ai: location views, clicks, calls, direction requests and search keywords, reviews and ratings, local posts and photos, and confirmed changes; publish or update a local post, reply to a review, add a photo, update the description, website, phone numbers, categories, attributes, services, service area or address, and set regular hours, holiday hours or temporary closure. Use for questions about a business location on Google Search and Maps. Do not use for Google Ads, Search Console or GA4. Also use when the user asks how to connect Google Business Profile (Google My Business) to ChatGPT.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":385}],"name":"google-business-profile","skill_md_contents":"---\nname: google-business-profile\ndescription: \"Google Business Profile through Windsor.ai: location views, clicks, calls, direction requests and search keywords, reviews and ratings, local posts and photos, and confirmed changes; publish or update a local post, reply to a review, add a photo, update the description, website, phone numbers, categories, attributes, services, service area or address, and set regular hours, holiday hours or temporary closure. Use for questions about a business location on Google Search and Maps. Do not use for Google Ads, Search Console or GA4. Also use when the user asks how to connect Google Business Profile (Google My Business) to ChatGPT.\"\n---\n\nExplicit instructions from the user take priority over this skill.\n\n# Google Business Profile via Windsor.ai\n\nThe connector id is `google_my_business`. It covers the user's own Google Business Profile locations: performance, reviews, local posts and photos, and listing management. It has no ad or website search data; Google Ads and Search Console are separate connectors with their own skills.\n\nWrite actions today are `create_local_post`, `update_local_post`, `reply_to_review`, `upload_media`, `update_location`, `update_categories`, `update_attributes`, `update_service_items`, `update_service_area`, `update_address`, `set_regular_hours`, `set_special_hours` and `set_open_status`. The live set and each action's parameters are whatever `list_actions` returns. New posts follow the campaign-launch skill and review replies follow the campaign-management skill.\n\n## Reading\n1. Call `get_connectors` to pick the location; ask if several are connected.\n2. Call `get_fields` for `google_my_business` and use the exact ids it returns.\n3. Call `get_data` with the fields, the location and a date range.\n\nFields that are easy to misread:\n- `impressions` is Maps plus Search, desktop plus mobile; the split is in `impressions_desktop_maps`, `impressions_desktop_search`, `impressions_mobile_maps` and `impressions_mobile_search`. `clicks` is `call_clicks` plus `website_clicks`.\n- By default, review rows and local post rows cover only reviews and posts created in the requested range. Use a wide range to list older ones.\n- `review_average_rating` and `review_count` are limited to the range; `review_average_rating_total` and `review_total_count` are all-time.\n- `location_*` fields describe the listing's current state (address, categories, hours, attributes, services, service area).\n\n## Changing the listing\nEvery change follows read, propose, confirm, execute:\n1. Read the current value with `get_data` (the matching `location_*`, `post_*` or `review_*` fields).\n2. Call `list_actions` and build params from the schema.\n3. Show the current value and the new value side by side, and wait for an explicit yes.\n4. Call `execute_action` once and report the result. Google may review listing edits before they appear.\n\nActions that replace a whole set (resend everything the listing should keep):\n- `update_service_items` replaces all services; read `location_service_items` first.\n- `update_categories` sets the primary category and replaces every additional category (at most 9); omitting `additional_category_ids` removes them all. Read `location_primary_category_id` and `location_additional_categories` first.\n- `update_service_area` replaces all places (at most 20); read `location_service_area` first.\n- `set_regular_hours` replaces all weekly hours; a day with no period shows as closed. Read `location_regular_hours_periods` first.\n- `set_special_hours` replaces all special dates. Read `location_special_hours_periods` first and resend every upcoming exceptional date the listing should keep together with the new ones.\n- `update_attributes` is the exception: it changes only the attributes named.\n\nActions that can unpublish the listing:\n- `update_address`, and `update_service_area` with `hide_business_address=true`, can send the listing back into Google's verification, which may unpublish it until the business verifies again. They refuse to run unless `acknowledge_reverification_risk` is true. State this risk in the confirmation and set it only after the user approves that risk explicitly.\n- Run `update_address`, `update_service_area` and `update_location` with `validate_only=true` first when the user is unsure; success means Google accepted the request for validation, not that anything changed.\n- `update_address` replaces the whole address. Use `keep_map_pin=true` only when the business has not moved.\n- `update_categories` can also trigger re-verification in some cases; say so.\n\nOther notes:\n- `upload_media` with category COVER or PROFILE replaces the current cover or profile photo. Photos must be public JPG or PNG URLs, at least 250x250 px and 10 KB.\n- `update_location` changes the description (up to 750 characters), website and phone numbers. Additional phone numbers are kept unless `additional_phones` is sent; `[]` removes them.\n- `set_open_status` switches between OPEN and CLOSED_TEMPORARILY; it is reversible.\n- `reply_to_review` replaces an existing reply.\n- If write actions are not enabled for the account, send the user to https://onboard.windsor.ai/app/settings/account.\n\n## Reference real data\nOn an error (unknown field or location), call the relevant discovery tool and retry with correct values, or report the specific error. Never invent view counts, ratings, review text or listing details.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}