One support screen for beehiiv subscribers and Stripe billing

Paste a reader's email and see their newsletter status, tiers, and payment history on one screen, with safe fixes your support teammate can run.

App
beehiivStripeCustomer SupportOperationsData Sync
PromptCreate

Build me an internal subscriber support console so a support teammate can answer reader questions without being given admin access to our beehiiv workspace or our Stripe dashboard. The app is essentially one screen: a search box at the top where I paste a reader's email address, and a single merged profile below it. This is the ops person's daily screen, so keep it dense and fast, and keep the search box ready for the next lookup after every search.

Lookup. When an email is submitted, the handler calls beehiiv Get Subscription by Email for the currently selected publication. A publication picker sits next to the search box, populated by beehiiv List Publications, and remembers the last publication each teammate chose. The profile shows subscription status, current tier, the date they subscribed, the signup source and any UTM fields beehiiv returns, and every custom field as a plain label and value list. If the exact email lookup returns nothing, fall back to beehiiv List Subscriptions filtered by that email to surface near matches such as typos or plus addressing, and let the teammate pick the right person from those results instead of showing a dead end.

Publications. Alongside the profile, call beehiiv Get Publications by Subscription Email to list every publication in our workspace that address is subscribed to, with the status on each. Compare that against beehiiv List Publications so the panel also shows the publications the reader is not on. That single view answers most "I am not getting your emails" tickets on its own.

Billing. If the reader pays us, the same profile shows their billing history. Resolve the email to a customer first with Stripe Search Customers using an email query, then call Stripe List Subscriptions filtered by that customer id, including cancelled and past due ones rather than active only, and Stripe List Charges filtered by the same customer. Show each subscription with its status, the plan and amount, the current period end, and whether it is set to cancel at period end. Show each charge with date, amount, paid or refunded or failed status, and description. If no Stripe customer matches the address, show a calm "no payment record found for this address" state rather than an error.

Mismatch banner. At the top of the profile, compare the two sides and state any conflict in plain language, because the mismatch is usually the whole answer to the ticket. Call out an active paid Stripe subscription while the beehiiv tier is free or the status is not active, which is the "I was charged but cannot read the paid posts" case. Call out a beehiiv status of unsubscribed with the date, which is the "I am not receiving emails" case. Call out a paid beehiiv tier with no active Stripe subscription. When both sides agree, say so clearly so the teammate can reply with confidence.

Actions. Three buttons on the profile, each behind a confirmation step. Correct the email address when someone mistyped it at signup. Change the tier, with the dropdown populated from beehiiv List Tiers for that publication so only real tiers can be chosen. Resubscribe a reader who unsubscribed by accident, by setting their subscription status back to active. Use beehiiv Update Subscription by ID when the lookup already gave us the subscription id, and beehiiv Update Subscription by Email when acting on an address that was just matched. Every button opens a confirmation dialog that spells out exactly what will change, showing the current value and the new value, and nothing is written until the teammate confirms. Refresh the profile after a successful write so the screen always reflects reality. Keep the write surface exactly this narrow and do not add deletion or bulk actions.

Audit trail. Every attempted action writes a record in the app with the logged in teammate, the timestamp, the reader email, the subscription id, the publication, the action type, the before value, the after value, and whether it succeeded or failed. Show a recent activity section on the loaded reader's profile, and a separate full history view listing all changes across all readers, newest first, filterable by teammate and by date range. The log is append only and nothing in the interface edits or deletes it.

Handle the edge cases inline rather than with blank screens: no results, an address that exists in Stripe but not in beehiiv, an address in beehiiv with no payment record, and any API error surfaced as readable text on the panel it came from so the teammate knows which half of the picture failed to load.

What does this prompt do?

  • Search any reader by email address and get one profile showing their subscription status, paid tier, how they signed up, and the custom fields you keep on them
  • See every publication of yours that person is subscribed to, so you can answer "am I actually on the list" without opening your newsletter admin
  • Pull their payment history next to it, so "I was charged but cannot read the paid posts" gets answered on the same screen instead of two tools
  • Fix the everyday problems in place: correct a mistyped address, move someone onto the right tier, or resubscribe a reader who left by accident, each behind a confirmation step
  • Keep a running log of every change with who made it and when, so you always know what happened to a reader record

What do I need to use this?

  • A beehiiv account with the newsletters your team supports. An Owner or Admin sets up the connection once
  • A Stripe account if you charge for paid subscriptions. If your newsletter is free you can skip it and the screen simply shows the newsletter side
  • The email addresses of the readers writing in. Nothing else to prepare

How can I customize it?

  • Choose which publications the console searches, or let it look across every publication in your workspace
  • Decide how much your support teammate can change: address corrections only, or tier moves and resubscribes as well
  • Adjust how much billing history appears, for example the last five payments instead of the last twenty

FAQs

Do I have to give my support teammate access to my beehiiv account?
No, and that is the main reason to use this. The console is the only surface they open. They can look up readers and run the few corrections you allow, without an admin login to your newsletter workspace or your payment dashboard.
What happens if the reader is not found?
The screen tells you plainly that nothing matched, then looks for near matches on similar addresses. Most "I never got the newsletter" tickets turn out to be a typo at signup, so the near-match list usually finds the person straight away.
Does this work if my newsletter is free?
Yes. Without a payment connection the profile shows the newsletter side only: status, tier, signup source, custom fields, and which publications the reader is on. You can add billing later and the same screen fills in.
Can I see who changed what?
Yes. Every action is recorded with the teammate who ran it, the time, the reader it affected, and the before and after values. There is a full history view as well as recent activity on each reader profile.
Can someone change a reader by accident?
Every action opens a confirmation step first that spells out exactly what will change, from the old value to the new one. Nothing is written until it is confirmed, and the change is logged either way.
Why does it show newsletter status and payments together?
Because the two most common support tickets are "am I actually subscribed" and "was I actually charged", and answering either one usually means checking both systems. Seeing them side by side also exposes mismatches, like an active payment with no paid access.

Related templates

Look up any customer's support, billing and CRM in one page

Type a customer email before a renewal call and get their whole support history next to their plan, their invoices and their open deals.

Help Scout
Stripe
HubSpot
App
Investor update studio that builds your board deck monthly

Open one screen each month to see your real numbers, write the commentary yourself, and generate a board deck you can send to investors.

Gamma
Stripe
HubSpot
+1
App
Sell and invoice Ghost newsletter sponsor slots in one board

Replace the sponsorship spreadsheet with a live board of upcoming issues, sold and open slots, real subscriber counts, and paid or unpaid status from Stripe.

Ghost
Stripe
App
Support console that pairs Gladly chats with orders and refunds

Type a customer email or phone and see their whole support history, order tracking, and payment record on one screen instead of three tabs.

Gladly
Shopify
Stripe
App
Firebase support desk with account actions and Stripe billing

Your support team types an email, phone, or user id and sees that person's account, app data, and billing on one screen, with the fixes they used to escalate.

Firebase
Stripe
Slack Bot
App
Match your Stripe buyers against your Flodesk subscriber list

Open one screen to see who paid you, who is on your email list, and who is missing from either, then add and tag those buyers without leaving the app.

Flodesk
Stripe
App

Answer reader questions without handing over the keys.

Give your support teammate one screen for subscriber status and billing history, with a confirmed, logged way to fix the small things.