TRANSFORMATION POLICY · YAPPESB2B · API PLATFORM● SHIPPED EARLY 2025

Let teams reshape API data at the gateway, without new screens to learn and without breaking live traffic

Kong and Apigee already let teams change headers, query parameters and body data as requests pass through the gateway. Yappes could not. I designed Transformation as a new policy inside the existing policy screens, so developers had nothing new to learn and engineers reused what was already built.

IMPACT● SHIPPED
3places to manage it: the endpoint page, the Gateway Policies page and subscriptions
3data targets, on both request and response: headers, query parameters, body
6conflict checks that catch broken rules before they reach the gateway
77screens, as the only designer, across V1, V2 and a full validation round
ROLE
Senior Product Designer, the only designer at Yappes
TEAM
VP Engineering, CTO, backend, gateway and frontend engineers
TIMELINE
Shipped early 2025
SCOPE
REST APIs, at endpoint and subscription level
TOOLS
Figma, Whimsical, Notion
BENCHMARKED
Kong, Apigee, AWS API Gateway, Tyk
PROBLEM

Every data change meant a backend change

The Yappes gateway already ran policies like routing, caching, mocking and load balancing. But teams had no way to change the data passing through it. Adding a header, hiding a sensitive field, or renaming a partner's field all needed a backend code change. Kong and Apigee offer this out of the box, so enterprise buyers expect it.

HOW MIGHT WE

Let developers reshape API data at the gateway, without a new UI to learn and without breaking live traffic?

WHAT MADE IT HARD
01 · USERSFive user types, each wanting different control and visibility
02 · LEVELSRules attach to an endpoint and a subscription, so partners can get different data
03 · LEGACYA legacy UI and design system, with no budget for a redesign
04 · TIMELimited engineering time, so new UI had to reuse existing parts
05 · RISKOne wrong rule breaks every live call to that API

I interviewed the VP Engineering and the backend, gateway and frontend engineers, and benchmarked four platforms. Two findings shaped everything:

FINDING 01Platforms mix simple rules with scripts
FINDING 02The gateway team cared most about clear run order
[ Kong ]
[ Apigee ]
[ AWS API Gateway ]
[ Tyk ]
HOW IT RUNS

Where transformation runs

The backend never changes. The gateway reshapes the request on the way in and the response on the way out.

DECISION 01 OF 03

Build it inside the policy system, not beside it

Together with the VP Engineering and the CTO, we decided to build Transformation as a policy, not as a separate module. Policies already had attach, order and detach, so teams would manage it like everything else on the gateway.

On the endpoint pageTwo columns, Request and Response transformation, each with its own Attach button.
Attach or reusePick an existing policy or create a new one, so one rule can serve many endpoints.
A home on Gateway PoliciesLists every transformation policy and where it is attached. Teams create, edit and delete them here.
At subscription levelManage Subscriptions lets teams attach a transformation to one consumer only.
✕ WHAT WE DROPPED
A separate Transformation module in the navigation. A new place to learn that repeats the attach logic.
✓ WHY IT MATTERED
Developers found it where they already managed the endpoint. This attach pattern became the base for every policy on the platform.
DECISION 02 OF 03

Simple forms for headers and params, scripts only for the body

Most changes are small, like adding one header. A few are big, like reshaping a whole JSON body. I gave each its own tool instead of forcing one tool on both.

HEADERS + QUERY PARAMSBODY
INPUTA form: pick the parameter, pick Add, Update or Remove, enter name and valueA script editor with JSON or XML content type
SAFETYNo code, so little can go wrongA Test button shows the output before saving
SPEEDSeconds to set upTemplates, and any config can be saved as a new template
✕ WHAT WE DROPPED
Scripts for everything: too slow and risky for a one-line header change.
Forms for everything: body mapping, like joining first and last name into one field, is too complex for a form.

ONE SMALL RULE · Query parameters are hidden for response transformations, because responses don't have them. The UI never offers an option that can't work.

DECISION 03 OF 03

Show the run order, and catch conflicts before save

Order changes the result. If "Remove header X" runs before "Update header X", the update has nothing to update. The gateway team named run order as their biggest worry, so I made it visible and editable.

Policies are applied in the order they appear, starting from the top.
  1. 1Add header · Accept
  2. 2Update header · X-Regiondragging up
  3. 3Remove header · X-Region
THE FLOW CHECKS EVERY NEW RULE AGAINST THE ONES ALREADY ATTACHED
IF A USER ADDSTHE UI
Update header after a Remove header with the same nameWarns and asks to reorder
A second Remove with the same name on the same endpointFlags the duplicate
A second Body update on the same endpointBlocks it: one body update per endpoint
A query parameter rule on a responseNever offers the option
FINAL DESIGN

From whiteboard to V2

The design went through product and engineering reviews, from whiteboard sketches to V1, V2 and a validation round.

WHAT CHANGED AFTER REVIEWS · V1 → V2
  • Reuse first. The attach modal split into "choose from existing" and "create new", so teams reuse rules instead of making copies.
  • Conflict checks. Added for Update and Remove rules on the same header or query name, so one rule can't silently cancel another.
  • One body update per endpoint. Different bodies for different partners live in separate subscription-level policies.
  • Clearer delete messages. Deleting an API or endpoint now says which policies get detached.
  • A better body editor. Switch script language with a starter template, save any setup as a template, edit full screen, confirm before switching JSON to XML.
VALIDATION + BUG-FIX ROUND · 21 JAN 2025BODY EDITOR UPDATES · 18 FEB 2025
01 · Endpoint page: request and response columns, empty state with Attach buttons
02 · Reordering: three request policies, one being dragged
03 · Header policy: add an Accept header, the full create and attach modal
04 · Smart fields: the parameter dropdown shows which options apply
05 · Body script: current body, script with a template, and the Test button
OUTCOME

Shipped to production, and closed a feature gap with Kong and Apigee, inside the UI teams already knew.

● TESTED TWICEFirst in the UI for flows, edge cases and errors. Then at the gateway with cURL and API try-outs, reviewed with engineers.
● NO NEW MODULEReused the endpoint page, the attach modal and the policy list, which kept frontend work small.
● A PLATFORM PATTERNThe attach, order and conflict patterns became the base for 15+ later policies.
TRADE-OFFS

Body scripts still need technical skill. Templates and the Test button help, but a visual field mapper would be friendlier.

Input came mostly from internal engineers and competitor research, not outside users. Next time I would test early with a few real API teams.

WHAT I LEARNED

Put new power inside the patterns users already know, and the hard part becomes the details, not the learning.

In systems where order matters, show the order. Hiding it creates bugs no error message can explain.

A DESIGNER BY CRAFT, A BUILDER BY HABIT.© 2026 KAILAS PARAMESWARAN
Hello