Weekly Clerk signup report to Slack and a spreadsheet
Every Monday, automatically round up everyone who signed up for your app last week, post the list to Slack, and log each new user to a spreadsheet.
Every Monday at 8:00am, run a weekly signup report for my Clerk app. This is a deterministic, fixed-step job, so build it as a code workflow on a cron trigger (every Monday at 8am).
First, compute the week's date range once at the start of the run. The window end is the current run time and the window start is seven days earlier. Keep the window start as a Unix epoch milliseconds value for filtering, and also format the range as a human-readable label (for example, the week of Jul 10 to Jul 17, 2026). Reuse that exact same label in both the Slack message header and every spreadsheet row so past weeks stay directly comparable.
Pull signups with Clerk's "List all users" operation, passing order_by set to -created_at so the newest users come back first. Page through the results if there are more than one page. Clerk's created_at timestamps are Unix epoch milliseconds, not seconds, so filter in milliseconds: keep only users whose created_at is greater than or equal to (run time minus seven days) expressed in epoch milliseconds. Drop everyone who signed up before that window.
For each qualifying new user, append one row to my Google Sheets tracking tab using the "Append Values" operation. Each row should contain, in order: the week's date range label, the user's full name (first and last name joined, falling back to their primary email if no name is set), their primary email address, and their signup date formatted as a readable date. Append the rows newest first.
Then post a summary to my growth Slack channel using Slack's "Send a Message" operation (the Slack Bot integration). The message header should include the week's date range, followed by the total count of new signups and a bulleted list of the new users' names. If there were zero new signups this week, still post the summary showing a count of zero so I know the job ran.
Additional information
What does this prompt do?
- Every Monday, pulls everyone who signed up for your app in the past seven days.
- Logs each new person (name, email, and signup date) as a row in your Google Sheet, tagged with the week's date range.
- Posts a summary to your growth Slack channel with the total count and the list of new names.
- Stamps every report with its week's dates so you can compare one week to the next over time.
What do I need to use this?
- A Clerk app you can read your user list from.
- A Google Sheets spreadsheet with a tab set aside for tracking signups.
- A Slack workspace and the channel where you want the weekly summary posted.
How can I customize it?
- Change the schedule or run time (for example daily, or every other Monday).
- Point it at a different Slack channel or a different spreadsheet tab.
- Adjust what lands in each row, such as adding a signup source or plan.
Frequently asked questions
When does the report run?
What counts as a new signup?
Where does the information end up?
What happens if nobody signed up last week?
Do I need to be technical to set this up?
Related templates
Never manually count your new signups again.
Get a weekly rundown of everyone who joined your app, posted to Slack and logged to a spreadsheet automatically.