Stripe knows what they paid. It has no idea what for

Businesses billing through Stripe whose actual delivery — the jobs, the onboardings, the accounts, the support — lives somewhere else entirely, so nobody can say what a customer is worth net of what they cost.

  • Import customers, subscriptions, invoices and payments
  • Customers arrive with email, name, phone, balance, delinquent status and their Stripe ID
  • Link payments to the work they paid for, which Stripe cannot do
  • An automation can raise a payment link, or create a customer
  • Amounts take 49.99 or 4999 — both are read correctly
  • Connects with your own Stripe key, so it works today
Start free 30 days free · no credit card
WHAT IT DOES

Exactly what connecting Stripe gives you

Brings data in

Pull Stripe into RowFold tables you own — filter them, report on them, link them to everything else in the workspace.

And it stays current: importing again updates the same tables, adding new records and updating changed ones, so links from your other tables hold. Keep in sync does that for you hourly or daily.

Writes back, 2 ways

Automation steps that act on Stripe when something happens in RowFold:

  • Create a payment link Creates a reusable Stripe payment link for a one-off amount. Returns the payment link, which the step can save onto the record or pass to the next step.
  • Create a customer Adds a customer to Stripe so later invoices and payments attach to them. Returns the new customer's Stripe id, which the step can save onto the record or pass to the next step.

What it doesn't do: It has no say in what a booking page offers. An import only reads: nothing is written back to Stripe, a record deleted there stays here, and a sync runs hourly at most rather than the moment something changes. Anything else you have read about Stripe and RowFold, this page is the authority: it is generated from the connector's own code.

HOW TO DO IT

The jobs people connect Stripe for

I want to see what each customer is worth against what they cost

This needs both halves in one workspace and one relation joining them. The Stripe ID is what makes the join reliable, because names and emails drift and an ID does not.

  1. Create a restricted API key in Stripe with read access A restricted key limited to reading is usually enough for the import, and much safer to paste anywhere than a secret key that can also move money.
  2. Paste it into the Stripe card under Manage workspace, then Integrations It is your key rather than ours, so there is nothing to approve and the connection works immediately.
  3. Import Customers first, then Payments Customers give you the records everything else hangs off. Each resource is imported separately, so you can take only the ones you need.
  4. Link payments to customers using the Stripe ID Match on the ID rather than the email. Emails get changed, shared and mistyped, and a customer whose address moved probably should not become two rows.
  5. Link customers to the work you already track Jobs, projects, tickets, hours. This is the half Stripe cannot provide, and it is the whole reason to bring the payments across rather than reading the dashboard.

You'll know it worked: Pick one customer, total their imported payments, and compare with the same figure in Stripe's dashboard. If they differ, the usual cause is importing a single page of payments rather than the whole history.

I want to charge for something without leaving the record

The payment-link step builds a reusable Stripe link for a one-off amount and hands the URL back, so the price can come from the record rather than from somebody retyping it into the Stripe dashboard.

  1. Make sure the amount lives on the record as a number A Currency or Number field. The step will take 49.99 or 4999 and read both correctly, so you do not have to convert anything before mapping it in.
  2. Build the automation on the table that knows the work is done A job completing, a booking finishing, a ticket resolving. Trigger on the change that means payable rather than on every edit.
  3. Add a condition so nothing is charged twice Check the record's Payment link field is empty. Nothing on the Stripe side refuses a second link, so a trigger that can fire twice creates two. The next step is what fills that field.
  4. Add the Create a payment link step and save the link onto the record Choose a Url field such as Payment link under Save the result to. To send it, add a Send an email step below and put {{connector.result}} in the body, which holds the same link for the rest of the run. Keeping the link on the record is what makes step 3's check work, and it shows later whether the customer was ever asked.

You'll know it worked: Run it once against a test record with a small amount, then open the link now saved on the record. Check the figure on the Stripe page is what you meant. That is the one thing no run log can confirm for you.

WHAT IT FIXES

The three things that actually go wrong

Stripe answers questions about payments and nothing about what was delivered. Revenue per customer is easy. Revenue per customer against the hours it took to serve them is impossible, because Stripe has never heard of the hours.

Import customers and payments, link them to the work, and both halves sit in one place. The question stops needing two exports and a reconciliation.

A failed payment is a dashboard event rather than a piece of work. Somebody has to notice it, work out who it was, find out whether they still have the service, and chase — and none of that is written down anywhere.

Payments are rows, so a failure can trigger the chase, assign an owner, and leave a trail of what was done about it.

Taking a one-off payment means leaving whatever you were doing, opening Stripe, creating a link and pasting it into an email, every time.

An automation raises the payment link from the record itself, so the amount comes from the thing being charged for rather than from somebody retyping it.

One automation worth building

When a job is marked complete…

  1. Check the job has a price and has not already been invoiced
  2. Create a Stripe payment link for that amount and save it on the job
  3. Email the customer the link from the same record
QUESTIONS

Before you start

Do I write amounts in cents?

Either way works. The step takes 4999 or 49.99 and reads both correctly, so a Currency field can usually be mapped straight in without converting anything. A whole number is still read as the smallest unit, which keeps every automation written before this behaving exactly as it did. Zero-decimal currencies like yen have no minor unit at all, so a decimal amount in one of those is refused rather than quietly rounded.

What kind of Stripe key should I use?

A restricted key with read access is enough for importing and is much safer to paste into another system than a full secret key. If you also want the payment-link and customer-creation steps, the key needs permission to write those specific resources. Give it the narrowest set that covers what you actually use, and nothing else.

Does it keep up with Stripe automatically?

It can. Importing again updates the same table: new customers, subscriptions, invoices or payments are added and changed ones updated, matched on their Stripe IDs, and Keep in sync does that hourly or daily. The import only reads, so nothing is written back, and something deleted in Stripe stays here rather than vanishing from last month's figures. If you need to react within seconds of a payment, that is a webhook problem rather than an import one.

Which resources can I bring across?

Customers, subscriptions, invoices and payments, each imported separately so you can take only what you need. That set is fixed by what the Stripe API exposes cleanly rather than chosen arbitrarily. Customers are usually the one to import first, because they are the records everything else links to and the Stripe ID on them is what makes later joins reliable.

Does this work right now?

Yes. Stripe is one of the connectors where you supply your own credentials rather than depending on an application we registered with the vendor, so there is nothing pending at our end and nothing to wait for. Paste a key and the resource list appears immediately.

Describe yours and watch it build

There is no template to wait for. Type a sentence about what you run and RowFold assembles the tables, links, views and dashboard around it — then you change whatever does not fit.

Start free Free for 30 days. Then $29/month per editor, with unlimited free read-only viewers.