Early warning brief for your Sprout Social listening topics

Every weekday at 8am, get a short Slack brief on which of your tracked social topics are heating up, why it is happening, and what people are actually saying.

Agentic Task
Sprout SocialSlack BotLinearMarketingOperationsResearch & MonitoringNotifications & AlertsDaily Digests
PromptCreate

Every weekday at 8am in my timezone, build an early warning brief on my Sprout Social listening topics and post it to Slack before the team starts the day. Use a cron trigger, because Sprout Social does not send outgoing webhooks and its data has to be queried.

Start by working out which topics to watch. Use the Sprout Social List Listening Topics operation to pull the topics configured on my account. Keep the working set bounded to about ten topics so we stay comfortably inside Sprout's limit of 60 requests per minute. If I have named specific topics in the workflow settings, use only those.

For each topic, run Query Listening Topic Metrics twice over two different date ranges: once for today, and once for the seven days ending yesterday. Sprout filters use field.operator(value) syntax and date ranges use .in(start...end) with ISO 8601 values, so this genuinely is two separate queries rather than one call. Listening topic metrics returns its full result set with no paging, so there is nothing to paginate. From the seven day window, compute a trailing daily average for message volume, and the average share of messages that are negative.

Compare today against the trailing average for each topic. Treat it as a spike when today's volume is at least 50 percent above the trailing daily average, or when the negative share of sentiment is at least 10 percentage points above its trailing average. Ignore movement on very low volume topics, under about 20 messages a day, because percentages swing wildly on small numbers and will produce false alarms.

When a topic is flagged, use Query Listening Topic Messages for that topic over today's range to pull the specific posts driving the change, favouring the negative ones and the ones with the most engagement. Read them and work out in plain language what is actually going on, for example a product outage, a pricing complaint, a viral joke, a news mention, or a competitor campaign. Do not just restate the numbers back to me.

Post a single Slack message to my social channel using the Slack Bot Send a Message operation. Give each moved topic one short section containing the direction of travel (volume and negative share, today versus the trailing seven day average, with the percentage change), one sentence of plain language explanation of the likely reason, and two or three representative quotes with links to the original posts. Use Slack mrkdwn formatting, so *bold* for topic names and <url|text> for links. When nothing unusual happened, keep the entire message to a couple of lines saying all topics are within their normal range, and resist padding it out.

Only when a topic crosses the negative spike threshold, meaning its negative share is at least 10 percentage points above the trailing average and also above 25 percent in absolute terms, open a Linear issue in the team that owns social so the response is tracked rather than lost in the channel. Before creating anything, use Linear's List Issues or Search Issues to look for an issue that is still open for the same topic. Title issues with a consistent convention such as "Social listening spike: <topic name>" so they stay findable. If an open issue already exists for that topic, do not create a second one, and instead note in that topic's Slack section that an existing issue is already tracking it.

Give each Linear issue a description containing the numbers, the likely reason, and links to the driving posts, and set priority to high when the negative share is above 40 percent, otherwise normal. Link the new issue in the Slack section so the team can jump straight to it.

What does this prompt do?

  • Checks every social topic you track each weekday morning and compares today's volume and sentiment against the trailing seven day average.
  • Calls out only the topics that genuinely moved, so a quiet day is a two line message instead of a wall of numbers.
  • Explains the likely reason in plain language and includes two or three real quotes with links to the original posts.
  • Opens a tracked issue for your social team when negative chatter spikes, and never opens a second one for a topic that is already being handled.

What do I need to use this?

  • A Sprout Social account on the Advanced plan or higher, since social listening and outside access to your data are not included on the Standard and Professional plans.
  • At least one listening topic already set up and collecting data in Sprout Social.
  • A Slack workspace and the channel where you want the morning brief to land.
  • A Linear account with a team that owns social, so escalations have somewhere to go.

How can I customize it?

  • Change the timing. Weekdays at 8am is the default, but you can run it earlier, extend it to weekends, or add a second brief in the afternoon.
  • Tune the thresholds. Decide how far volume or negative sentiment has to move before a topic gets called out, and how bad it has to get before an issue is opened.
  • Pick the topics and the destinations. Narrow the brief to your most important topics, change the Slack channel, or point escalations at a different team.

FAQs

Do I need a particular Sprout Social plan for this?
Yes. Social listening and outside access to your listening data require the Advanced plan or higher. On Standard or Professional the brief will not be able to read your topics.
What happens on a normal day when nothing is wrong?
You get a short message saying every topic is within its usual range. The brief only runs long when something actually moved, which is what keeps it worth reading every morning.
Will it clutter our issue tracker with duplicates?
No. Before opening anything it looks for an issue that is still open for the same topic. If one exists it skips creating a new one and simply notes in Slack that the topic is already being tracked.
Can I track competitors and campaigns, not just our brand?
Yes. It works with any topic you already track in Sprout Social, so competitor names, campaign hashtags and broader category conversations are all handled the same way.
How many topics can it watch at once?
Around ten works best for a fast morning run. Sprout limits how quickly your data can be read, so keeping the list focused means the brief still arrives before your team starts.
Why compare against a seven day average instead of yesterday?
Single days are noisy. A trailing seven day average smooths out normal ups and downs so you only hear about moves that are genuinely unusual for that topic.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Replay failed SQS messages when a bug fix is merged

When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.

Amazon SQS
GitHub
Slack Bot
Agentic Task

Hear about the bad morning before your team does.

Set the brief up once and start every weekday knowing which conversations moved, why they moved, and which ones need a response.