Monthly social media report for every Metricool brand
On the first Monday of each month, every brand in your Metricool account gets a written performance report, emailed straight to the client.
On the first Monday of every month at 8am, build and send a client-ready social media performance report for each brand in my Metricool account. Use a cron trigger. If the schedule cannot express "first Monday of the month" directly, run every Monday at 8am and stop immediately unless the day of the month is 7 or lower.
Start with Metricool's Get Admin Simple Profiles to list every brand on my account. Metricool is brand scoped, so hold on to the numeric blogId for each brand and pass it with every stats call that follows. Work through the brands one at a time.
For each brand, set the reporting period to the previous full calendar month, from the 1st to the last day. Pull Get Stats Instagram Posts, Get Stats Instagram Reels, Get Stats Instagram Stories and Get Stats Facebook Posts for that period, and pull follower demographics with Get Stats City Provider and Get Stats Gender Provider. Then pull the same four post level stats for the month before that, so any growth claim is measured against a real baseline instead of guessed.
Write a narrative per brand in plain English. This is the point of the workflow: the value is the written analysis, not a table of numbers. Cover what grew and by how much against the previous month, the three best performing posts across all formats with a short explanation of why each one worked looking at format, subject, hook and publish time, which format underperformed and the likely reason, a one or two line audience note drawn from the city and gender data, and two concrete recommendations for next month that follow from this brand's own numbers rather than generic social media advice.
Stay honest with the data. Only cite numbers that actually came back. If a brand has no Instagram or no Facebook connected, skip that section and say so in one line rather than inventing figures. If a brand returned no activity at all for the month, do not email the client and flag the brand in the internal summary instead.
Let me set two inputs before the run. First, a brand to recipient mapping: for each brand name, the client contact email the report goes to, plus an optional cc address for the account manager. Second, a tone setting with two options, formal client facing or internal shorthand, which changes how the narrative is written without changing what it covers.
Send each brand's report with Gmail Send a Message to that brand's mapped contact, using a subject like "Northlight Coffee, social performance for March 2026". Put the narrative in the body with a compact block of headline figures underneath it. If a brand has no mapped recipient, send nothing for that brand and record it as needing a contact.
When every brand is done, post one short internal summary to our agency channel with Slack Send a Message. Give one line per brand with the headline of the month and whether the report went out, then a short list of any brands that were skipped, had no recipient mapped, or need someone to look at them before the client asks.
Example output
What does this prompt do?
- Pulls last month's Instagram post, reel and story results plus Facebook page results for every brand in your Metricool account.
- Writes a plain-English review per brand: what grew, the three best posts and why they worked, the format that fell flat, and two things to try next month.
- Emails each brand's report to the client contact you mapped to it, so nobody spends the first week of the month copying numbers between accounts.
- Drops a short internal roundup into your agency Slack channel so the team sees every client's month at a glance.
What do I need to use this?
- A Metricool account with each client set up as its own brand. Metricool only issues the access key on its higher tier plans.
- Instagram and Facebook profiles connected to those brands inside Metricool.
- A Gmail account to send the client reports from.
- A Slack workspace and a channel for the internal roundup.
- The client contact email you want each brand's report sent to.
How can I customize it?
- Change the timing: first Monday of the month, the 1st of the month, or every fortnight if a client wants faster feedback.
- Switch the tone between polished client-facing writing and blunt internal shorthand.
- Edit the brand-to-recipient list to add new clients, change contacts, or copy in the account manager.
- Add or remove sections, for example include the audience location and gender note only for the brands that care about it.
FAQs
What if a client only uses Instagram and not Facebook?
Will it write something flattering even if the month was quiet?
Can each client get their own email address?
Do I need a paid Metricool plan?
Can I read the reports before the client does?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Every Thursday, rank your team's upcoming flights by how likely they are to run late, and email the fixes while changes are still cheap.
Each month, spot the saved cards about to expire, email the customers still on recurring billing, and rank the revenue at risk in Slack.
Stop rebuilding the same client report every month.
Your monthly reporting block becomes one scheduled run that pulls the numbers, writes the analysis and sends it to each client.