I've tracked invoices in Notion for years — and it's great right up until the moment you actually have to get paid.
The loop went like this:
Export invoice → PDF
Email it, wait
Follow up. Then follow up again
Someone pays → manually flip the status in Notion (if I remembered)
Retainers? Forget it — that's a whole separate spreadsheet
So I built a tool to kill that loop: NoKey.
What it does:
Connects your existing Notion invoice database in one click — no duplicate setup, no new system to learn
Gives every client a secure, branded portal where they can see their invoices
Online checkout that auto-updates your Notion status when payment lands — the database stays the source of truth, it just stops lying about who's paid
Recurring/subscription billing for retainers, so you're not re-invoicing the same client every month
The whole point is that you never leave Notion — it's a layer on top of what you already run, not another tool to migrate to. No Zapier/Make spaghetti, no switching to accounting software.
I built this because I was living the manual loop myself, and I figured half this subreddit has an invoice tracker database sitting there with the same problem. It's free to start: getnokey.com
Honest question for anyone who bills clients from Notion: what's your current setup — and what would make you actually switch? I'm genuinely curious what's missing, and happy to take feedback (good and brutal) on the product itself.
This is the same pattern I’m seeing on the “client communication” side of agency work: Notion/Linear is already the source of truth, and the pain is the last mile of turning that into something the client can consume without another tool migration. For us it’s weekly status briefs instead of invoices (shipped / blocked / next week → branded PDF/email). Same thesis as yours: sit on top of the existing DB, don’t ask people to leave it. Curious — among your early agency/Notion users, do they also still do Friday status updates manually, or has that already been automated somehow?
Thanks! You hit on a really core theme: keeping Notion as the single source of truth without forcing clients to log in or learn a new workflow.
Right now with Nokey, our sole focus is solving that exact "last mile" problem specifically for client billing and payments—syncing Notion invoices directly to Stripe payment links, giving clients a dedicated portal to pay, and automatically updating invoice statuses and payment reminders back in Notion.
Most of our agency users are still doing those Friday status updates manually or using lightweight Zapier/Make automations to push updates out. But the appetite for "zero-friction client communication layers" on top of Notion databases is definitely there!
From a switcher's point of view, the killer feature would be making the Notion row explain what happened, not just mirror Stripe's final status. For client billing, I'd want the row to show: invoice issued, checkout/session created, paid, failed/retried, subscription renewal, partial refund/void, and the last sync time. That gives the freelancer confidence to answer a client without opening Stripe or digging through email. The payment link gets them paid once; the durable timeline is what makes Notion trustworthy as the operating system.
This is super valuable feedback, and I completely agree! The goal with Nokey isn't just to generate a payment link, but to give freelancers and agencies total confidence in Notion as their operating system.
Currently, Nokey automatically handles the status syncing (e.g., updating statuses when invoices are due, paid, or pending) and manages automated payment reminders so you don't have to chase clients manually. Having a full, granular activity log/timeline directly inside the Notion database row (checkout created, retry attempts, last sync time, etc.) is an incredible feature idea—adding this to our product feedback list for upcoming updates!
The interesting conversion question here is whether the “no key” promise is being understood as a benefit or merely as a product feature. A visitor may immediately understand what the product avoids, but still have to infer what becomes easier, safer, or faster because of that. That distinction matters because removing friction only creates buying intent when the visitor already feels the friction you're removing. I’d pressure-test whether the homepage leads with the consequence of the problem before explaining how NoKey solves it—otherwise the positioning may be technically clear while still being emotionally irrelevant to the right buyer.
Spot on point about feature vs. benefit. The core pain point we're solving isn't just "avoiding API keys"—it's avoiding the friction, security anxiety, and complex setup that keeps freelancers from automating payments inside Notion in the first place.
"No key" is our mechanism, but the real benefit is zero-setup automated payments: you keep managing clients in Notion, and the invoicing/payment status updates happen seamlessly without setting up webhooks or managing API tokens. Appreciate the feedback on leading with the consequence—we’re definitely tweaking our landing page copy to make that transformation clearer upfront!
That clarification makes the positioning much stronger.
“Zero-setup automated payments” gives the visitor an outcome to want, while “no API keys/webhooks” explains why getting there is easier with NoKey.
One thing I'd watch when you make the landing-page change: make sure the rest of the page keeps proving that same transformation. It's easy for the headline to say “zero setup” and then have the next sections fall back into feature language like portals, recurring billing, integrations, etc.
I'd want the page to keep answering one question all the way through: “How much easier does getting paid from my existing Notion workflow become?”
That consistency is usually where I'd look next after fixing the headline.
The retainer detail is what stands out to me. One-off invoices are easy for most tools, but auto-updating Notion status for recurring work is exactly where people end up bolting on a side spreadsheet, which sounds like what you were doing before. Curious about the edge case: if a client's card fails on a retainer renewal, does that flip the Notion status too, or does it fail silently on the payment side and you still have to catch it yourself?
Great edge-case question! If a client's card fails on a retainer renewal, NoKey flags the transaction status in your Notion database (e.g., updating the status tag to "Payment Failed" or "Past Due" rather than "Paid").
You don't have to check a side spreadsheet or log into Stripe/payment dashboards manually—the state syncs directly back to your Notion view so you immediately know which client needs a follow-up.
Good, flagging it instead of hiding it is the right call. A failed card is still a real conversation someone has to have with the client, no automation should pretend otherwise. Are people actually checking that status tag daily, or does it mostly get noticed by accident when someone happens to open the database?
Right now, most people catch it when reviewing their active client database, but NoKey also sends automated notification alerts for overdue invoices and failed payments. That way, you're immediately notified as soon as a payment fails rather than having to discover it manually!
Interesting approach — building around an existing workflow instead of asking users to migrate.
I’m curious what you’ve learned from early users so far: is the biggest pull coming from people already using Notion for client operations, or from people who mainly want a simpler invoicing/payment workflow?
The biggest pull by far is coming from people who already run their client operations in Notion (freelancers, agencies, consultants).
They love Notion for CRM and project management, but hated having to context-switch to generate PDFs or manually check if invoices were paid. Rather than convincing them to adopt a whole new invoicing tool, NoKey just hooks into the database they’re already living in every day.
That’s a meaningful signal. The fact that the strongest pull is coming from people already embedded in Notion makes the “no migration” part feel less like a convenience and more like part of the reason the product fits their workflow.
It’ll be interesting to see whether that same group also becomes the strongest source of repeat usage.
Spot on. People who already run their agency or freelance biz inside Notion hate switching tools just to send a payment link or check if an invoice got paid. Retention definitely seems higher here because it seamlessly turns a page/database row into a checkout without breaking their workflow.
That’s useful context. The fact that the same group is both the strongest initial pull and showing stronger retention makes the pattern more interesting.
I’d like to continue the conversation outside the thread. What’s the best email to reach you on?
Thanks! I’ve just sent it over.
Looking forward to hearing your thoughts whenever you have a chance.
This comment was deleted 17 days ago