Daily signup digest in Slack

Get a written read on yesterday's new signups posted to Slack every weekday at 9am, with the headline number, trend, and what changed.

Agentic Task
PostgreSQLSlackOperationsProductDaily DigestsAI Reports
PromptCreate

Every weekday at 9:00 AM Eastern Time, run a daily signup digest for me and post it to Slack. The goal is a short, qualitative read on yesterday's new signups, not a raw numbers dump. The value of this workflow is the written interpretation on top of the numbers.

Trigger: cron, every weekday (Monday through Friday) at 09:00 America/New_York.

Step 1. Run a PostgreSQL Custom Query against my users table. I will plug in the exact table name, the signup timestamp column, the plan tier column, the acquisition source column, and the country column when I configure the workflow, so write the SQL with clearly labeled placeholders for those fields. The query should return: (a) the total count of new signups in the last 24 hours, (b) yesterday's signup count broken out by plan tier, by acquisition source, and by country, and (c) daily signup counts for each of the previous 7 days so a rolling 7-day average can be computed and compared against yesterday's number.

Step 2. Write a short narrative summary in plain English based on the query results. The structure should be: a single big headline number at the top showing total signups in the last 24 hours and how that compares to the 7-day average (e.g. up 18% vs average, down 30%, in line). Below the headline, use bullet points to call out what's up, what's down, and anything anomalous worth attention. Examples of things to flag: a spike from a specific country, a quiet day on a paid plan tier, a new acquisition source appearing for the first time, an unusually strong or weak channel, a streak ending. Do not just dump every count. Interpret the data and only call out what changed or what's notable.

Step 3. Send the message to a Slack channel I will specify, using the Slack Send a Message action. Format the message with Slack mrkdwn: bold the headline number, use bullet points for the breakdown, and keep the whole thing skimmable in under 20 seconds. No tables, no code blocks, no giant data dumps.

Edge cases: if yesterday had zero signups, still post a short message that says so, plus the 7-day context, so the channel knows the workflow ran. If the database query fails, post a one-line error message to the same channel so I notice it the next morning instead of silently missing a day.

Additional information

What does this prompt do?
  • Counts yesterday's new signups from your database, broken down by plan tier, acquisition source, and country.
  • Compares the day's number to a 7-day rolling average so you see trend, not just a raw total.
  • Writes a short, plain-English read on what's up, what's down, and anything anomalous worth attention.
  • Posts the digest to the Slack channel you pick, every weekday morning at 9am Eastern.
What do I need to use this?
  • A PostgreSQL database with a signups or users table you can query.
  • A Slack workspace where you can connect your account and pick a channel for the digest.
  • The names of the columns that store the signup timestamp, plan tier, acquisition source, and country.
How can I customize it?
  • Change the schedule (different time zone, only Mondays, twice a day, etc.).
  • Send the digest to a different Slack channel, several channels, or as a direct message.
  • Adjust the breakdown (add lifecycle stage, drop country, group acquisition source differently).
  • Lengthen or shorten the comparison window (3 days, 14 days, month over month).

Frequently asked questions

Will this work without a PostgreSQL database?
This template assumes a Postgres signups or users table. If your signups live in a different database, a CRM, or a warehouse, tell Geni what you use and it will swap the source.
Can the digest go to more than one Slack channel?
Yes. Tell Geni which channels you want it posted to and the same digest will be sent to each one.
What if I just want raw numbers and not the AI narrative?
Ask Geni to drop the narrative step. You'll get a clean count breakdown without the qualitative summary.
How do I change the time or days it runs?
Tell Geni the schedule you want, for example '8am London time, Monday to Friday', and the trigger will be updated to match.
Does this need access to my whole database?
No. The workflow only runs the signup count query against the table you specify. You can scope your database user to a single table or read-only schema.

Related templates

Weekend football matchday preview, posted to Slack

Every Friday, get a ready-to-read preview of your league's weekend matches, with positions, form, scorers to watch, and predicted results, posted to Slack.

API-Sports
Slack
Agentic Task
Weekly Braintree revenue and refund report for finance

Every Monday morning, finance leadership gets a clear recap of last week's Braintree sales, refunds, and disputes by email and Slack.

Braintree
Gmail
Slack
Agentic Task
Daily IP reputation screening with Slack threat alerts

Every morning we check your list of IP addresses for abusive activity, update your spreadsheet, and alert your team only about the risky ones.

AbuseIPDB
Google Sheets
Slack
Agentic Task
Turn Heroku deploys into a readable Slack changelog

Every time you ship to Heroku, we post a clear summary to Slack listing what changed, who deployed it, and whether it was a rollback.

Heroku
GitHub
Slack
Agentic Task
Morning team travel briefing with live flight alerts

Every weekday morning, your team gets one Slack briefing on who's flying today, their live flight status, and any delays or cancellations to act on.

AviationStack
Google Sheets
Slack
Agentic Task
Weekly self-audit of your company's IP address reputation

Every Monday we scan your office, VPN, mail, and hosting IP ranges for abuse reports, post a summary to Slack, and open a ticket when anything crosses your risk line.

AbuseIPDB
Slack
Jira
Agentic Task

Stop manually tallying signups every morning.

Connect Postgres and Slack once and Geni will run the digest every weekday at 9am Eastern.