Skip to content

Each successful payment

Log Stripe payments to Google Sheets

Every successful Stripe payment is added as a new row in a Google Sheet within seconds.

Runs
Each successful payment
Apps
Stripe, Google Sheets
AI
Not needed
Access
Stripe payment events sent to the trigger link; Sheets edit (only the sheets you pick when connecting)

Send this to your assistant

Create a ClickRuntime automation: whenever a Stripe payment succeeds, add a row to my Payments sheet with the date, customer email, amount and product.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Plenty of teams track payments in a spreadsheet: for bookkeeping, commission, forecasting or simply because everyone knows how to use one. Keeping it current usually means exporting a CSV from Stripe every week and pasting it in, which is slow and easy to get wrong.

This template adds a row to your Google Sheet the moment a payment succeeds. The sheet is always up to date, and your team can build charts, pivot tables and formulas on top of it without touching Stripe.

What you get out of it

  • Always-current numbers

    The sheet updates within seconds of each payment, so reports, forecasts and commission sheets are never a week behind.

  • No more exports

    Nobody downloads CSVs or pastes rows by hand, which removes a weekly chore and the mistakes that come with it.

  • No duplicates

    If Stripe sends the same payment twice, it is still added only once, so totals stay correct.

  • Share without sharing Stripe

    Accountants, sales managers and partners can see payments in a sheet without getting access to your Stripe account.

  • Build on it

    Once the data is in a sheet, you can add formulas, charts or another automation that reads from it.

How it works

What happens, step by step

  1. Stripe sends payment_intent.succeeded to the trigger link.

  2. ClickRuntime verifies Stripe's signature and ignores repeated deliveries.

  3. The script appends a row with the date, customer, amount and description.

Before it runs live

  • Connect your Google Sheets account and pick the spreadsheet to use
  • Add a Stripe webhook for payment_intent.succeeded
  • Save Stripe's signing secret as a secret

What you get

RunsEach successful payment
Log Stripe payments to Google Sheetsjust nowSucceeded
Google Sheets · PaymentsRow 1,284 · 12 Oct · jo@northwind.com · $129.00 · Pro annual

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Stripe and Google Sheets steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
stripe_payments_to_sheets.pyexample
from datetime import datetime, timezone
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_event, credentials

SHEET = "1AbC...your-sheet-id"

@on_event
def handle(event):
    p = event.json["data"]["object"]
    row = [datetime.fromtimestamp(p["created"], timezone.utc).date().isoformat(),
           p.get("receipt_email") or "", p["amount_received"] / 100, p.get("description") or ""]
    sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
    sheets.spreadsheets().values().append(spreadsheetId=SHEET, range="Payments!A:D",
        valueInputOption="USER_ENTERED", body={"values": [row]}).execute()

FAQ

Common questions

What if Stripe sends the same event twice?
ClickRuntime recognises Stripe's event id and runs the script only once per payment.
Does each payment count as a run?
Yes. One payment is one run.
Can I choose which columns are added?
Yes. Tell your assistant which details you want, such as product, plan, country, currency or fees, and in which order.
What about past payments?
This template adds new payments as they happen. Ask your assistant for a one-time run that fills in past payments from a date you choose.
Can it log refunds too?
Yes. Ask your assistant to also listen for refunds and add them as negative rows or in a separate tab.
What permissions does it need?
Stripe payment events sent to the trigger link; Sheets edit (only the sheets you pick when connecting). Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Log Stripe payments to Google Sheets” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.