> ## Documentation Index
> Fetch the complete documentation index at: https://docs.serval.com/llms.txt
> Use this file to discover all available pages before exploring further.

# December 4, 2025

> This release includes custom approval workflows, semantic workflow search, workflow tagging, shared workflow syncing, and major UI improvements.

export const ZoomVideo = ({webm, mp4, alt}) => {
  const [open, setOpen] = React.useState(false);
  React.useEffect(() => {
    if (!open) return;
    const onKey = e => {
      if (e.key === 'Escape') setOpen(false);
    };
    document.addEventListener('keydown', onKey);
    const prevOverflow = document.body.style.overflow;
    document.body.style.overflow = 'hidden';
    return () => {
      document.removeEventListener('keydown', onKey);
      document.body.style.overflow = prevOverflow;
    };
  }, [open]);
  return <>
      <video autoPlay loop muted playsInline onClick={() => setOpen(true)} aria-label={alt} style={{
    width: '100%',
    borderRadius: '0.5rem',
    cursor: 'zoom-in',
    display: 'block'
  }}>
        {webm && <source src={webm} type="video/webm" />}
        {mp4 && <source src={mp4} type="video/mp4" />}
      </video>
      {open && <div onClick={() => setOpen(false)} role="dialog" aria-modal="true" aria-label={alt} style={{
    position: 'fixed',
    inset: 0,
    background: 'rgba(0, 0, 0, 0.85)',
    zIndex: 9999,
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    cursor: 'zoom-out',
    padding: '2rem'
  }}>
          <video autoPlay loop playsInline controls onClick={e => e.stopPropagation()} style={{
    maxWidth: '95vw',
    maxHeight: '95vh',
    borderRadius: '0.5rem',
    boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.5)',
    cursor: 'default'
  }}>
            {webm && <source src={webm} type="video/webm" />}
            {mp4 && <source src={mp4} type="video/mp4" />}
          </video>
          <button onClick={() => setOpen(false)} aria-label="Close" style={{
    position: 'fixed',
    top: '1rem',
    right: '1rem',
    width: '2.5rem',
    height: '2.5rem',
    borderRadius: '9999px',
    background: 'rgba(255, 255, 255, 0.1)',
    border: '1px solid rgba(255, 255, 255, 0.2)',
    color: 'white',
    fontSize: '1.25rem',
    cursor: 'pointer',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }}>
            ×
          </button>
        </div>}
    </>;
};

## Highlights

* [Build Custom Approval Workflows](#build-custom-approval-workflows)
* [Schedule One-Time Workflows](#schedule-one-time-workflows)
* [Sync Shared Workflows Across Teams](#sync-shared-workflows-across-teams)
* [Tag and Organize Workflows](#tag-and-organize-workflows)
* [Organize Guidance in the Sidebar](#organize-guidance-in-the-sidebar)

## Build Custom Approval Workflows

Automate approval decisions based on your business rules. Route requests to the right approver automatically or approve/deny instantly based on custom logic. Automated decisions show clearer context in both the platform and Slack.

Custom approval workflows have three possible outcomes:

* **Auto-approve**: Workflow continues until approval is received
* **Auto-deny**: Workflow continues until approval is denied
* **Manual approval required**: Workflow pauses for manual approval (only primary approvers receive notifications; approval requests include Approve/Deny buttons in Slack)

*For example, automatically approve PTO requests under three days but route longer requests to managers. Or determine the right approver based on department, seniority, or budget thresholds.*

<iframe src="https://www.youtube.com/embed/ZvL--xA3n8A" title="YouTube video player" frameborder="0" className="w-full aspect-video rounded-xl" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />

## Schedule One-Time Workflows

The help desk agent can now schedule one-time workflows when you specify a time. Plan workflow runs in advance, like adding a user to an Okta group when they leave for travel and removing them when they return. Workflows will be run automatically at the times you specify.

<Frame>
  <ZoomVideo webm="/images/251203_Feature_Schedule_One-Time_Workflows_vBig.webm" mp4="/images/251203_Feature_Schedule_One-Time_Workflows_vBig.mp4" alt="Schedule One-Time Workflows" />
</Frame>

## Sync Shared Workflows Across Teams

Pull down updates from a central workflow to maintain consistency across teams. When the source workflow changes, Serval shows an "Update Available" button. Click it to pull down changes or dismiss to maintain your version separately.

*For example, your IT team creates a laptop provisioning workflow. When HR and Engineering teams use this workflow, they can see a notification in the workflow builder and pull in updates.*

<Frame>
  <ZoomVideo webm="/images/251203_Feature_button_for_syncing.webm" mp4="/images/251203_Feature_button_for_syncing.mp4" alt="Sync Shared Workflows" />
</Frame>

## Tag and Organize Workflows

Create custom tags to organize your workflows. Collapse sections in the sidebar and search by tags to find workflows faster.

<Frame>
  <ZoomVideo webm="/images/251203_Feature_workflow_tagging.webm" mp4="/images/251203_Feature_workflow_tagging.mp4" alt="Workflow Tagging" />
</Frame>

## Organize Guidance in the Sidebar

See "Never Published" and "Disabled" guidance at a glance with new status indicators. Filter to see deleted workflows and understand which guidance is active.

<Frame>
  <ZoomVideo webm="/images/251203_Feature_guidance_filter.webm" mp4="/images/251203_Feature_guidance_filter.mp4" alt="Guidance Filter" />
</Frame>

## Platform Updates

**Access release notes easily**

New Release Notes button in your profile footer for quick access to product updates.

**Simplify navigation**

Cleaner sidebar labels: "My Tickets" → "Tickets", "My Teams" → "Teams", "My Access" → "Access", "Organization Settings" → "Settings". Navigation paths updated to match (e.g., /my-tickets → /tickets).

**Filter and manage tickets**

* **"Involves" filter**: One filter for all forms of ticket involvement—assignee, requester, commenter, mentioned, approver, or task assignee. Find every ticket you're connected to without multiple filter combinations.
* **Full ticket type names**: Ticket badges now show full names instead of single-letter abbreviations. "Request" instead of "R", "Task" instead of "T", making ticket types immediately clear.

**Find workflows with semantic search**

Search for workflows by intent, not just keywords. Serval understands what you're trying to accomplish and surfaces relevant workflows even if your search terms don't match exactly. Search results now rank by semantic relevance.

*For example, search "notify manager" and find workflows about "supervisor alerts" or "leadership notifications."*
