Drag-and-drop identity authentication for Flowise workflows
Replace API keys with cryptographic identity using visual workflow builder. Zero configuration, no credentials needed. Three drag-and-drop nodes for identity, service calls, and agent communication.
API Key Sprawl Across Visual Workflows
Traditional workflow builders require storing API keys for every service integration. Keys get shared across teams, embedded in workflow templates, and become a security nightmare when team members leave.
Store API keys → Share across team → Rotate keys → Update everywhere ↓ Developer leaves company → Rotate all their keys → Every workflow breaks
Flowise xLink eliminates API keys entirely. Every workflow gets cryptographic identity instead of shared credentials.
Generate identity once → Share DID → No key rotation needed ↓ Developer leaves company → Their workflows keep running → Zero downtime
73.4% faster E2E — Total request latency including authentication overhead
0.36ms overhead — xLink identity check is negligible
Zero credential rotation — Identity never expires, no manual key management
Install and Build Workflow in 60 Seconds
Installation
npm install @private.me/flowise-xlink flowise
Visual Workflow Builder
In Flowise canvas:
- Drag XLinkIdentityNode onto canvas (generates agent identity)
- Drag XLinkCallNode onto canvas (call services with identity)
- Connect identity output to call node
- Run workflow - no API keys needed!
[XLinkIdentityNode]
↓
[XLinkCallNode (serviceName: "payments")]
↓
Display result
Result: Agent authenticates to payment service using cryptographic identity. No API keys, no OAuth, no credentials stored anywhere.
Purchase & Subscription
3-month trial — No credit card required. Start building identity-based workflows immediately.
Tiers
Standard pricing: $5/month Basic • $10/month Middle • $15/month Enterprise
- Basic ($5/month) — Flowise integration, identity nodes, service authentication
- Middle ($10/month) — Everything in Basic + advanced flow policies, custom node controls
- Enterprise ($15/month) — Everything in Middle + air-gapped deployment + white-label + compliance support
Volume discounts: 10-30% off for 5+ ACIs
Annual prepay: Additional 10-15% discount
API Purchase Endpoint
Programmatic subscription via REST API:
POST /api/purchase Content-Type: application/json { "product": "flowise-xlink", "tier": "basic", "email": "user@example.com" }
Success Response
{
"status": "success",
"subscription_id": "sub_1TQvQXBMvV...",
"tier": "basic",
"trial_end": "2026-07-28T12:00:00Z",
"billing_start": "2026-07-29T00:00:00Z"
}
Error Responses (RFC 7807)
{
"type": "https://private.me/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"detail": "Request validation failed",
"instance": "/api/purchase/req-abc123",
"fields": {
"tier": "Must be 'basic', 'middle', or 'enterprise'",
"email": "Invalid email format"
}
}
XLink Identity Node
Generate cryptographic identity for workflows. Works standalone - no inputs required.
import { XLinkIdentityNode } from '@private.me/flowise-xlink'; const node = new XLinkIdentityNode({ name: 'my-agent', description: 'Agent identity' }); const output = await node.execute(); console.log(output.did); // did:key:z6Mkh...
Output Schema
{
"did": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"identity": { "publicKey": Uint8Array, "secretKey": Uint8Array },
"publicKeyJwk": { "kty": "OKP", "crv": "Ed25519", "x": "..." }
}
XLink Call Node
Call services with identity (no credentials needed). Requires identity input from XLinkIdentityNode.
import { XLinkCallNode } from '@private.me/flowise-xlink'; const node = new XLinkCallNode({ serviceName: 'payments', timeout: 30000, retries: 3 }); const result = await node.execute({ identity: identityOutput.identity, payload: { amount: 100 } });
Output Schema
{
"success": true,
"result": { "transactionId": "tx-123" },
"timestamp": 1704067200000
}
XLink Message Node
Send or receive encrypted messages between agents. Supports both send and receive modes.
import { XLinkMessageNode } from '@private.me/flowise-xlink'; const sendNode = new XLinkMessageNode({ mode: 'send' }); const sendResult = await sendNode.execute({ identity: identityOutput.identity, recipientDid: 'did:key:z6Mkh...', message: { task: 'process-data' } });
const receiveNode = new XLinkMessageNode({ mode: 'receive' }); const messages = await receiveNode.execute({ identity: identityOutput.identity });
Complete Workflow Patterns
Basic Service Call
[XLinkIdentityNode]
↓
[XLinkCallNode (serviceName: "payments")]
↓
Display result
Agent Communication
[XLinkIdentityNode] ──────────┐
│
[XLinkMessageNode (send)]
│
├─ recipientDid: "did:key:z6Mkh..."
└─ message: { "task": "process-data" }
│
[Display: "Message sent!"]
Multi-Step Pipeline
[XLinkIdentityNode]
↓
[XLinkCallNode: fetch-data]
↓
[XLinkCallNode: process-data]
↓
[XLinkMessageNode: notify]
↓
[Display results]
Core API
XLinkIdentityNode
- constructor(options?) — Create identity node with optional name/description
- execute() — Generate cryptographic identity (async)
- Properties: name, description
- Output: { did, identity, publicKeyJwk }
XLinkCallNode
- constructor(options) — Create call node with service configuration
- execute({ identity, payload }) — Call authenticated service
- Properties: serviceName (required), timeout (default: 30000), retries (default: 3)
- Output: { success, result?, error?, timestamp }
XLinkMessageNode
- constructor(options) — Create message node with mode configuration
- execute(input) — Send or receive messages (mode-dependent)
- Properties: mode ("send" or "receive", default: "send"), timeout (default: 30000)
- Send Output: { success, messageId?, error?, timestamp }
- Receive Output: { success, messages[], error?, timestamp }
Node Configuration Properties
XLinkIdentityNode
- name (optional) — Agent name for logging/debugging
- description (optional) — Node description in Flowise UI
XLinkCallNode
- serviceName (required) — Service identifier to call
- timeout (optional) — Request timeout in milliseconds (default: 30000)
- retries (optional) — Retry attempts on failure (default: 3)
XLinkMessageNode
- mode (optional) — "send" or "receive" (default: "send")
- timeout (optional) — Operation timeout in milliseconds (default: 30000)
Structured Error Responses
All nodes return structured error responses instead of throwing exceptions. Workflows continue on individual failures.
{
"success": false,
"error": "Description of what failed",
"timestamp": 1704067200000
}
Common error scenarios:
- Missing required fields — "identity is required" / "serviceName is required"
- Network failures — Automatic retries with exponential backoff (configurable)
- Service unavailable — Error message includes retry-after information
- Invalid DID format — Validation error with expected format
Real-World Use Cases
LLM Orchestration
Chain multiple LLM calls with identity-based authentication. Each step uses cryptographic identity instead of shared API keys.
No-Code Automation
Build complex automation workflows without managing credentials. Non-technical users can connect services securely via drag-and-drop.
Multi-Agent Systems
Coordinate multiple agents with encrypted message passing. Each agent has unique cryptographic identity for secure communication.