Multi client social media reporting cockpit for agencies

By General Input

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

Integrations

  • Agorapulse
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • Marketing
  • Operations

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board