---
title: workflow/observability
description: Utilities to hydrate serialized step input/output (I/O) and parse machine-readable workflow names for display.
docs_index: /llms.txt
lastUpdated: 2026-10-21
type: overview
summary: Explore utilities for hydrating serialized workflow data and parsing display names in observability tools.
keywords:
  - workflow/observability
  - hydrateResourceIO
  - observabilityRevivers
  - hydrateData
  - parseStepName
  - parseWorkflowName
  - parseClassName
  - data hydration
  - devalue deserialization
  - display name parsing
---

> For an index of all documentation, see [/llms.txt](/llms.txt).

The `workflow/observability` package provides utilities for observability and debugging tools. Use it to hydrate serialized step input/output (I/O) for display and parse machine-readable names into display-friendly formats.

```typescript lineNumbers
import { // [!code highlight]
  hydrateResourceIO, // [!code highlight]
  observabilityRevivers, // [!code highlight]
  hydrateData, // [!code highlight]
  parseStepName, // [!code highlight]
  parseWorkflowName, // [!code highlight]
  parseClassName, // [!code highlight]
} from "workflow/observability"; // [!code highlight]
```

## Data hydration

#### [hydrateResourceIO()](/docs/api-reference/workflow-observability/hydrate-resource-io)

Hydrate the serialized data fields of a run, step, hook, or event for display.

#### [observabilityRevivers](/docs/api-reference/workflow-observability/observability-revivers)

Standard revivers for deserializing workflow data types (Date, Map, Set, streams, etc.).

#### [hydrateData()](/docs/api-reference/workflow-observability/hydrate-data)

Hydrate a single serialized value (lower-level than hydrateResourceIO).

## Name parsing

#### [parseStepName()](/docs/api-reference/workflow-observability/parse-step-name)

Parse a machine-readable step name into display-friendly components.

#### [parseWorkflowName()](/docs/api-reference/workflow-observability/parse-workflow-name)

Parse a machine-readable workflow name into display-friendly components.

#### [parseClassName()](/docs/api-reference/workflow-observability/parse-class-name)

Parse a machine-readable class ID into display-friendly components.

## Encrypted data

When a [World](/docs/api-reference/workflow-runtime/world) stores encrypted data, the hydration utilities intentionally leave encrypted values untouched: [`hydrateData()`](/docs/api-reference/workflow-observability/hydrate-data) and [`hydrateResourceIO()`](/docs/api-reference/workflow-observability/hydrate-resource-io) return encrypted fields as raw `Uint8Array` values so observability tools can detect them and decide how to render them (for example, the Workflow CLI shows an "Encrypted" placeholder). Decryption is handled by the runtime and the World implementation. See [Encryption](/docs/how-it-works/encryption) for how keys are managed.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)