Description
n8n-nodes-deepkeep
An n8n community node for the DeepKeep AI Firewall API.
Use it in your workflows to check LLM inputs and outputs against DeepKeep guardrails and make arbitrary authorized calls to any DeepKeep API endpoint.
Installation
Via the n8n UI (self-hosted or Cloud once verified)
In your n8n instance, go to Settings → Community Nodes → Install, paste n8n-nodes-deepkeep, and click Install.
Manually (self-hosted)
From your n8n root directory:
npm install n8n-nodes-deepkeep
Make sure N8NCOMMUNITYPACKAGES_ENABLED=true (default in recent versions), then restart n8n.
Credentials
Create a DeepKeep API credential with:
| Field | Value |
| ——– | ——————————————————————— |
| Base URL | The base URL of your DeepKeep instance, without a trailing slash. Required for node version 2. |
| Subdomain | Legacy field for existing node version 1 workflows. The legacy base URL is https://api.. |
| API Key | Your DeepKeep API key. Sent as the X-API-Key header on every request. |
The credential is tested against GET /health.
Operations
New workflows use node version 2 by default. Existing workflows saved with node version 1 continue to use the legacy conversation API.
Version 2: Moderation
Version 2 operations live under the Moderation resource.
Pre moderation
Checks model input against the guardrails defined on a DeepKeep firewall.
- Model — DeepKeep firewall ID. Sent as the OpenAI-compatible
modelfield. - Input — the text to check.
- Title — optional request title.
- Chat — optional chat identifier or context.
Calls POST /api/v3/openai/moderations/pre with:
{"model":"input-firewall-id","input":"hello","title":"","chat":""}
Post moderation
Checks model output against the guardrails defined on a DeepKeep firewall.
model field.Calls POST /api/v3/openai/moderations/post with:
{"model":"output-firewall-id","output":"hello","title":"","chat":""}
Make API call
An escape hatch that lets you call any DeepKeep endpoint with the configured credentials.
/api/v3/openai/moderations/pre).GET, POST, PUT, PATCH, DELETE.Content-Type: application/json is included by default.Returns { statusCode, headers, body }. body is parsed as JSON when possible, otherwise passed through as a string. Non-2xx responses are returned in the envelope rather than thrown.
Version 1: Firewall conversation
Version 1 is retained for backwards compatibility with existing workflows. It uses the legacy Firewall Conversation resource and the legacy subdomain credential field.
#### Check input
Checks a prompt against the guardrails defined on a firewall.
Calls POST /api/v2/firewalls/{firewallId}/conversation/{conversationId}/checkuserinput.
#### Create conversation
Starts a new conversation on a firewall.
Calls POST /api/v2/firewalls/{firewallId}/conversation.
#### Make API call
Calls a path relative to the legacy API base https://api..
Migration from 0.1.x
Version 0.2.7 introduces light node versioning so existing workflows remain backwards compatible while new workflows use the same OpenAI-compatible DeepKeep API calls used by the LangChain integration.
Local development
See the sibling n8n-deepkeep/ folder in the source repository for a Docker Compose setup that runs n8n locally with this package mounted as a custom node.