Log new Stripe subscriptions to a Notion customers database and announce in Slack
When Stripe creates a new subscription, file the customer in your Notion customers database with plan and MRR, then ping the team in Slack.
Build a code workflow that logs every new Stripe subscription into a Notion customers database and announces it in Slack. The whole thing should be deterministic CRUD with no agent reasoning needed.
Trigger: poll Stripe for the new_subscription event. Whenever a new subscription is created, fire the workflow with that subscription's ID and customer ID.
Step 1. Use the Stripe Retrieve Subscription operation to fetch the full subscription object. Pull the plan or price nickname (call it the plan name), the recurring amount converted to monthly recurring revenue in dollars (MRR), the status, the start date as the signup date, and the customer ID.
Step 2. Use the Stripe Retrieve Customer operation against that customer ID to get the customer name and billing email.
Step 3. Use the Notion Query a Data Source operation against the customers database, filtering on the Stripe customer ID property equal to the customer ID from Stripe. If any page comes back, exit the workflow without writing or posting (this is the dedupe check).
Step 4. Use the Notion Create a Page operation to add a new page in the customers database. Map the properties: Name = customer name, Email = billing email, Plan = plan name, MRR = the dollar amount, Status = subscription status, Signup Date = signup date, Stripe Customer ID = the Stripe customer ID, and a Stripe Customer URL property linking to https://dashboard.stripe.com/customers/{customer_id}. Capture the new Notion page URL from the response.
Step 5. Use the Slack Send a Message operation to post to the #revenue channel (make this configurable at setup). The message should be a single line in the format: "New {plan} subscription: {customer name} (${mrr}/mo)" with the new Notion page URL linked at the end so anyone in the channel can click through to the customer record.
At setup, ask the user to pick: their Stripe account, the Notion customers database, the column names that map to Name, Email, Plan, MRR, Status, Signup Date, Stripe Customer ID, and Stripe Customer URL, and the Slack channel to post in.
Additional information
What does this prompt do?
- Watches Stripe for new subscriptions and reacts the moment one is created.
- Pulls the customer name, billing email, plan, and MRR from Stripe and files a structured row in your Notion customers database.
- Skips duplicates by checking for an existing row with the same Stripe customer ID before creating a new one.
- Posts a one-line announcement in your Slack revenue channel with a link back to the new Notion page.
What do I need to use this?
- A Stripe account with permission to read customers and subscriptions.
- A Notion workspace and a customers database with columns for name, email, plan, MRR, status, signup date, and Stripe customer ID.
- A Slack workspace and a channel like #revenue where the announcement should land.
How can I customize it?
- Change which Slack channel gets pinged, or send to multiple channels for different plan tiers.
- Adjust the message format, for example highlight only paid plans above a certain MRR threshold.
- Add or rename the Notion properties to match how your team tracks customers (region, AE owner, lifecycle stage, etc.).
Frequently asked questions
What does this do when someone subscribes for the second time?
Will this capture upgrades and downgrades?
Do I need a special Notion database template?
Can the Slack message link back to the Notion page?
How fast does it run after a new subscription?
Stop manually logging new customers in Notion.
Connect Stripe, Notion, and Slack once, and Geni files every new subscription and announces it the moment it lands.