customer-billing-ops
affaan-m/ecc
Manage customer subscriptions, refunds, and billing issues using Stripe and connected billing tools.
What is customer-billing-ops?
Operate real customer billing workflows including subscriptions, refunds, churn triage, and plan analysis. Use this skill when investigating billing problems, processing refunds, managing subscription state, or helping customers recover access to billing portals.
- Identify customers and retrieve their billing state (subscriptions, invoices, payment methods)
- Classify billing issues (duplicates, failed payments, missing self-serve controls, product failures)
- Execute safe, reversible actions: restore self-serve access, fix duplicate subscriptions, process targeted refunds
- Detect operator-side product gaps (missing billing portal, no usage visibility, no cancellation flow)
- Generate customer follow-up messages and document revenue impact
How to install customer-billing-ops
npx skills add null --skill customer-billing-ops- Connected Stripe account or equivalent billing platform
- Customer identifier (email, Stripe customer ID, subscription ID, or invoice ID)
How to use customer-billing-ops
- 1.Identify the customer using their email, Stripe ID, subscription ID, or invoice ID
- 2.Retrieve their billing state: active subscriptions, canceled subscriptions, invoices, and payment methods
- 3.Classify the issue into one category: duplicate purchase, multi-seat intent, failed payment, missing self-serve controls, or product failure
- 4.Take the safest reversible action first: restore portal access, fix duplicate state, or process a targeted refund
- 5.Document the decision, revenue impact, and any product gaps discovered
- 6.Compose and send a short follow-up message to the customer
Use cases
- Customer reports they cannot cancel or access their billing portal—restore self-serve controls
- Investigate duplicate active subscriptions and determine if accidental or intentional multi-seat purchase
- Process refund for failed payment or incomplete checkout after verifying the charge
- Audit churn risk by reviewing subscription state, plan mix, and renewal history
- Triage support complaint involving invoices, payment methods, or team-seat confusion
- Customer support and success teams
- Billing operations and revenue teams
- Founders or operators handling customer escalations
- Anyone investigating subscription or payment issues
customer-billing-ops FAQ
Always restore self-serve access first. Refund only the affected charge or duplicate after classifying the issue. Never refund blindly without understanding whether the purchase was accidental, intentional multi-seat, or a product failure.
Check the subscription metadata, seat count, and billing model. Real team purchases typically have explicit seat or user counts and a team-oriented plan name. Duplicates are usually identical plans on the same customer within a short time window.
Separate customer remediation (refund now) from product fixes (backlog item). Refund the affected charge immediately, apologize, and log the product issue for the team to investigate and prevent future occurrences.
Prefer the hosted billing portal provided by your platform (e.g., Stripe Customer Portal). Use custom code only if the portal lacks required controls; document that gap as a product issue.
Never include secret API keys, full card details, or unnecessary customer PII in your response. Share only the minimum identifiers and state needed to explain the decision and follow-up.
Full instructions (SKILL.md)
Source of truth, from affaan-m/ecc.
name: customer-billing-ops description: Operate customer billing workflows such as subscriptions, refunds, churn triage, billing-portal recovery, and plan analysis using connected billing tools like Stripe. Use when the user needs to help a customer, inspect subscription state, or manage revenue-impacting billing operations. metadata: origin: ECC
Customer Billing Ops
Use this skill for real customer operations, not generic payment API design.
The goal is to help the operator answer: who is this customer, what happened, what is the safest fix, and what follow-up should we send?
When to Use
- Customer says billing is broken, they want a refund, or they cannot cancel
- Investigating duplicate subscriptions, accidental charges, failed renewals, or churn risk
- Reviewing plan mix, active subscriptions, yearly vs monthly conversion, or team-seat confusion
- Creating or validating a billing portal flow
- Auditing support complaints that touch subscriptions, invoices, refunds, or payment methods
Preferred Tool Surface
- Use connected billing tools such as Stripe first
- Use email, GitHub, or issue trackers only as supporting evidence
- Prefer hosted billing/customer portals over custom account-management code when the platform already provides the needed controls
Guardrails
- Never expose secret keys, full card details, or unnecessary customer PII in the response
- Do not refund blindly; first classify the issue
- Distinguish among:
- accidental duplicate purchase
- deliberate multi-seat or team purchase
- broken product / unmet value
- failed or incomplete checkout
- cancellation due to missing self-serve controls
- For annual plans, team plans, and prorated states, verify the contract shape before taking action
Workflow
1. Identify the customer cleanly
Start from the strongest identifier available:
- customer email
- Stripe customer ID
- subscription ID
- invoice ID
- GitHub username or support email if it is known to map back to billing
Return a concise identity summary:
- customer
- active subscriptions
- canceled subscriptions
- invoices
- obvious anomalies such as duplicate active subscriptions
2. Classify the issue
Put the case into one bucket before acting:
| Case | Typical action |
|---|---|
| Duplicate personal subscription | cancel extras, consider refund |
| Real multi-seat/team intent | preserve seats, clarify billing model |
| Failed payment / incomplete checkout | recover via portal or update payment method |
| Missing self-serve controls | provide portal, cancellation path, or invoice access |
| Product failure or trust break | refund, apologize, log product issue |
3. Take the safest reversible action first
Preferred order:
- restore self-serve management
- fix duplicate or broken billing state
- refund only the affected charge or duplicate
- document the reason
- send a short customer follow-up
If the fix requires product work, separate:
- customer remediation now
- product bug / workflow gap for backlog
4. Check operator-side product gaps
If the customer pain comes from a missing operator surface, call it out explicitly. Common examples:
- no billing portal
- no usage/rate-limit visibility
- no plan/seat explanation
- no cancellation flow
- no duplicate-subscription guard
Treat those as ECC or website follow-up items, not just support incidents.
5. Produce the operator handoff
End with:
- customer state summary
- action taken
- revenue impact
- follow-up text to send
- product or backlog issue to create
Output Format
Use this structure:
CUSTOMER
- name / email
- relevant account identifiers
BILLING STATE
- active subscriptions
- invoice or renewal state
- anomalies
DECISION
- issue classification
- why this action is correct
ACTION TAKEN
- refund / cancel / portal / no-op
FOLLOW-UP
- short customer message
PRODUCT GAP
- what should be fixed in the product or website
Examples of Good Recommendations
- "The right fix is a billing portal, not a custom dashboard yet"
- "This looks like duplicate personal checkout, not a real team-seat purchase"
- "Refund one duplicate charge, keep the remaining active subscription, then convert the customer to org billing later if needed"
Related skills
More from affaan-m/ecc and the wider catalog.
customs-trade-compliance
Customs documentation, tariff classification, duty optimization, and trade compliance across jurisdictions.
dart-flutter-patterns
Production-ready Dart and Flutter patterns for state management, navigation, networking, and clean architecture.
dashboard-builder
Build operational dashboards that answer real questions, not vanity boards.
data-scraper-agent
Automated AI-powered data collection agent that scrapes public sources, enriches with free LLM, and stores results on a schedule.
data-throughput-accelerator
Optimize large-scale data pipelines—ingestion, ETL, warehouse loading—while maintaining correctness and auditability.
database-migrations
Safe, reversible database schema changes and zero-downtime migrations for PostgreSQL, MySQL, and major ORMs.