# Multi client social media reporting cockpit for agencies

> Pick a client and a date range and see every social profile's numbers on one screen, with period over period deltas saved automatically.

- Workflow type: app
- Services: Agorapulse, Google Sheets, Slack Bot
- Categories: Marketing, Operations
- Published: 2026-08-14

## What it does

- One screen per client showing every connected social profile's content, audience and community numbers for whatever date range you choose.
- Saves every pull as a dated snapshot, so month over month and quarter over quarter comparisons appear instantly and your history survives even after a profile is disconnected.
- A competitor tab benchmarks your Facebook Pages and Instagram business profiles against the competitors you track, labelled with the date that data was last refreshed.
- Export the current view to a Google Sheet for the client deck, or post the headline numbers straight to a Slack channel.

## What you'll need

- An Agorapulse account on a plan that includes API access, with each client set up as its own workspace
- A Google account, if you want to export a view into a spreadsheet
- A Slack workspace, if you want to post headline numbers to a channel

## Prompt

I run social media for several clients and I lose hours every reporting cycle logging into each workspace, screenshotting dashboards and copying numbers into spreadsheets. Build me an internal cockpit I can open mid month to answer "how is this client doing right now" for any date range I choose. The people using it are account managers at a social media agency, each responsible for a handful of clients.

The landing view is a client picker. Build it from Agorapulse Get Manager Organizations to find the organizations my API key can see, then Get Organization Workspaces for each organization, then Get Workspace Profiles for each workspace. Treat a workspace as a client. Use List Workspace Menu Groups to read the profile folders a workspace has defined, and group profiles on screen the same way they are grouped in Agorapulse. Show each client as a card with its name, the number of connected profiles and the networks those profiles cover, and let me search or filter the list when I have many clients.

Clicking a client opens the client page, which has a date range picker at the top. Default the range to the last full calendar month, and offer quick presets for last 7 days, last 30 days, last full quarter and a custom range. Every Agorapulse report call requires explicit since and until values as plain dates, so always resolve the picker to a concrete date pair before fetching.

The main tab combines Get Content Report, Get Audience Report and Get Community Management Report for the chosen dates, one call per profile. Show a summary strip across the top with the client's headline numbers rolled up across profiles, then a per profile breakdown covering content performance, audience growth and community management activity. Be honest in the roll up about which profiles contributed, because not every network returns every metric.

Agorapulse reports only ever return the window you ask for and there is no history endpoint, so the app has to keep its own history. Every time a report is pulled, save the result into the app's own storage as a dated snapshot keyed by profile, report type and the since and until window, along with the timestamp of the pull. Use those stored snapshots to render month over month and quarter over quarter deltas instantly instead of refetching, and to preserve reporting history even after a profile is disconnected from a workspace or a client leaves. If a requested window is already in storage, serve it from storage and give me an explicit refresh control rather than silently refetching.

A second tab covers competitors, built from Get Competitors and Get Competitor Report. These endpoints work only for Facebook Pages and Instagram business accounts, so only surface this tab for profiles of those types and say so clearly when a client has none. Competitor data in Agorapulse synchronizes once a day, so label the tab with the as of date of the underlying data rather than implying it is live.

From the client page I want an export button that pushes the current view into a Google Sheet, using Create Spreadsheet to make a spreadsheet named for the client and the date range and then Append Values to write the rows. Include the per profile numbers and the period over period deltas, because that sheet becomes the basis of the client deck.

I also want a share button that posts the headline numbers to a channel using the Slack Bot Send a Message action. Let me pick the channel and preview the message before it sends, and format it as a short readable summary naming the client and the date range rather than a dump of every metric.

Be careful with fan out. Agorapulse allows 500 requests per 30 minutes, and a client with many profiles multiplies quickly because each profile needs three separate report calls. Fetch profile reports with limited concurrency, show progress while a client page loads, reuse stored snapshots wherever possible, and handle a rate limited response by backing off and telling me what happened instead of failing silently. The report, organization, workspace and profile endpoints are not paginated, so a single call returns the full set for each.

## How to customize

- Change the default date range. It opens on the last full calendar month, but you can make it last 7 days, last quarter, or whatever your clients expect.
- Choose which metrics appear on the summary cards and in the export, so each client deck leads with the numbers that client cares about.
- Decide where the headline numbers post in Slack, whether that is one shared channel for the team or a separate channel per client.

## FAQ

### Can I compare one client against another?

Yes. The client picker lists every workspace you have access to, so you can jump between clients without logging in and out, and each client page shows the same metrics laid out the same way so the comparison is direct.

### Why does the competitor tab show an older date than the rest of the page?

Competitor data refreshes once a day rather than in real time, so the tab is labelled with the date the data is accurate as of. Everything else on the client page reflects the exact date range you picked.

### What happens to my reporting history if a client disconnects a profile?

Nothing is lost. Every pull is saved as a dated snapshot in the app's own storage, so past months stay available for comparison even after a profile is disconnected or a client leaves.

### Do I need a paid Agorapulse plan?

You need a plan that includes API access. If you do not see an API Keys section in your personal settings, your current plan does not include it and your Agorapulse account manager can enable it.

### Can I report on a custom period like a campaign flight?

Yes. Alongside the presets you can set any start and end date, so campaign flights, launch weeks and client specific reporting cycles all work.

Use this prompt in General Input: https://www.generalinput.com/prompts/multi-client-social-media-reporting-cockpit-for-agencies