Content Redaction node¶
Status: Current | Last reviewed: 2026-07-08
Detects and redacts sensitive content from text before downstream nodes use it.
Behavior¶
Use this block in front of any node that should not see raw sensitive content, typically an AI Agent or a Notification. Bind downstream nodes to {{<this_node_id>.redacted_text}} rather than the original upstream value, so the data flow is auditable on the canvas.
The provider is selected by the integration you pick: Amazon Comprehend, Google DLP, or Azure AI Language. Only integrations with the PII Redaction capability appear in this field. Detected entities are normalised to a small canonical set (NAME, EMAIL, SSN, etc.) so branches that key on entity type do not break when you swap providers.
On detection error defaults to Passthrough so outages do not block operational flows. Switch it to Fail for strict data-loss-prevention paths.
You can add this node from the workflow editor add-node menu when building a flow.
- Choose passthrough on detection error only when losing the branch would be worse than letting the original text continue with a warning.
Configuration options¶
| Option | Required | Type | Values / default | What it controls |
|---|---|---|---|---|
Integration (integration_id) |
Yes | string | Credential used to call the redaction service. Provider is determined by the selected integration. | |
Input text (input) |
Yes | string | Text to scan for PII. Merge templates supported - e.g. {{trigger.body.message}} or {{ |
|
Language (language) |
No | string | Default: en |
ISO-639-1 language code passed to the provider. Defaults to en. |
Entity types to redact (entity_types) |
No | array | Default: [] |
Limit redaction to specific entity types. Leave empty to redact everything the provider returns. |
Action (action) |
No | string | redact, replace, mask; Default: redact |
Redact with the default marker, replace with a custom placeholder, or mask each character with '*'. |
Placeholder (placeholder) |
No | string | Default: [REDACTED:{TYPE}] |
Replacement string. Use {TYPE} to interpolate the canonical entity type - e.g. [REDACTED:NAME]. |
Minimum confidence (min_confidence) |
No | number | Default: 0.6 | Detections below this score are ignored. 0 redacts everything the provider flags; 1 redacts only its highest-confidence detections. |
On detection error (on_error) |
No | string | fail, passthrough; Default: passthrough |
Fail surfaces an error to the workflow and halts the branch. Passthrough lets the original text continue with a warning attached. |
Outputs¶
| Output | Type | What it contains |
|---|---|---|
redacted_text |
string | Input text with detected entities replaced. |
original_text |
string | The exact input the node was handed (after merge-template rendering). |
entities |
array | Detected entities. Each entry: { type, start, end, score, original, raw_type }. |
provider |
string | Integration source/type that handled the request - useful for branching on the cloud used. |