Product

Resources

Case Studies

Careers

Log In

Book a demo
Book a demo

Log In

Log in

Book a demo

Do the hard things, always

Do the hard things, always

Alex, CTO at Serval

How Serval is building a universal automation platform to eliminate manual operational work across companies.

An employee asks: “Can you give Priya access to the staging database?”

In most companies, that simple request is not simple at all. Someone has to figure out which team Priya is on, whether the request is allowed, who needs to approve it, where the access is defined, how to update it, whether it requires a code change, how to notify the requester, and how to leave behind an audit trail.

The employee does not care whether that work happens through Slack, Okta, GitHub, Terraform, AWS, Jira, or an internal admin tool. From their perspective, they had one thing they needed done.

Serval’s job is to make it feel that way.

Someone asks for something in natural language. Serval figures out what they mean, finds the right tools, runs the automation across the systems involved, brings in a human when needed, records what happened, and lets them get back to work.

Most companies already know which workflows should be automated: access requests, onboarding, hardware requests, infrastructure changes, security reviews, approvals, CRM updates, finance operations, and internal support. They stay manual because automation is usually too expensive to create and too brittle to maintain. If a process crosses five systems, varies by team, depends on a policy that lives in someone’s head, and only happens a few times a month, it usually remains the responsibility of a human.

Serval is built on a simple idea: LLMs change the cost curve of automation. But cheaper automation only matters if it is safe to run. The output has to be structured, permissioned, reviewable, durable, debuggable, and auditable.

The ambition is specific: automate 100% of company operations, not just the easy parts. Most automation tools cover the common, high-volume workflows and leave everything unusual to a person. But the long tail of hard, rare, cross-system requests is where most of the manual work actually lives. Automating the obvious slice is not enough. The goal is to reach the messy long tail: the workflows that were always too rare, too specific, or too expensive to justify automating before.

We had to design for two distinct experiences: employees running automations, and admins creating them. An employee might ask, “Can you give Priya access to the staging database?” An admin might define that as: check Engineering membership, ask the manager for approval, open a Terraform PR that adds the IAM binding, wait for review, and notify the requester when the pipeline applies the change.

In that sense, Serval is not just automating work. It is automating the creation of the automation itself: making it fast to define the workflow, not just fast to run it after it exists.

Doing this well is hard. But we have strong conviction at Serval that if a hard technical choice gets you closer to the best end-user experience, you should take it seriously rather than route around it. A few of our early decisions came from that philosophy.

Decision 1: Build the platform, not the layer

The obvious shortcut would have been to build Serval as a thin layer on top of existing ticketing or IT Service Management (ITSM) systems: read the ticket, use an LLM to classify or summarize it, call a downstream automation, and post the result back. That would have been faster, and it probably would have produced a good early demo.

But it would not have changed the underlying architecture. The ticketing system would still own the request. Access management would still live somewhere else. Approvals would still happen in another tool. Execution state would still be scattered across logs, Slack messages, webhooks, and downstream systems. The LLM would make the existing process feel a little smarter, but the company would still be operating through the same fragmented stack.

That is the problem we wanted to solve directly. Users should not have to know which system owns a request. Admins should not have to wire together tools that were never designed around a shared model of the world. And engineers debugging a failed workflow should not have to reconstruct what happened from five different places.

The iPhone is a great product in large part because Apple owns the hardware and the software together. The experience is not assembled from loosely connected layers; it is cohesive because the pieces are designed to fit. We see the same thing in company operations. The system of record and the system of action need to be unified. If one tool stores the request and another tool executes it, the user experience, admin experience, and audit trail all fragment. So we set out to own the whole surface area, replace what legacy systems do, and then build something vastly better than what is possible with fragmented systems.

Take the Priya request. With a thin layer, you'd have a smarter ticket. But you'd still need someone to find the Terraform file, open the PR, wait for review, and notify the requester. The request would still touch five systems. Serval would just be making the first step feel easier.

Decision 2: Code as the source of truth

Owning the platform meant we had to decide what workflows actually look like inside it.


This was not obvious at the time. A lot of automation products are built around forms, visual workflow builders, decision trees, or graphs. Those can work for simple cases, but they tend to hit a wall when the workflow gets complex: call this API, branch on this policy, wait for this approval, update this record, retry this operation, open this pull request, and make the whole thing understandable later.

When we made this decision in early 2024, our view was that code was going to get much cheaper to write because LLMs were going to be good at writing it. That changed the authoring model. If workflows were often going to be authored by an LLM, they should be represented in a form the model is good at producing and humans are good at reviewing.

Imperative code is that form. It gives you standardized control flow, types, review, versioning, tests, and a way for engineers to understand exactly what will happen. Once code becomes cheap to create, deployment, execution and evaluation become the harder platform problems: making it easy to run that code in a safe, controlled, audited environment. So we built Serval around imperative TypeScript code as the source of truth for deterministic workflows, and made it as simple and secure as possible to run and iterate on that code.

Code is also what lets us target the workflows that do not fit into a predefined catalog. A fixed set of actions or a visual builder can work well for common requests, but it breaks down when the workflow is specific to one company: read this policy file, branch on this approval rule, update this internal system, open this exact pull request, and explain the result in the format this team expects.

Those are exactly the workflows that usually stay manual. A general-purpose programming model gives Serval a way to express them without waiting for someone to build a special-purpose block first.

That does not mean every procedure should be expressed as code. We also support natural language standard operating procedures called Skills, because some parts of a workflow are inherently judgment-based: interpreting what the user is asking for, applying a policy written in human language, deciding whether two requests are equivalent, or explaining why a request was denied.

Both forms matter, but they play different roles. Natural language is useful for reasoning about ambiguous inputs, interpreting user intent, and handling judgment calls. Code is the source of truth for the automation that actually runs: the deterministic, side-effecting, reviewable artifact that can be permissioned, versioned, debugged, and audited.

It also shaped how workflows run, not just how they are written. Most workflow systems expose something graph-shaped: define tasks, connect them with edges, and let the engine execute the graph. That is a good abstraction for data pipelines and batch jobs. It is not the developer experience we wanted for an AI-authored workflow system.

We wanted full control over the developer experience so the thing Serval helps author could look as much as possible like standard imperative TypeScript:

import { workflow, input } from "serval/core";

import * as github from "serval/integrations/github";

export const main = workflow({

  fn: async (

    {

      userEmail,

      role,

    }: {

      userEmail: input.String<{ description: "The user who needs access" }>;

      role: input.String<{

        description: "The database role to grant";

        enum: ["read", "write"];

      }>;

    },

    ctx: github.context.GithubIntegration,

  ) => {

    const policyFile = await github.apiRequest(

      {

        path: "/repos/{owner}/{repo}/contents/{path}",

        pathParams: {

          owner: "acme",

          repo: "infra",

          path: "terraform/access/staging.tf",

        },

        method: "GET",

        query: { ref: "main" },

      },

      ctx,

    );

    const currentPolicy = Buffer.from(

      policyFile.content,

      "base64",

    ).toString("utf-8");

    if (currentPolicy.includes(userEmail)) {

      return { status: "already_has_access" };

    }

    const branch = `serval/grant-staging-db-${userEmail.replace(/[@.]/g, "-")}`;

    const updatedPolicy = addIamBinding(currentPolicy, {

      user: userEmail,

      role,

      resource: "staging_database",

    });

    await createBranchFromMain({ branch }, ctx);

    await github.apiRequest(

      {

        path: "/repos/{owner}/{repo}/contents/{path}",

        pathParams: {

          owner: "acme",

          repo: "infra",

          path: "terraform/access/staging.tf",

        },

        method: "PUT",

        body: {

          branch,

          message: `Grant ${userEmail} ${role} access to staging database`,

          content: Buffer.from(updatedPolicy).toString("base64"),

          sha: policyFile.sha,

        },

      },

      ctx,

    );

    const pr = await github.apiRequest(

      {

        path: "/repos/{owner}/{repo}/pulls",

        pathParams: { owner: "acme", repo: "infra" },

        method: "POST",

        body: {

          head: branch,

          base: "main",

          title: `Grant ${userEmail} ${role} access to staging database`,

        },

      },

      ctx,

    );

    return {

      status: "pending_review",

      pullRequestUrl: pr.html_url,

    };

  },

});

That is the point: Large language models are good at writing this kind of code, and imperative code is a very efficient way to represent logic. You get conditionals, loops, functions, types, libraries, and all the syntax programming languages have evolved to express complex behavior compactly. If necessary, an admin can review the behavior. The side-effecting work is explicit, typed, and inspectable.

Underneath, the runtime still has to behave like a long-running workflow engine. A real company workflow waits on approvals, retries failed integrations, resumes days later, and leaves behind enough state to debug what happened. We built our own durable execution engine for two reasons: to keep authored workflows as close as possible to standard TypeScript, and to have full control over the developer experience, even when the developer is an LLM. The code should use normal control flow and normal awaits, not a manually constructed state machine, while the runtime handles persistence, resumability, idempotency, visibility, and human-in-the-loop execution.

This decision has kept paying dividends. We use code-based workflows all over Serval to make the product more extensible. Our Databases product is a good example: LLM-generated Serval workflows can ingest data from external systems so Serval has a complete view of the connected tools around a customer. In practice, that turns Serval into something like an ETL pipeline plus datastore, built on the same workflow substrate we use for on-demand automations.

Decision 3: Own the integration engine and execution environment

The third decision was to own the integration engine and the environment where workflow code runs.

This sounds like plumbing, but it is what makes it possible for Serval to be a complete, universal automation platform. To automate the long tail, Serval cannot expose a small menu of prebuilt actions. It needs to understand and call the full API of each connected system: the common paths, the obscure endpoints, the permissions, the auth model, and the ways the API fails.

So we built the integration layer to do two jobs.

At runtime, it is the controlled boundary between workflow code and external systems. Workflow code can call GitHub, Okta, Salesforce, Google Workspace, AWS, Snowflake, Jira, Slack, Terraform, and other tools through approved interfaces, without ever handling raw credentials directly.

At authoring time, it is the context the Serval automation agent needs to write useful workflows against those systems. The integration layer knows what objects exist, which endpoints can be called, what scopes are required, what the request and response types look like, and what good examples look like.

We wanted security baked into the system at the boundary between workflow code and integrations. Workflow authors should be able to call approved capabilities, but they should not be able to access raw credentials from the runtime. Code runs in a sandbox we control, while the integration layer applies the right credential outside that runtime. That gives us one place to enforce permissions, observe actions, attribute what happened, and, when needed, run workflows safely in customer-owned environments.

The model can write the workflow. The platform has to make it safe to run: permissioned, durable, observable, and capable of taking action across real systems in a fundamentally secure way.


The bet

Serval is a bet that LLMs will cause much more code to be written to automate company operations. If that code becomes cheap enough to create and maintain, it becomes possible to automate any repetitive process inside a company. Not just the common requests. Not just the workflows that fit neatly inside an existing tool. The goal is a universal automation platform that can handle the long tail of rare, messy, company-specific requests that were never worth automating before.

That goal has shaped almost every technical decision we have made. We try not to take simplifying assumptions that make the first version easier but make the full solution impossible later. A fixed menu of actions is easier than a programmable workflow engine. A thin layer on top of tickets is easier than owning workflow state. Passing credentials into a runtime is easier than building a secure integration boundary. Exposing a DAG is easier than making durable execution look like normal TypeScript.

We chose the harder path in these places because the product needs the underlying platform to be general, secure, and reliable. If Serval is going to automate company operations end to end, the system has to be able to express the process, execute it safely, survive real-world failure modes, and keep a clear audit trail.

What does the world look like when that bet pays off? “Can you give Priya access to the staging database?” is the whole interaction. Serval checks the policy, opens the Terraform PR, routes it to the right approver, resumes when it is approved, applies the change, and tells the requester what happened. There may still be human approval where the company wants it. Priya just does not have to shepherd the request across systems or spend time clearing operational hurdles on the way to getting their work done.

That is the bar we are building toward: a platform that can take any repetitive company process and turn it into something reliable, secure, and easy to run.

If building that kind of system sounds exciting, we would love to work with you.

Jake Stauch and Alex McLeod

Do the hard things, always

How Serval is building a universal automation platform to eliminate manual operational work across companies.

Jake Stauch and Alex McLeod

Serval’s Three Operating Principles

We don't have a culture deck. We have three operating principles.

Serval Start

Introducing Serval Start: A New Path for Aspiring Founders

A two-year program for builders who want to become founders — before they have a company to build.

Jake Stauch and Alex McLeod

Following the Founders: Why I Joined Serval

Founding Engineer, Kaz Hishida, tells the story of why he joined Serval.

Jake Stauch and Alex McLeod

Serval’s Next Chapter: Raising $75M to Build the New Era of Enterprise Automation and Service Management

We helped customers automate more than 50% of their tickets. Sequoia took notice.

Jake Stauch and Alex McLeod

Introducing Serval's AI-native access management

Serval's AI-native access management centralizes operations and improves security for IT and security teams

Jake Stauch and Alex McLeod

Gartner IT Symposium Recap: Why it matters that Serval is AI-native

Serval's AI native infrastructure provides huge benefits over legacy ITSM platforms.

Jake Stauch and Alex McLeod

General Catalyst Article: Doubling Down on Serval: Building Intelligent IT Agents for the AI Era

Investor, General Catalyst posts about Serval's Series A launch

Jake Stauch and Alex McLeod

TechCrunch Article: Serval raises $47M to bring AI agents to IT service management

TechCrunch announces Serval's Series A

Jake Stauch and Alex McLeod

Announcing $52M Total Raised to Deploy AI Agents for IT

Serval adds $47M in Series A funding, led by Redpoint Ventures with participation from First Round, General Catalyst, Box Group, Bessemer Venture Partners, Chemistry, and others.

Jake Stauch and Alex McLeod

Automate 80% of IT tickets in 24 hrs

At JNUC 2025, Serval CEO Jake Stauch showed how IT teams use Serval’s AI agents to automate 80% of help desk tickets in 24 hours. From access requests to onboarding to Jamf-specific workflows. The session highlighted how Serval unifies ITSM, workflow automation, and access management into one secure, AI-native platform used by companies like Perplexity and Verkada.

Jake Stauch and Alex McLeod

Oktane Takeaways: Serval + Okta for AI-Native Automation

How Serval works seamlessly for Okta customers

Jake Stauch and Alex McLeod

AI Agents for IT: Vibe Coding Verkada Automations with Serval

You don’t need to code to build the Verkada workflows of your dreams. Build automations from natural language prompts, unlocking the potential of Verkada’s APIs.

Jake Stauch and Alex McLeod

New Integrations for Enterprise IT: Microsoft, ServiceNow & Workday

Serval integrating with Microsoft, ServiceNow & Workday to support enterprise IT

Jake Stauch and Alex McLeod

Introducing Prebuilt Workflows

Installable, ready-made workflows for easier onboarding

Jake Stauch and Alex McLeod

Introducing Slack Shortcuts and Manual Ticket Creation

New tools for creating tickets in Serval

Jake Stauch and Alex McLeod

Introducing Manager and Multi-step Approvals

New approval features ensure robust controls over AI tool access

Jake Stauch and Alex McLeod

Is this the end of IT tickets?

See how IT ticketing is evolving with the deployment of AI agents

Jake Stauch and Alex McLeod

Serval Team Member Spotlight: Teddy Wahle

Celebrating Teddy's achievements

Jake Stauch and Alex McLeod

Introducing Serval Silent Mode

Keep Serval AI in the background and tag for help when needed

Jake Stauch and Alex McLeod

Introducing AI Feedback

Collect user feedback on Serval's AI agent and track changes in a real-time dashboard

Jake Stauch and Alex McLeod

Introducing Serval's New Public API

Create tickets from anywhere, embed AI resolutions, and sync users at scale with a single set of REST endpoints and webhooks.

Serval ticketing integration with Jira Service Management and Freshservice

Introducing Serval Integration with Jira Service Management, Freshservice, and Linear

Take advantage of Serval's AI capabilities without replacing your existing ticketing system

Jake Stauch and Alex McLeod

Introducing Private Serval Messages with Team Routing

Your own private help desk - for all your requests

Jake Stauch and Alex McLeod

Introducing Tasks in Serval Tickets

Say goodbye to Jira checkboxes. Serval tickets now track manual tasks.

Jake Stauch and Alex McLeod

Introducing GitHub Automations

Automate GitHub PRs and more from a help desk request

Jake Stauch and Alex McLeod

Serval Team Member Spotlight: Derrick Liu

Celebrating Derrick's achievements

Jake Stauch and Alex McLeod

Introducing Third Party Knowledge Base Integration

Serval's AI agent answers employee questions using docs from Notion, Confluence, etc.

Jake Stauch and Alex McLeod

Introducing Request on Behalf Of

Run workflows on behalf of other users - with approval

automation vs deflection help desk

The Difference between Automation and Deflection in the Help Desk

They not like us

Jake Stauch and Alex McLeod

Migrating from Jira Service Management to Serval

It's easier than ever to modernize your ITSM

Jake Stauch and Alex McLeod

AI to Help Humans Work Better - Not Take Jobs

AI enables otherwise impractical best practices in IT and security

Jake Stauch and Alex McLeod

Introducing Ticket Auto Updates

"Quiet AI" for the modern ITSM

Jake Stauch and Alex McLeod

Introducing Serval’s AI-Powered Email Help Desk

AI resolutions to any help desk request over email

Jake Stauch and Alex McLeod

Serval Team Member Spotlight: Sebastien Lajeunesse-deGroot

Celebrating Sebastien's achievements at Serval

Jake Stauch and Alex McLeod

Introducing Email Support, Internal Notes, Merging, and Image Attachments

Latest features add more capabilities for Serval ITSM

Jake Stauch and Alex McLeod

Serval Copilot

AI superpowers for human agents

Jake Stauch and Alex McLeod

Introducing Image Recognition

Serval now diagnoses and resolves help desk requests from a screenshot

Jake Stauch and Alex McLeod

Serval Team Spotlight: Kaz Hishida

Celebrating Kaz's achievements at Serval

Jake Stauch and Alex McLeod

AI Insights

Serval AI categorizes historical tickets and highlights automation opportunities

Jake Stauch and Alex McLeod

Making IT Automation Safe and Secure

Guardrails are key to deploying AI in the ITSM

Jake Stauch and Alex McLeod

Analytics, Public API, and Serval for Serval Automations

Latest updates for Serval power users

Suggested guidance

Natural Language Approvals, Automated Knowledge Base Updates, and Version Control

New features for help desk automation

Jake Stauch and Alex McLeod

Automating the Automation for IT

Natural language workflow builder eliminates friction in building IT automations

Jake Stauch and Alex McLeod

Introducing Serval

AI to give IT superpowers

Jake Stauch and Alex McLeod

Serval Achieves SOC 2 Type 2 Compliance

Continuing our commitment to data security

Jake Stauch and Alex McLeod

Scheduled Workflows

Run workflows on a recurring schedule

View More

What will you build?

Book a demo

What will you build?

Book a demo

What will you build?

Book a demo