Product Operations
How to Handle One-Off SaaS Feature Requests Without Creating a Product Fork
A one-customer request can become shared product work, bounded configuration, a temporary workaround, or a clear no. Use this decision framework before promising custom SaaS behavior.

A large customer asks for a special invoice export column. The sales team sees a renewal risk; engineering sees the start of a product fork, a code path maintained for one customer that could survive for years. Before anyone promises a delivery date, the product team needs to decide what kind of commitment it is making.
For a SaaS product, treat a one-customer request as a product decision with four possible outcomes: add a reusable capability, expose a bounded configuration option, offer a time-limited service workaround, or decline the request. Start by verifying the customer’s underlying task. Then compare the request with your product direction, estimate the ongoing cost of tenant-specific behavior, meaning behavior that varies by customer organization inside the shared service, and name the team that will own it. AWS’s SaaS Lens recommends bringing one-off needs into the shared product as options available across tenants, while warning teams against creating a maze of tenant-specific experiences. (AWS SaaS Lens: General design principles, AWS SaaS Lens: tenant-specific customizations)
Start with the task, not the requested switch
A feature request often combines a real job with a proposed implementation. “Add a second approval step for our account” could mean a regulated review, an internal separation-of-duties rule, or a preference from one administrator. Those needs lead to different product decisions.
Ask the requester to walk through one recent example. Who performs the task? What starts it? What result do they need? What do they do today when the product cannot help? Which part creates delay, risk, or repeated manual work? Record the customer’s words separately from the product team’s interpretation.
GOV.UK’s service design guidance defines a user need around the outcome someone must achieve and recommends basing the need on research rather than assumptions or a proposed solution. The guidance is written for public services, but the distinction helps SaaS teams too: “I need finance to approve an export before it leaves our workspace” describes a job; “add a second approval button” describes one possible implementation. (GOV.UK Service Manual: learning user needs, checked October 20, 2026)
A useful test is to rewrite the request without naming the interface change. If the customer cannot describe the task, the blocker, and the successful outcome, gather evidence before committing to code. Ask another person at the same customer to describe the process. Where possible, check support conversations, account notes, usage data, and the current workaround. A single request can justify investigation; it rarely proves that a permanent product control will help other customers.
Choose the smallest promise that can be maintained
Use four outcomes to separate product work from customer-specific work:
| Outcome | Choose it when | Promise |
|---|---|---|
| Shared capability | The task fits the product’s direction and more than one customer can benefit | Build and support it as part of the common product |
| Bounded configuration | Customers need different values or behavior within a stable, understandable range | Add a documented setting with defaults, permissions, and tests |
| Time-limited workaround | The need is real but evidence or product fit is still weak | Name the owner, expiry date, manual steps, and review condition |
| Decline | The request conflicts with product direction, safety, or support capacity | Explain the constraint and offer an alternative only if it works |
Use this framework to discuss evidence instead of summing votes. The product manager should ask whether the underlying task repeats across customers, whether the capability belongs in the product’s core, and whether support can explain and operate the variation. One strategic customer may reveal an important market gap; ten requests for an edge case may still produce a poor product. Use report counts as a prompt for investigation, not as the decision itself.
When the need fits, separate three decisions that teams often bundle together: whether to build the capability, which customers may use it, and whether the customer pays for it. A feature can belong in the shared codebase while access depends on a plan or administrator permission. A paid entitlement does not by itself justify a separate implementation. AWS’s SaaS Lens describes tenant configuration and tiers as ways to support varied customer experiences while keeping one managed product version. (AWS SaaS Lens: tenant-specific customizations)
Treat every tenant-specific branch as a recurring operating cost
A hidden condition such as if tenant_id == "customer-17" looks cheap during the first release. The team must still test it after changes to permissions, exports, billing, migrations, and support procedures. The customer may also expect the behavior to survive a redesign or a new plan.
Estimate the lifecycle cost, not just the initial implementation:
- Release cost: Which shared code paths, migrations, and deployment steps change?
- Test cost: Which default and configured states must pass on every release?
- Support cost: Can support staff see why two customers get different results?
- Commercial cost: Who explains what the contract includes, and who approves future requests?
- Exit cost: Can the team remove the behavior if the customer leaves or the need changes?
Microsoft’s Azure Architecture Center warns that tenant-specific schema changes, such as adding columns for one customer, become difficult to manage as customizations accumulate. It recommends considering a dedicated extension table for tenant-specific data and using automated, tracked schema changes. That guidance concerns data models; other product decisions may differ. It still makes one practical point: exceptions that touch shared foundations deserve an explicit maintenance owner. (Microsoft Azure Architecture Center: storage and data in multitenant solutions, updated August 21, 2026)
A configuration option also has a cost. Each setting adds a state that product, QA, support, and documentation may need to understand. Prefer one setting with a small, valid range over a collection of loosely related switches. Define who can change it, what the default does, whether it affects existing records, and how the team can reverse it. Feature flags can help control rollout, but AWS cautions that a large collection of tenant-specific flags can make a shared product unmanageable. (AWS SaaS Lens: tenant-specific customizations)
Put a boundary around a temporary exception
A manual workaround can buy time when the customer’s task matters but the team does not yet know whether to productize it. For the invoice example, an operations specialist might generate the required report from an approved source while the product manager tests whether the approval step is common elsewhere. That can be reasonable if the process is safe, repeatable, and described as a manual service.
Write down four fields before offering the workaround: the customer impact it addresses, the person responsible for the manual step, the date the team will review it, and the condition that ends or converts it. “We’ll handle this for now” has no boundary. “Support will prepare the export through November 30; product will review two more customer workflows by November 15” gives both sides a checkable commitment. Avoid promising that a temporary path will become a feature unless the team has made that decision.
When the user need is genuine but the proposed implementation falls outside the product, explain the mismatch. Offer an existing permission, report, integration, or documented process only if it achieves the outcome. A workaround that shifts hours of repetitive work to the customer has a cost too, and the customer should know who bears it.
Keep customer evidence attached to the decision
Product teams often lose the reason behind a request when support condenses a conversation into a title. Preserve the original wording, the task, the customer’s current workaround, the product hypothesis, and the next fact needed to decide. Keep the hypothesis labeled as a hypothesis. One account’s request can be useful evidence without becoming a roadmap promise.
For small product teams collecting requests through voice, a website widget, email, or forms, Mendaro’s shared customer-report workflow is a strong fit when the team needs the customer conversation and staff’s issue-triage record in one place. Mendaro is an AI issue tracker for product teams and their customers: its homepage describes those intake channels, a shared ticket workflow, and background triage suggestions that staff accept or dismiss. It can help preserve evidence for product review; it does not decide whether a request belongs in the shared product, manage feature-flag states, or replace contract ownership.
A decision rule for the next request
Approve a one-customer request as shared product work when the team can name the underlying task, explain how it fits the product’s direction, and support the capability for other tenants without an unowned branch. Make it configurable only when customers need a deliberate, bounded choice and the team can test and explain each supported state. Keep a workaround temporary by naming its owner, review date, and exit condition. Decline when the request creates an ongoing obligation the product team cannot support or does not want to make part of its offering. AWS’s SaaS guidance favors tenant-specific needs implemented as options in the shared product and warns teams to limit the number of customer-specific states they support. (AWS SaaS Lens: tenant-specific customizations)
Before promising a date, write down:
- The customer’s task and the evidence behind it
- The outcome the proposed change should enable
- Which of the four outcomes the team is choosing
- Who owns rollout, support, documentation, and removal
- The cost of each supported tenant state
- What would cause the team to revisit the decision
A request becomes a product commitment when the team accepts responsibility for its future behavior. Make that commitment explicit, and the customer gets a clearer answer while the product keeps a boundary it can maintain.


