Look up any customer's account and billing without AWS access

Your support reps type an email and see the customer's plan, seats, entitlements and live billing on one screen, with safe edits and a full audit trail.

App
Amazon DynamoDBStripeSlack BotCustomer SupportOperationsData SyncNotifications & Alerts
PromptCreate

Build an internal support desk console that our customer support reps open every time a customer writes in, so they never have to ask an engineer to look someone up in the AWS console. The app is read only by default: it shows everything about a customer account, but only a small, explicitly whitelisted set of fields can ever be changed.

At the very top of the code, define a single configuration block that lists the editable fields, and let nothing else in the app grant write access. Start it with plan tier, seat count, and feature flags, each with a label, a type (string, number, or boolean), and for plan tier the allowed values. Every field that is not in that list still displays on screen so reps can read it, but it renders as static text with no edit control. Adding or removing an editable field should be a one line change in that block.

The main screen is a single search box where a rep types an email address, an account ID, or a customer ID. Look the record up in our DynamoDB accounts table: if the input looks like an email address, use Query against the table's email index; otherwise, and as a fallback when that Query returns nothing, use Get Item by primary key. Show a clear not found state when neither returns a record, and let the rep search again without reloading the page.

Render the matched record as a clean profile card, never as raw DynamoDB JSON. Unwrap the attribute value format so the rep sees real values, and lay out plan, seat count, entitlement flags, signup date, and account status as labelled fields with human formatting: dates as readable dates, booleans as clear on or off pills, and status as a badge. Group the entitlement flags together so it is obvious at a glance what the account has turned on.

Alongside the profile, show a billing panel with the customer's live payment picture from Stripe. Find the Stripe customer with Search Customers using the account's email address, then load their subscriptions with List Subscriptions and their recent invoices with List Invoices. Surface the current plan and price, the renewal or next billing date, and call out any unpaid, past due, or failed invoices at the top of the panel where the rep will see them first. If no Stripe customer matches, keep the profile card working and show a plain no billing record found message in the panel rather than an error.

For each whitelisted field, put an inline edit control next to the value. When a rep changes one, open a confirm dialog showing the field, the current value, the new value, and a required short reason box. The rep cannot confirm without typing a reason. On confirm, write the change back with Update Item using an update expression scoped to that single attribute, so nothing else on the item can be touched. Show the updated value in place and keep the rep on the same customer.

Every confirmed change also writes an audit item to a separate DynamoDB audit table with Put Item. Stamp it with the logged in rep's identity, the account ID, the field name, the before value, the after value, the reason the rep typed, and a timestamp. Write the audit item as part of the same action as the update, and if the audit write fails, tell the rep clearly rather than failing silently.

After the audit item is written, post a one line summary to a Slack channel with Slack Bot Send a Message, in the shape of: rep name changed field on account from old value to new value, reason. Set the target channel in the same configuration block at the top of the code, so the team has a visible trail without needing to open the app.

This is an interactive surface a person opens and works in, not an automation: nothing runs on a schedule or in the background. Keep it usable by someone who has never seen a database, make the guardrails visible by showing which fields are editable and which are locked, and never expose AWS or Stripe credentials to the rep.

What does this prompt do?

  • Reps search by email, account ID, or customer ID and get one clean profile card with plan, seats, entitlement flags, signup date and status, instead of raw database records.
  • A billing panel beside it pulls the customer's live payment picture from Stripe: current plan, renewal date, and any unpaid or failed invoices.
  • A short, pre-approved list of fields such as plan tier, seat count and feature flags can be corrected in place, each behind a confirmation that asks for a reason.
  • Every change is saved to a separate audit table with the rep's name, the before and after values and the reason, and posted as a one line summary to Slack.

What do I need to use this?

  • An AWS account containing the customer accounts table your product already uses
  • A second table for the audit trail, so change history is kept separate from customer records
  • A Stripe account with access to your customers, subscriptions and invoices
  • A Slack workspace and a channel where the change log should appear
  • A decision on which few fields your reps are allowed to correct

How can I customize it?

  • Change which fields reps can edit by editing one list at the top of the app. Everything else still shows on screen but cannot be changed.
  • Point the Slack summaries at whichever channel your team actually watches, or switch them off entirely.
  • Add more detail to the profile card as your account records grow, such as support tier, renewal owner, or trial end date.

FAQs

Can a rep break something by accident?
The app is read only by default. Only the handful of fields you approve can be changed, each one needs a confirmation and a typed reason, and the save only ever touches that single field. Everything else on the record is visible but locked.
Do our support reps need an AWS login?
No. That is the whole point. The app holds the connection, so reps get the customer information they need without an AWS account and without asking an engineer to look it up.
What if the customer has no billing record?
The profile card still loads normally and the billing panel simply says no billing record was found. A customer missing from Stripe never blocks the lookup.
Can we see who changed what, and why?
Yes. Every confirmed change writes a permanent entry to your audit table with the rep, the field, the old and new values, the reason they typed, and the time. A one line summary also posts to Slack so the team sees it live.
What if our reps search by ID rather than email?
The search box accepts an email address, an account ID, or a customer ID. It looks up by email first when the text looks like an email, and falls back to a direct ID lookup otherwise.

Related templates

Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Voice agent QA review board for your Hume EVI calls

Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.

Hume
Linear
Slack Bot
App
Clear your Guru verification backlog in one weekly app

A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.

Guru
Slack Bot
App

Stop escalating customer lookups to engineering.

Give your support team one screen for account details and live billing, with guardrails so nothing gets broken.