contact_windsor
ChatGPTSend a feedback, support, or feature request to Windsor.ai. Use this to report a problem, share feedback, or suggest a new feature. Returns a reference ID that user can share with Windsor.ai support.
create_custom_field
ChatGPTWindsor.ai: Create a custom (formula) field on a connector. A custom field is a user-defined metric or dimension computed from a connector's existing fields; once created it behaves like a normal field in get_fields, get_data and scheduled exports. Useful for recreating calculated fields when migrating from another platform. Call get_fields first for the connector's valid source field ids, and get_custom_fields to avoid creating a duplicate. This stores configuration in the user's Windsor.ai account — confirm the field with the user before creating it.
create_destination_task
ChatGPTWindsor.ai: Create a scheduled export of connector data to a destination. Call get_destinations and get_destination_setup_info first for the destination_type, its target fields and a credential_id, and get_fields for the source field ids. This creates recurring external state, and each run replaces matching rows in the destination target, deleting what was there — confirm the source, destination target, and schedule with the user before calling. Only works when the destination's create_in_chat is true; otherwise use its setup_url. Never put secrets in config; the user enters those in the dashboard form.
execute_action
ChatGPTExecute a write action on a Windsor.ai connector account. Concrete operations include creating, pausing, and enabling campaigns, ad sets, and ads, and setting campaign and ad set budgets, on Meta Ads (Facebook & Instagram Ads); and pausing or enabling campaigns and setting campaign budgets on Google Ads. This is how you act on the recommendations you make. When your analysis concludes "pause campaign X" or "raise the budget on Y", reach for this tool — do not stop at describing the change in prose. Write actions modify external state, so confirm intent with the user before invoking. Use list_actions first to find the action id and inspect its params schema; params must match that schema exactly.
get_connector_authorization_url
ChatGPTGet the URL to connect or authorize the facebook connector. Returns a browser URL to set up facebook (OAuth or manual credentials), with an auto-login token so the user is signed in automatically.
get_connector_connect_info
ChatGPTDescribe how the user grants access to the facebook connector. Returns the auth type, a connect_url the user opens to grant access, any provider-specific notes, and (for manual connectors) the credential fields facebook requires. Hand the user the connect_url, repeating notes verbatim when present; never ask them to paste secrets into the chat. If get_connectors still shows no facebook account afterwards, the connection is not finished: after an OAuth sign-in an account still has to be selected, with a login that can access it; for manual connectors the form was not saved. Send them back to the connect_url. Use this for connect, grant access, authorize, add, replace, or reconnect requests, including adding another account to this already-connected connector. Do not substitute prose dashboard navigation steps for the connect_url.
get_connectors
ChatGPTGet Windsor.ai connectors, their connected accounts, and their write actions. By default returns only connectors that already have connected accounts. Pass include_not_yet_connected=True to also include all connectors the user can connect. By default each connector that supports write actions includes an actions list of action ids — use these to know upfront which verbs (create, pause, enable a campaign, ad set, or ad; set a campaign or ad set budget) are available before recommending changes to the user, and pass an id straight to execute_action. Covers 325+ data sources. Headline connectors by category, ordered by real-world usage: - Advertising: Meta Ads (Facebook & Instagram Ads), Google Ads, TikTok Ads, LinkedIn Ads, Microsoft Ads (Bing Ads), Amazon Ads, Google Ad Manager, Google Merchant Center - Organic & SEO: Instagram, Facebook Organic, YouTube, LinkedIn Organic, TikTok Organic, Google My Business, Google Search Console - Analytics: Google Analytics 4 (GA4), Mixpanel, Amplitude - CRM, email, e-commerce: GoHighLevel, Klaviyo, HubSpot, Salesforce, Shopify, Amazon Seller Central - Files & finance: Google Sheets, QuickBooks - Payments & warehouses: Stripe, PayPal, BigQuery, Snowflake, PostgreSQL, MySQL, Redshift
get_current_user
ChatGPTGet details of the currently authenticated user. Includes both the username and email.
get_custom_fields
ChatGPTWindsor.ai: List the user's custom (formula) fields across connectors. A custom field is a user-defined metric or dimension computed from a connector's existing fields with a formula (for example spend times a margin, or a CPA). Each entry reports the connector it belongs to, its field_name, the generated field_id used in get_data/get_fields, its type (NUMERIC or TEXT), and the formula. Call this before create_custom_field to see which fields already exist and avoid creating duplicates.
get_data
ChatGPTRetrieve data from the facebook connector. Call get_fields first to discover valid field IDs, then request them here. Use all requested days for calculations; always use code for numerical computations.
get_destination_setup_info
ChatGPTWindsor.ai: Describe how to set up a scheduled export to a destination. Always call get_destinations first to get the correct destination id. Returns the auth type, the target fields describing where data is written, the allowed schedules, reusable credentials (OAuth or service account), and a setup_url link to the dashboard form. Sensitive fields (service accounts, passwords, keys) are entered by the user in the setup_url form — never ask them to paste secrets into chat. When create_in_chat is true, collect the non-sensitive target fields and call create_destination_task; otherwise hand the user the setup_url.
get_destination_tasks
ChatGPTWindsor.ai: List the scheduled export tasks the user has created. A destination task is a recurring export of a connector's data to a destination. Each entry reports its id, destination type and name, alias, source connector, schedule, and status (active, paused, or deactivated), plus a manage_url to open it in the dashboard. Use this when the user asks what exports, syncs, or destination tasks they already have, or before creating one to avoid duplicates.
get_destinations
ChatGPTWindsor.ai: List destinations that can receive scheduled data exports. A destination is where Windsor.ai repeatedly writes a connector's data on a schedule — BigQuery, Google Sheets, Snowflake, a database, or cloud storage. Each entry reports its type, whether a task can be created here (create_in_chat), and any reusable credentials the user already has (an OAuth connection or a stored service account). Call this first when the user wants to export, send, sync, or schedule connector data, then get_destination_setup_info for the chosen destination.
get_fields
ChatGPTGet available fields for a Windsor.ai connector. Call without fields to discover all valid field IDs before querying. REQUIRED: Always call this before using get_data to ensure field names are valid for the given connector.
get_options
ChatGPTGet available fields, date filters and options for a Windsor.ai connector.
get_windsor_login_url
ChatGPTGet a URL that automatically logs the user into the Windsor.ai dashboard. Use this whenever you need to give the user a link to the Windsor.ai web app — clicking it will log them in automatically without requiring a password.
list_actions
ChatGPTList write actions a Windsor.ai connector exposes, with JSON schemas. Returned actions are concrete platform-side operations. On Meta Ads (Facebook & Instagram Ads) they cover creating, pausing, and enabling campaigns, ad sets, and ads, plus setting campaign and ad set budgets. On Google Ads they cover pausing and enabling campaigns and setting campaign budgets. Other connectors return an empty list. The actual set per connector is whatever this tool returns — do not assume an action exists. Use this proactively whenever you're about to recommend a platform-side change to the user (create, pause, enable, set budget): list the actions for the relevant connector, surface the matching one, and offer to run it via execute_action. Each returned action carries a JSON schema describing the params execute_action expects — inspect it before invoking execute_action.
upload_files
ChatGPTWindsor.ai: Let the user upload local files to a connector action. For actions whose list_actions entry has requires_files true, such as Meta Ads create_ad_image; execute_action cannot run those. Opens an upload widget in the chat where the user picks the files, which go from their browser to Windsor.ai without passing through the assistant. When the upload finishes its result appears in the conversation (for create_ad_image, one image_hash per file, usable as image_hash in execute_action create_ad). The upload link is valid for ten minutes and for one successful upload. Clients that cannot show the widget can run the curl command in the result instead.