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.

Deterministic Code
ClerkGoogle SheetsSlack BotMarketingOperationsDaily DigestsNotifications & AlertsData Sync
PromptCreate

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?
By default it runs every Monday at 8am, giving you a clean rundown of the previous week. You can change the day and time to whatever suits your team.
What counts as a new signup?
Anyone who created an account in your app during the last seven days. Users who joined earlier are left out so each week only shows genuinely new people.
Where does the information end up?
Each new person becomes a row in your Google Sheet (name, email, and signup date), and a short summary with the total count and the list of names is posted to your Slack channel.
What happens if nobody signed up last week?
You still get a Slack message showing a count of zero, so you always know the report ran and there were simply no new signups.
Do I need to be technical to set this up?
No. You connect your Clerk app, your Google Sheet, and your Slack workspace, then choose the channel and the tab to log to. Everything after that runs on its own.

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.