Forms as Internal Service Catalogs: Replacing ‘Who Do I Ask?’ With One URL Per Request Type

Charlie Clark
Charlie Clark
3 min read
Forms as Internal Service Catalogs: Replacing ‘Who Do I Ask?’ With One URL Per Request Type

Every growing company eventually hits the same friction point.

You hire specialists. You add new tools. You stand up new processes. And suddenly, getting anything done starts with a Slack message:

“Who owns this?”
“Is there a form for that?”
“Do I email Finance or open a ticket?”

The work itself isn’t the problem. The finding is.

Internal service catalogs—clear menus of “what you can request and how”—have existed for years in IT and HR. The difference now is that you don’t need a heavyweight ITSM portal to get the benefits. You can get 80% of the value with something you already understand: forms.

Specifically: one URL per request type, backed by a simple form and a predictable workflow.

Ezpa.ge makes this pattern especially practical: you can spin up a branded form for each internal service, give it a memorable custom URL, and sync every submission to Google Sheets in real time. That’s enough to replace a surprising amount of “Who do I ask?” with “Here’s the link.”


Why “One URL Per Request Type” Changes How Work Gets Done

Turning internal requests into form-based services sounds almost too simple. But the impact touches:

  • Speed – People stop hunting for owners and just submit the request.
  • Consistency – Every request includes the same structured information, so teams can work faster.
  • Visibility – You can finally answer “How many of those are we doing?” with real numbers.
  • Focus – Specialists spend less time triaging chaotic DMs and more time doing the work they’re great at.

Think about a few common patterns:

  • People Ops – New hire equipment, role changes, visa letters, policy questions.
  • Revenue Ops – Pricing exceptions, territory changes, CRM field updates.
  • Finance – Vendor onboarding, budget approvals, reimbursements, invoice questions.
  • Product & Engineering – Feature requests, access requests, bug reports.

Right now, many of these live in:

  • Ad hoc Slack threads
  • Email aliases that no one quite trusts
  • Old Google Forms that may or may not still be used
  • A handful of “Ask Ops” channels where everything gets dumped together

When you move to one URL per request type, you create a mental model everyone can hold:

  • Need a contract review? Go to /legal-review.
  • Need a new SaaS tool? Go to /software-request.
  • Need a new report from RevOps? Go to /revops-report.

No searching, no guessing, no politics.

If you’ve read our piece on designing intake flows that auto-assign owners and SLAs, this is the same idea, pointed inward: treat every internal request as a structured intake, not a one-off favor.


What Makes a Form an “Internal Service” (Not Just a Survey)

Not every form is a service. To qualify, it needs a few specific traits:

  1. A clearly defined outcome

    • "Submit this and…"
    • Your laptop gets ordered.
    • Your access is granted or denied.
    • Your budget is approved or rejected.
  2. A known owner (or owning team)
    Someone is responsible for what happens next—even if routing is automated behind the scenes.

  3. A default SLA or expectation
    People know roughly when they’ll hear back: 24 hours, 3 business days, end of month, etc.

  4. Required fields that map to how work is actually done
    The form asks for exactly what the team needs to move forward—nothing more, nothing less.

  5. A stable, memorable URL
    This is the “front door” for that service. It should be easy to share, bookmark, and document.

When you design forms with those ingredients, you’re no longer just “collecting requests.” You’re productizing internal help.

If you’re already thinking about form governance and naming, this dovetails nicely with the patterns in designing a form taxonomy that survives hypergrowth.


Step 1: Inventory Your Internal “Services” (They’re Already There)

Before you build anything, you need a map of what people actually ask for.

Start with where requests live today

Look at the places where work shows up in messy form:

  • Shared Slack channels (e.g., #ask-people, #ask-ops, #help-finance)
  • Email aliases (support@, it@, finance@)
  • Ad hoc DMs to team leads
  • Existing Google Forms or spreadsheets that people quietly maintain

Skim the last few weeks and cluster messages by intent:

  • “Can we add this field to Salesforce?” → CRM config change
  • “Can I get access to Looker?” → Analytics access request
  • “We need a contract for this new vendor.” → Vendor contract request
  • “Can someone add this user to the beta?” → Feature flag / access request

You’ll quickly see 10–30 recurring patterns. Those are your candidate services.

Prioritize by pain and volume

You don’t need to catalog everything at once. Start with 5–10 services that are:

  • High volume – They come up daily or weekly.
  • High friction – They cause confusion, delays, or rework.
  • High leverage – Standardizing them would unlock speed for multiple teams.

For each, write a one-line description:

  • “New vendor request – get Finance and Legal approval to onboard a new external vendor.”
  • “Territory change request – propose moving an account from one sales rep to another.”
  • “Tool access request – get access to a specific SaaS tool with manager approval.”

These one-liners will become the headings in your internal catalog and the descriptions on each form.


An overhead view of a busy modern office with transparent overlays of Slack messages, emails, and st


Step 2: Design Each Service Form Backwards From the Workflow

Once you know your first batch of services, the instinct is to open a form builder and start adding fields. Resist that for a moment.

Instead, start from what happens after submission:

  1. Who needs to see this?
  2. What decision do they need to make?
  3. What information do they need to make it without a follow-up DM?
  4. Where does the data need to land (Sheets, ticketing system, CRM, etc.)?

Collaborate with the owning team

For each service, sit down with the owner (Finance, IT, RevOps, etc.) and ask:

  • “What’s missing from most requests right now?”
  • “What do you always have to ask as a follow-up?”
  • “What’s the minimum you must have to start work?”
  • “What fields would help you triage or route faster?”

Turn that into a small set of high-signal questions. If you’re using Ezpa.ge, you can pair that with response-aware logic and even AI-generated follow-ups, similar to the patterns in AI-generated follow-up questions.

Keep the form short—but structured

For each service, aim for:

  • 3–5 required fields that are essential
  • 2–5 optional fields for context
  • Smart use of choices (dropdowns, radios) for things like:
    • Department
    • Priority
    • Region or entity
    • Request type subtype (e.g., “new vendor” vs. “renewal”)

Examples:

Tool access request

  • Tool name (dropdown of approved tools)
  • Your role / team
  • Business reason (short text)
  • Manager email (for approval)
  • Desired access level (viewer / editor / admin)

New vendor request

  • Vendor name
  • Type of spend (software, contractor, agency, etc.)
  • Estimated annual cost
  • Contract owner (who’s the business sponsor?)
  • Required start date

Wire in routing and ownership

A form becomes a service when the handoff is automatic.

With Ezpa.ge + Google Sheets (and optionally tools like Zapier or Make), you can:

  • Auto-assign requests based on fields (e.g., department, region, or cost).
  • Trigger Slack or email notifications to the right channel or person.
  • Update a status column in Sheets as work progresses.

Even a simple setup—“every new submission goes to this Slack channel and this Sheet”—is a major upgrade from scattered DMs.


Step 3: Give Every Service a Stable, Human-Friendly URL

The URL is not an implementation detail. It is the product.

When you use custom URLs in Ezpa.ge, you can make each service:

  • Easy to remember/tool-access, /new-vendor, /contract-review
  • Easy to share – pasteable in Slack, Notion, onboarding docs
  • Easy to change behind the scenes – you can update the form without changing the URL

A few naming tips:

  • Prefer verbs + nouns over internal jargon: /request-laptop vs. /asset-fulfillment.
  • Avoid team names in URLs. Think in terms of what the employee wants to do, not who fulfills it.
  • Keep them short and predictable.

Once you have URLs, standardize how you reference them:

  • In Slack: “For that, use the New Vendor form: ezpa.ge/new-vendor.”
  • In onboarding docs: “Need a new tool? Fill out the Tool Access form.” (link the URL)
  • In email signatures or channel descriptions: “Most questions? Start here: ezpa.ge/ask-ops.”

Over time, people stop asking “Who do I ask?” and start asking “What’s the URL for that?”—which is a much easier question to answer.


A close-up of a browser window showing a grid of clean, branded Ezpa.ge forms, each with a short cus


Step 4: Centralize Discovery With a Simple Internal Catalog Page

Even with great URLs, people need a single place to discover what exists.

You don’t need a full-blown ITSM portal. A single Notion, Confluence, or Google Doc page can work:

Structure your catalog like a menu

Group services by theme:

  • People & HR
    • New hire request – ezpa.ge/new-hire
    • Role change request – ezpa.ge/role-change
    • Offboarding checklist – ezpa.ge/offboarding
  • Finance & Legal
    • New vendor request – ezpa.ge/new-vendor
    • Budget approval – ezpa.ge/budget-approval
    • Contract review – ezpa.ge/contract-review
  • Tools & Access
    • Tool access request – ezpa.ge/tool-access
    • SSO group change – ezpa.ge/sso-group
    • Admin privileges request – ezpa.ge/admin-access

For each service, include:

  • Name
  • One-line description
  • URL
  • Expected response time (SLA)

Make it the “first stop” link everywhere

  • Pin it in your main Slack channels.
  • Include it in onboarding checklists.
  • Add it to your company wiki sidebar.

The goal: before anyone DMs a person, they check the catalog.


Step 5: Define SLAs and Statuses So People Trust the System

Forms fail when they feel like a black hole. To avoid that, you need:

  1. Clear expectations up front
    On the form itself, tell people what happens next:

    • “You’ll hear from us within 2 business days.”
    • “If this is urgent (production down), use the #oncall channel instead.”
  2. A simple status model
    In your underlying Sheet or tracker, use a small set of statuses:

    • New
    • In progress
    • Waiting on requester
    • Completed
    • Rejected / Not approved
  3. Notifications at key points
    Use your form + automation stack to send updates when:

    • The request is received (with a copy of their answers)
    • The status changes to “In progress”
    • The request is completed or rejected

You don’t need a full ticketing system to do this. A combination of Ezpa.ge, Google Sheets, and simple automations can get you surprisingly far—especially if you treat your forms as the front door and your Sheet as the back office.

For more on turning Sheets into a lightweight operations layer, see From Form to Revenue Signal: Using Google Sheets to Map Submission Data to Pipeline Stages. The same principles apply to internal work, not just revenue.


Step 6: Govern, Evolve, and Retire Services Deliberately

Once your internal catalog is live, entropy becomes the next threat. New forms appear. Old ones linger. URLs drift.

To keep things healthy:

Establish lightweight ownership

For each service, document:

  • Service owner – a person, not just a team.
  • Backup owner – in case the primary is out.
  • Review cadence – e.g., quarterly check-ins to update fields, SLAs, and documentation.

Monitor usage and adjust

Because Ezpa.ge syncs to Google Sheets in real time, you can:

  • Track volume per service over time.
  • See which fields are often left blank or filled inconsistently.
  • Spot bottlenecks where SLAs are regularly missed.

Use that feedback to:

  • Simplify forms with low completion rates.
  • Add clarifying helper text where people get confused.
  • Split overloaded services into more specific ones (e.g., separate “New vendor” from “Vendor renewal”).

Retire or merge low-value services

If a form hasn’t been used in months:

  • Confirm with the owner whether the service is still relevant.
  • If not, archive the form, remove it from the catalog, and redirect the URL to a relevant alternative or a “This service has moved” explainer.

This is where the discipline from designing a form taxonomy that survives hypergrowth really pays off. You’re not just adding forms; you’re curating a portfolio of internal services.


Common Pitfalls (and How to Avoid Them)

As teams roll out internal service catalogs built on forms, a few patterns tend to trip them up:

1. Overloading a single “catch-all” form

A giant “Ask Ops” form with 15 categories sounds tidy, but it often:

  • Confuses requesters (“Which category is this?”)
  • Burdens triage (“We still have to read every request manually.”)

Better: use a small number of targeted services, each with its own URL and owner.

2. Treating forms as “set and forget”

Processes change. Teams reorganize. Tools get replaced.

If your forms don’t evolve, they’ll quietly go stale—and people will revert to DMs.

Better: schedule periodic reviews and make it easy for employees to suggest improvements directly on the catalog page.

3. Ignoring edge cases and escalation paths

Some requests are urgent, sensitive, or unusual.

Better: on each form, clearly state:

  • When not to use the form (e.g., security incidents, urgent outages).
  • Where to go instead (e.g., an on-call channel or hotline).

4. Forgetting about experience and trust

Internal users are still users. If forms feel clunky, slow, or visually inconsistent, they won’t inspire confidence—especially for sensitive requests (comp, performance, security).

Leaning on a form theming system (like Ezpa.ge’s themes and custom branding) helps ensure internal surfaces feel as polished as external ones. If you’re thinking more broadly about visual consistency and trust, you might enjoy Design Systems for Forms: Component Libraries, Tokens, and Guardrails Your Whole Team Can Use.


Bringing It All Together

When you zoom out, forms as internal service catalogs are about more than reducing Slack noise.

They’re about:

  • Clarity – Everyone knows where to go for what they need.
  • Fairness – Requests are handled in a consistent, transparent way.
  • Data – You can finally see what internal demand looks like.
  • Focus – Specialists spend more time doing the work that matters and less time triaging.

You don’t need to roll out a massive portal or overhaul your tech stack. You can start with:

  1. A shortlist of 5–10 recurring internal services.
  2. One Ezpa.ge form per service, each with:
    • A clear owner
    • A small set of high-signal fields
    • A stable custom URL
  3. A single internal page that lists them all.

From there, you can layer in routing, SLAs, analytics, and AI-powered follow-ups as your maturity grows.


Your First Move: Ship One Internal Service This Week

You don’t need a steering committee to get started. Pick one high-friction request and turn it into a real service.

Here’s a simple 7‑day plan:

  1. Day 1–2 – Choose the service
    Ask in Slack: “What’s one request you get constantly that should have a form?” Pick the most painful.

  2. Day 3 – Design the workflow
    With the owning team, decide:

    • What information you need
    • Who owns the request
    • What the default response time is
  3. Day 4 – Build the form in Ezpa.ge

    • Create the form with 5–10 thoughtful fields.
    • Set a custom URL (e.g., ezpa.ge/new-vendor).
    • Connect it to a Google Sheet.
  4. Day 5 – Add basic routing and notifications

    • Send new submissions to a dedicated Slack channel or email list.
    • Include the requester’s email so you can reply or automate updates.
  5. Day 6 – Launch quietly

    • Share the URL in relevant Slack channels.
    • Add it to your internal catalog page.
  6. Day 7 – Reflect and refine

    • Ask the owner: “Did this make your life easier this week?”
    • Tweak fields, copy, or routing based on feedback.

Once you’ve done this once, repeat. Each new service makes the next one easier—and every new URL replaces dozens of “Who do I ask?” pings.


Summary
Forms don’t have to be static questionnaires or one-off Google Docs. When you pair them with clear ownership, simple workflows, and memorable URLs, they become your internal service catalog: a structured way for people to ask for what they need, and a reliable way for teams to deliver.

By treating each recurring internal request as a productized service—with its own form, URL, SLA, and owner—you:

  • Reduce coordination overhead and Slack noise.
  • Make internal work visible, measurable, and improvable.
  • Build trust that “submitting the form” actually leads to action.

If you’re ready to move beyond “Who do I ask?” and toward “Here’s the link,” start with just one service this week. Open Ezpa.ge, create a form, give it a clean URL, and make it the new front door for that workflow.

Your future self—and your future Slack channels—will thank you.

Beautiful form pages, made simple

Get Started