calendar Last updated: 14 October 2026
Data integration

ChatGPT Workspace Agents: Build a Weekly Marketing Report Agent with Windsor.ai

Try It Free

Connect your data in 1 min. Free forever plan

Got insights from this post? Give it a boost by sharing with others!

A ChatGPT workspace agent is an agent you build once in a ChatGPT Business, Enterprise or Edu workspace. It runs on request, on a schedule, in Slack or from an API call, and it uses the apps and MCP servers you add to it. With Windsor.ai added, it can read Google Ads, GA4, Meta Ads and 350+ other sources and write the same report every week.

To set one up, an admin adds Windsor.ai as a custom MCP plugin in the OpenAI Admin Console. You sign in to Windsor.ai, refresh the plugin’s tool list and add the plugin to the agent with read access only. Then you write the report instructions and add a schedule.

The Windsor.ai plugin in ChatGPT’s plugin directory works in ordinary chats. On 13 October 2026 it did not appear in the agent builder’s list of apps. For agents, add Windsor.ai as a custom MCP plugin instead.

  • You need a workspace admin. On Business plans, only admins and owners can turn on developer mode and create a custom MCP plugin.
  • Refresh the tool list after you sign in to Windsor.ai. Our plugin showed 0 tools until I did, and the agent builder would not add it.
  • The totals matched the source, with one exception. In two test runs the agent’s spend matched Windsor.ai to the cent. Its conversion count for the previous week was one lower than the source.

I built and ran this agent on 13 October 2026 in windsor.ai’s own ChatGPT Business workspace, on our Google Ads account.

What a workspace agent can do with marketing data

Part of the agent What it does and what to know
Apps Reads data in the tools you connect, and writes to them only if you allow it. One Windsor.ai plugin covers every source connected in your Windsor.ai account.
Schedule Runs the agent on the weekdays and at the time you choose. Scheduled runs appear in the agent’s Activity tab.
Channels ChatGPT, Slack, or an API trigger. Slack needs a shared (agent-owned) connection for every app.
Accounts Each person signs in with their own account, or the agent uses one shared account. OpenAI recommends a service account for the shared option.
Write actions Each write tool can be switched on or off for the agent. A reporting agent needs none of them.

Workspace agents are a different product from Agent Builder on OpenAI’s developer platform. OpenAI is shutting Agent Builder down on 30 November 2026.

Before you start

  • A ChatGPT Business, Enterprise or Edu workspace with workspace agents turned on. On Enterprise they are off until an admin enables them.
  • An admin or owner of that workspace for step 1.
  • A Windsor.ai account with your sources connected. A report on Google Ads alone uses one data source, which the free forever plan covers, with no credit card. A report that combines Google Ads with GA4 or Meta Ads needs more sources after the first 30 days: paid plans start at $19 a month (billed annually) for three sources, or $99 a month for seven. See Windsor.ai pricing.

Step 1: create the Windsor.ai MCP plugin

Open the OpenAI Admin Console at admin.openai.com and select your workspace. Go to Plugins, click Add and choose Create MCP plugin.

OpenAI Admin Console, Plugins page: the Add menu with Upload plugin, Create MCP plugin and Import marketplace

Fill in the form:

  • Custom name: Windsor.ai MCP (any name works; this is what the agent builder shows).
  • Connection: Server URL, https://mcp.windsor.ai/
  • Authentication: OAuth.

If the form shows Enable developer mode, click it. On Business plans each admin turns developer mode on for their own account. Read the risk notice, tick I understand and want to continue and click Create. When ChatGPT asks you to sign in to Windsor.ai, use the Windsor.ai account that holds the data the agent should read.

New custom plugin form in the OpenAI Admin Console with the name Windsor.ai MCP, server URL https://mcp.windsor.ai/ and OAuth authentication

Windsor.ai’s MCP server lists its tools only to a client that has signed in. Its OAuth setup issues refresh tokens, which keep the connection signed in after the first token expires.

Step 2: refresh the tool list

ChatGPT reads a custom plugin’s tool list and keeps a snapshot of it. In our test ChatGPT took the snapshot before the Windsor.ai sign-in, and the plugin listed 0 tools. When I asked the agent builder to add it, the builder answered that the plugin “exposes no available actions”.

To fix it, open ChatGPT and go to Settings, then Plugins, and select Windsor.ai MCP. The page shows the connected Windsor.ai account and OAuth as the authorization used.

ChatGPT Settings, Plugins: Windsor.ai MCP with a connected primary account, URL https://mcp.windsor.ai/ and OAuth authorization

Further down, under Manage app, click Refresh tools. After that the agent builder added the plugin at once.

Manage app section of the plugin settings with the Refresh tools button

ChatGPT does not update a custom plugin’s tools on its own. Refresh again when Windsor.ai adds new tools.

Step 3: create the agent and add Windsor.ai with read access

In ChatGPT, open Agents in the sidebar (when the sidebar is collapsed, it is under the … menu) and click Create. Start blank opens the builder, with a chat on the left and the agent’s settings on the right.

The custom plugin did not appear under Browse apps in our workspace. I added it through the builder chat with this message:

Add the workspace plugin "Windsor.ai MCP" to this agent as a tool, with read-only actions. Don't change anything else.

ChatGPT agent builder for the Weekly Google Ads Summary agent with Windsor.ai MCP under Apps and the instructions below

Click the Windsor.ai MCP chip under Apps to check two settings:

  • Which account the agent uses. With End-user account, each person who runs the agent signs in with their own Windsor.ai login. With Agent-owned account, everyone uses one connection. While the plugin is in developer mode, the builder used the admin’s own Windsor.ai connection as the agent-owned account. Anyone who runs the agent then reads data through that login. Share the agent only with people who may see that data.
  • Write actions. Windsor.ai’s write tools (Execute Action, Create Destination Task, Create Custom Field, Upload Files and Contact Windsor) were all switched off when I added the plugin with read-only actions. Keep them off for a reporting agent. Execute Action can pause campaigns and change budgets on Google Ads, Meta Ads and other ad platforms.

Windsor.ai MCP settings inside the agent: end-user or agent-owned account, action safety, and the list of write actions

Step 4: write the report instructions

Paste the instructions into the builder chat, or into the Instructions field. These are the instructions our agent runs, shortened:

Every run, use Windsor.ai to pull Google Ads data for the last full week (Monday to Sunday) and the week before, for every connected Google Ads account. First call the tool that lists connectors and accounts, and get valid field IDs before you request data.

Fields: date, account name, campaign, spend, impressions, clicks, conversions, conversion value.

Report in this order:
1. A headline with spend, conversions and CPA against the previous week, with % change.
2. The top 5 campaigns by spend, with the same metrics and their week-over-week change.
3. The 3 campaigns with the largest change in conversions, at any spend level.
4. Campaigns whose CPA rose more than 20% with at least 50 in spend, with one sentence on what changed.
5. Campaigns that spent with zero conversions.

Sum conversions from the raw rows before you calculate CPA. Leave ROAS out if conversion values are zero or look like placeholders. Use each account's currency and never add different currencies together. If a call fails or returns no rows, say so and stop. Use read actions only.

I added two of these lines after the first test run. That run listed only the top five campaigns by spend and did not mention a low-spend brand campaign that caused most of the week’s drop in cost per conversion. The instructions now ask for the largest changes in conversions at any spend level. The ROAS line is there because our account records conversion values as round placeholder amounts. On the second run the agent left ROAS out and said why.

Step 5: preview a run and check the numbers

Click Preview and send a short prompt such as “Run this week’s Google Ads summary.” Our agent called three Windsor.ai tools in order (get connectors, get fields, get data), and each run took a little over a minute.

Preview run of the workspace agent reading Windsor.ai MCP: calling get connectors, get fields and get data (account ID blurred)

The agent's weekly Google Ads summary with the two date ranges, the account currency and a note that ROAS was left out (account ID and headline figures blurred)

Check the agent’s first reports against the source before you schedule it. In both test runs, spend matched Windsor.ai to the cent for both weeks, and conversions matched for the current week. For the previous week the agent reported one conversion fewer than the source, which moved that week’s CPA by about half a percent. Google Ads also adds late conversions to past days. Compare each report with source data pulled at the same time.

Step 6: schedule the agent

Click Create to save the agent first; schedules run only on a saved agent. Then click Automations. Under Daily, pick the weekdays, a time and a time zone (the other option is Interval). Choose the channel, add optional instructions for the scheduled run and click Add automation. I set Monday at 9:00 AM on the ChatGPT channel. Scheduled runs appear in the agent’s Activity tab.

Automations dialog: Daily, Monday at 09:00 AM in Eastern European Time, ChatGPT channel

To post the report in Slack, add the ChatGPT Agents app to the Slack channel, then add a Slack channel to the agent under Channels. For Slack, every app on the agent must use an agent-owned connection. Keep the agent read-only and post to a channel that only your team can read. I did not test the Slack channel; these steps come from OpenAI’s help article on workspace agents.

Other reports to build the same way

Each of these is a separate agent with the same Windsor.ai plugin. The first needs three data sources; the other two need one each.

A cross-channel spend report for Monday morning:

Every Monday, pull last week's spend, clicks and conversions from Google Ads and Meta Ads, and sessions and key events by source from GA4, through Windsor.ai. Show one table per channel and a total row, each with the change against the week before. Flag any channel whose cost per conversion rose more than 20%.

Search Console pages that lost clicks:

Every Monday, pull clicks, impressions and average position by page from Search Console through Windsor.ai for the last 7 days and the 7 days before. List the 10 pages that lost the most clicks, with the queries that lost the most impressions on each page. Search Console data is 2 to 3 days behind, so state the latest date in the data.

Monthly budget pacing:

Every weekday, pull month-to-date spend by campaign from Google Ads through Windsor.ai. Compare it with an even daily pace for the month and list campaigns more than 15% above or below pace. Do not change any budget.

Conclusion

A workspace agent with Windsor.ai sends your team the same marketing report on a schedule. It takes an admin to create the custom MCP plugin, one refresh of the tool list after the Windsor.ai sign-in, and instructions that say exactly which numbers to report. Keep the write actions off and check the first few reports against the source before you share them.

To use Windsor.ai in ordinary ChatGPT chats, install the Windsor.ai plugin from the directory; the steps are in how to connect Google Ads to ChatGPT. Introducing Windsor MCP covers what the Windsor.ai MCP server can do in any client. For a report only you receive, a scheduled task in ChatGPT Work uses the Windsor.ai plugin directly, without the custom MCP plugin; Claude Cowork vs ChatGPT Work sets one up with the same weekly report.

🚀 Connect Google Ads, GA4, Meta Ads and 350+ sources to ChatGPT with Windsor.ai. Free forever plan, no credit card. Try Windsor.ai.

FAQs

Are ChatGPT workspace agents available on Plus or Pro?

No. Workspace agents are part of ChatGPT Business, Enterprise and Edu workspaces. On Enterprise they are off until an admin turns them on.

Tired of juggling fragmented data? Get started with Windsor.ai today to create a single source of truth

Let us help you automate data integration and AI-driven insights, so you can focus on what matters, growth strategy.
g logo
fb logo
big query data
youtube logo
power logo
looker logo