# Dataset Management

Dataset Management lets you review the object types a source collects and control how the source aggregates those objects into SailPoint. Use Dataset Management to view and manage resource attributes, datasets and their resources, enable dataset aggregation schedules, perform manual aggregation, and view aggregation history.

> [!NOTE]
>
> Datasets are also available in SailPoint Agentic Fabric. Contact your Customer Success team and refer to [SailPoint Agentic Fabric](<https://documentation.sailpoint.com/saas/help/agentic_fabric/index.html>) for more information.

For more information, refer to [Managing Datasets and Resources](<https://documentation.sailpoint.com/saas/help/sources/datasets.html>) for datasets, resources, owner correlation, and aggregation.

## Datasets

A *dataset* is a named group of one or more related resources that the source aggregates together.

When aggregation runs for a dataset, the source collects all resources in that dataset from the managed system in one aggregation job. Activate or deactivate aggregation at the dataset level, not for individual resources.

> [!NOTE]
>
> Each resource belongs to exactly one dataset for that source. The source defines which resources belong to each dataset. You can enable aggregation and review associated resources, but you cannot create or delete datasets or move resources between them.

### Dataset Aggregation

Configure aggregation on the **Dataset Aggregations** tab for each dataset. Configure each dataset separately. During aggregation, your owner correlation rules are automatically applied to link machine identities to their human owners. For more information, refer to [Configuring Dataset Aggregations](<https://documentation.sailpoint.com/saas/help/sources/datasets.html#configuring-dataset-aggregations>).

## Resources

A resource defines an object type from the managed system. It specifies the kind of object, the attributes the source collects, and how the source identifies and displays each object. Resources form the building blocks of the data model.

In the UI, each resource appears under **Dataset Management** \> **Resources** with its schema. A resource does not run aggregation by itself. The dataset that owns the resource collects it during aggregation.

For more information, refer to [Managing Resources](<https://documentation.sailpoint.com/saas/help/sources/datasets.html#managing-resources>).

### Owner Correlation

Configure owner correlation on each resource to link aggregated objects to human owners. If you do not configure owner correlation, or if the mapping produces no match, an owner is not assigned. For more information, refer to [Configuring Owner Correlation](<https://documentation.sailpoint.com/saas/help/sources/datasets.html#configuring-owner-correlation>).

## Supported Datasets

Go to **Dataset Management \> Datasets** on your N8N SaaS source to view the datasets the connector aggregates. Select a dataset to review its associated resources and configure aggregation.

> [!NOTE]
>
> Configure aggregation for each dataset separately. For more information, refer to [Dataset Aggregation](<https://documentation.sailpoint.com/saas/help/sources/datasets.html#configuring-dataset-aggregations>).

The connector aggregates automation and AI topology in the Workflow Graph dataset and stored integration credentials in the Credentials dataset. Both datasets use a default aggregation schedule of daily at 02:00 UTC (`0 2 * * *`).

During workflow-graph aggregation, the connector scans all workflows once (`GET /api/v1/workflows`, paginated), derives agent, tool, and MCP resources from workflow node graphs, and then scans credentials separately (`GET /api/v1/credentials`, paginated).

| Dataset name | Associated resources | Dataset ID |
| --- | --- | --- |
| Workflow Graph | Workflow, Agent, Tool, MCP Client, MCP Server | `N8N:workflow-graph` |
| Credentials | Credential | `N8N:credentials` |

### Workflow Graph

The Workflow Graph dataset aggregates automation and AI topology from the workflows API. The connector emits at least one Workflow resource row for every workflow and emits additional resource rows for workflows that contain AI or MCP nodes.

### Credentials

The Credentials dataset aggregates all stored credentials from the credentials API independently of workflow scans. The connector includes orphaned and globally shared credentials. The N8N API never returns secret credential values.

## Supported Resources

A resource represents an object type that the connector collects from N8N, such as workflows, AI agents, tools, MCP endpoints, or stored credentials. Each resource defines the attributes the connector collects for that object type and how SailPoint displays each object.

For more information, refer to [Managing Resources](<https://documentation.sailpoint.com/saas/help/sources/datasets.html#managing-resources>).

> [!NOTE]
>
> When you enable dataset aggregation for a selected dataset, all resources in that dataset are collected at once. Activate or deactivate aggregation at the dataset level, not for individual resources.

| Resource name | Resource type | Resource ID |
| --- | --- | --- |
| Workflow | Application | `N8N:workflow` |
| Agent | Agent | `N8N:agent` |
| Tool | Capability | `N8N:tool` |
| MCP Client | Capability | `N8N:mcp-client` |
| MCP Server | Application | `N8N:mcp-server` |
| Credential | Credential | `N8N:credential` |

## Workflow Attributes

The following table lists schema attributes for the Workflow resource (`N8N:workflow`).

| Property | Value |
| --- | --- |
| Name | Workflow |
| Type | `std:application` |
| Identity attribute | `identity` |
| Display attribute | `name` |

### Attributes

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `identity` | string | Yes | N8N workflow ID (stable native identity). |
| `name` | string | Yes | Workflow display name. |
| `description` | string | No | Connector-generated description for this workflow. |
| `active` | boolean | No | Indicates whether the workflow is active (enabled) in N8N. |
| `workflowType` | string | No | The connector derives this classification: `APPLICATION`, `AGENT`, `MCP_SERVER`, or `AGENT_MCP_SERVER`. |
| `nodeCount` | integer | No | Total number of nodes in the workflow. |
| `projectId` | string | No | N8N project ID this workflow belongs to (when returned by API). |
| `projectName` | string | No | N8N project display name (when returned by API). |
| `tags` | string list | No | Workflow tag names (when returned by API). |
| `createdAt` | string | No | Workflow creation timestamp (ISO-8601 UTC). |
| `updatedAt` | string | No | Workflow last-updated timestamp (ISO-8601 UTC). |
| `spStatus` | string | No | The connector sets this normalized lifecycle status from the `active` attribute: `Active` when `active` is `true`, `Inactive` when `false`. |
| `spDescription` | string | No | Source-system description copied from the workflow description field for governance display. |

## Agent Attributes

The following table lists schema attributes for the Agent resource (`N8N:agent`).

| Property | Value |
| --- | --- |
| Name | Agent |
| Type | `std:agent` |
| Identity attribute | `identity` |
| Display attribute | `name` |

### Attributes

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `identity` | string | Yes | Stable native identity: `{workflowId}:{nodeId}` for both root agents and sub-agents. |
| `name` | string | Yes | Agent node canvas display label. |
| `description` | string | No | Connector-generated description for this agent. |
| `spBusinessApplication` | string | No | SailPoint business application identifier. Always `N8N` for N8N AI agents. |
| `agentKind` | string | Yes | `AGENT` for root workflow-level AI agents; `SUB_AGENT` for inline sub-agent nodes that connect as tools to a parent agent. |
| `active` | boolean | No | Indicates whether the parent workflow is active (enabled) in N8N. |
| `agentNodeType` | string | No | N8N node type of the primary agent node (e.g. `@N8N/N8N-nodes-langchain.agent`). |
| `agentNodeName` | string | No | Canvas display label of the primary agent node within the workflow. |
| `languageModel` | string | No | The language model provider that the agent uses (for example, `openai`, `anthropic`, or `google`). |
| `toolCount` | integer | No | Number of tool sub-nodes wired to this agent via the `ai_tool` channel (root agents only). |
| `mcpClientCount` | integer | No | Number of MCP Client Tool sub-nodes wired to this agent (root agents only). |
| `nodeId` | string | No | N8N node UUID within the workflow JSON (sub-agents; absent for root agents). |
| `workflowId` | string | No | Workflow ID containing this sub-agent (sub-agents only). |
| `workflowName` | string | No | Workflow display name (sub-agents only). |
| `parentAgentNodeId` | string | No | Node UUID of the parent agent this sub-agent is wired to (sub-agents only). |
| `parentAgentNodeName` | string | No | Canvas label of the parent agent node (sub-agents only). |
| `projectId` | string | No | N8N project ID (when returned by API). |
| `projectName` | string | No | N8N project display name (when returned by API). |
| `tags` | string list | No | Workflow tag names (when returned by API). |
| `createdAt` | string | No | Workflow creation timestamp (ISO-8601 UTC). |
| `updatedAt` | string | No | Workflow last-updated timestamp (ISO-8601 UTC). |
| `spStatus` | string | No | The connector sets this normalized lifecycle status from the parent workflow `active` flag: `Active` or `Inactive`. |
| `spDescription` | string | No | For sub-agents: `toolDescription` parameter. For root agents: workflow description field. |

## Tool Attributes

The following table lists schema attributes for the Tool resource (`N8N:tool`).

| Property | Value |
| --- | --- |
| Name | Tool |
| Type | `std:capability` |
| Identity attribute | `identity` |
| Display attribute | `name` |

### Attributes

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `identity` | string | Yes | Stable native identity: `{workflowId}:{nodeId}`. |
| `name` | string | Yes | Tool node canvas display label. |
| `description` | string | No | Connector-generated description including tool type. |
| `spType` | string | Yes | Capability type. Always `TOOL` for N8N tool sub-nodes. |
| `toolNodeType` | string | No | Full N8N node type string (e.g. `@N8N/N8N-nodes-langchain.toolHttpRequest`). |
| `nodeId` | string | No | N8N node UUID within the workflow JSON. |
| `workflowId` | string | No | Workflow ID containing this tool node. |
| `workflowName` | string | No | Workflow display name. |
| `parentAgentNodeId` | string | No | Node UUID of the AI agent this tool is wired to. |
| `parentAgentNodeName` | string | No | Canvas label of the parent AI agent node. |
| `credentialIds` | string list | No | N8N credential IDs referenced in this tool node's parameters (when available). |
| `spStatus` | string | No | The connector sets this normalized lifecycle status from the parent workflow: `Active` or `Inactive`. |
| `spDescription` | string | No | Tool description from the node's `toolDescription` or `description` parameter. |

## MCP Client Attributes

The following table lists schema attributes for the MCP Client resource (`N8N:mcp-client`).

| Property | Value |
| --- | --- |
| Name | MCP Client |
| Type | `std:capability` |
| Identity attribute | `identity` |
| Display attribute | `name` |

### Attributes

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `identity` | string | Yes | Stable native identity: `{workflowId}:{nodeId}`. |
| `name` | string | Yes | MCP Client Tool node canvas display label. |
| `description` | string | No | Connector-generated description including server URL. |
| `spType` | string | Yes | Capability type. Always `MCP_CLIENT` for N8N MCP Client Tool nodes. |
| `serverUrl` | string | No | SSE endpoint URL for the remote MCP server that this client connects to. |
| `authMethod` | string | No | Authentication method: `bearer`, `header`, `multipleHeaders`, `oauth2`, or `none`. |
| `toolsFilter` | string | No | Defines which tools from the server the agent can use: `ALL`, `SELECTED`, or `ALL_EXCEPT`. |
| `nodeId` | string | No | N8N node UUID within the workflow JSON. |
| `workflowId` | string | No | Workflow ID containing this MCP client node. |
| `workflowName` | string | No | Workflow display name. |
| `parentAgentNodeId` | string | No | Node UUID of the AI agent this MCP client is wired to. |
| `parentAgentNodeName` | string | No | Canvas label of the parent AI agent node. |
| `spStatus` | string | No | The connector sets this normalized lifecycle status from the parent workflow: `Active` or `Inactive`. |

## MCP Server Attributes

The following table lists schema attributes for the MCP Server resource (`N8N:mcp-server`).

| Property | Value |
| --- | --- |
| Name | MCP Server |
| Type | `std:application` |
| Identity attribute | `identity` |
| Display attribute | `name` |

### Attributes

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `identity` | string | Yes | N8N workflow ID (same as the corresponding Workflow resource when the workflow exposes an MCP Server Trigger). |
| `name` | string | Yes | Workflow display name. |
| `description` | string | No | Connector-generated description for this MCP server workflow. |
| `active` | boolean | No | Indicates whether the workflow is active and the production MCP URL is live. |
| `authMethod` | string | No | Authentication method required for MCP clients: `bearer`, `header`, or `none`. |
| `exposedToolCount` | integer | No | Number of tool nodes exposed by this MCP server workflow. |
| `exposedToolNames` | string list | No | Canvas names of tool nodes attached to the MCP Server Trigger. |
| `projectId` | string | No | N8N project ID (when returned by API). |
| `projectName` | string | No | N8N project display name (when returned by API). |
| `createdAt` | string | No | Workflow creation timestamp (ISO-8601 UTC). |
| `updatedAt` | string | No | Workflow last-updated timestamp (ISO-8601 UTC). |
| `spStatus` | string | No | The connector sets this normalized lifecycle status from the workflow `active` flag: `Active` or `Inactive`. |

## Credential Attributes

The following table lists schema attributes for the Credential resource (`N8N:credential`).

| Property | Value |
| --- | --- |
| Name | Credential |
| Type | `std:credential` |
| Identity attribute | `identity` |
| Display attribute | `name` |

### Attributes

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `identity` | string | Yes | N8N credential ID (stable native identity). |
| `name` | string | Yes | Credential display name. |
| `description` | string | No | Connector-generated description including credential type. |
| `credentialType` | string | Yes | N8N credential type string (e.g. `slackApi`, `googleSheetsOAuth2Api`, `httpHeaderAuth`). |
| `isGlobal` | boolean | No | Indicates whether the credential is shared globally across the N8N instance. |
| `isManaged` | boolean | No | Indicates whether an external process manages the credential (for example, through environment variables). |
| `createdAt` | string | No | Credential creation timestamp (ISO-8601 UTC). |
| `updatedAt` | string | No | Credential last-updated timestamp (ISO-8601 UTC). |
| `spStatus` | string | No | The connector does not populate this attribute because the N8N credentials API does not include an active flag. |
