All workflows
Google Sheets logoStripe logo

Turn a price list into Stripe payment links

Creates every product in your price list in Stripe and records its shareable payment link on a tab, never twice.

Run manually2 apps7 steps

Apps it connects

Authenticate each one once and the workflow is ready to run.

What it does

The integration steps this workflow runs, in the order it first runs them.

  1. 1Google SheetsCreate tab
  2. 2Google SheetsAppend row
  3. 3Google SheetsRead column
  4. 4Google SheetsRead rows
  5. 5StripeCreate product
  6. 6StripeCreate price
  7. 7StripeCreate payment link

How it works

Everything the template sets up, and what to fill in before the first run.

Point this at a Google Sheet of what you sell and it creates each line in Stripe - a product, a price, and a payment link you can send to a customer.

Your price list tab needs a header row with a 'Product' column and a 'Price' column. Write the price the everyday way, as a plain figure with no currency symbol: 49.99 means forty-nine ninety-nine, and the workflow converts it to the cents Stripe expects. Set 'currency' to the three-letter code those prices are in, such as usd, eur or gbp. Currencies with no smaller unit, such as jpy, are refused rather than multiplied by a hundred.

Nothing in your price list is ever changed. The workflow adds a 'Payment links' tab alongside it and appends a line there for every link it publishes, with the product name, the price it charged, the link itself and the Stripe ids behind it. That tab is what makes a second run safe: a product already listed there is skipped, so re-running never leaves two live links for the same thing. If a link is created but the tab cannot be written, the run stops immediately rather than carrying on blind.

'maxLinksThisRun' starts at 1 so your first run is a test: one link is published, you open it and check the price reads correctly, then you raise the number and run it again to carry on down the list. A row priced above 'maxPricePerItem' is skipped so a mistyped figure cannot quietly go on sale, and a row with no name or no usable price is reported and skipped rather than published.

This workflow only publishes links. It never charges anyone: a customer pays by choosing to open the link. To change a price, give the product a new name or delete its line from the 'Payment links' tab, and the next run will publish a fresh link for it.

Fill in 'sheetUrl', 'priceListTabName' and 'currency' to set it up.

stripegoogle sheetspaymentspayment linkspricingcatalog

Start from a workflow that already works.

Add "Turn a price list into Stripe payment links" to your workspace, connect its apps, and make it yours. No credit card required.

Free plan available · No credit card required