Port.io n8n custom nodes for interacting with Port via n8n workflows.
As of November 2025, the focus of this package is on AI interactions through Port’s AI APIs. Future releases will expand to additional REST integrations and workflow automations, enabling n8n and Port users to connect multiple tools seamlessly. This is an experimental package, no support can be provided in relation to your use of this package, if you've found a bug or need a feature currently not supported, open a GitHub issue,
You can install the package directly from npm:
npm install @port-labs/n8n-nodes-portio-experimentalor using pnpm:
pnpm add @port-labs/n8n-nodes-portio-experimentalNote
When installed this way, the nodes will be available in your n8n instance once you configure n8n to load community nodes. To enable this you must set the environment variable N8N_COMMUNITY_PACKAGES_ENABLED=true and install the npm packages in N8N_HOME.
- 🧱 A working n8n instance (see this quick-start guide for setup via Docker Compose)
- 📦
pnpminstalled globally (npm install -g pnpm)
-
Clone this repository inside your n8n custom nodes directory:
mkdir -p ./n8n-data/custom cd ./n8n-data/custom git clone https://github.com/port-labs/n8n-nodes-portio-experimental.git cd n8n-nodes-portio-experimental
-
Install dependencies and build the TypeScript source:
pnpm install pnpm build
-
If the build completes successfully, you’ll see a new
distdirectory containing the compiled nodes.
-
Set the trigger to “Manual Trigger” so you can execute it by clicking.

-
Select the Port.io node and choose “General Purpose AI Interaction”.

🎉 You’ve just deployed your first Port n8n node!
You can store multiple Port credentials in n8n, but we’ll start with one.
- A Port.io account with AI features enabled
- Your Client ID and Client Secret (see Port API guide)
- Double-click your Port node.
- Under “Credential to connect with”, choose “Create new credential.”

- Enter your Port
client_idandclient_secret, then click Save.

Note
JWT authentication is currently not supported because it’s unsuitable for long-term credential storage. OAuth2 credentials are the recommended method.
Before execution, ensure:
- You have a Manual Trigger connected to a Port node
- Credentials are saved
- Your Port account has AI features enabled
Then:
✅ If successful, you’ll see an AI response from Port ready to be passed to subsequent nodes.
Note
As of November 2025, only AI prompt endpoints are supported. Contributions for additional API paths are welcome.
| Method | Path | Purpose | Path Params | Body (required) | Optional Params | Notes | Success Response |
|---|---|---|---|---|---|---|---|
POST |
/v1/agent/:agentIdentifier/invoke |
Invoke a specific agent | agentIdentifier |
— | context, prompt, labels, provider, model |
Providers: openai | azure-openai | anthropic | bedrock | port Models: gpt-5 | claude-sonnet-4-20250514 |
JSON agent result |
POST |
/v1/ai/invoke |
General-purpose AI interaction | — | invocation_identifier, userPrompt, tools |
labels, provider, model, systemPrompt, executionMode |
Execution mode: Automatic | Approval Required |
JSON result |
GET |
/v1/ai/invoke/:invocation_identifier |
Fetch invocation result | invocation_identifier |
— | — | — | { ok: boolean, result: object } |
Contributions are welcome!
- Fork the repo
- Create a new branch (
feat/awesome-thing) - Make your changes
- Submit a PR with a clear description of your update
Please include tests and examples when possible.
MIT © Port Labs
// Example: Calling a Port AI node programmatically via n8n API
const axios = require('axios');
const res = await axios.post('https://n8n.local/api/v1/workflows/1/execute', {
userPrompt: 'Summarize this README for me!',
provider: 'openai',
model: 'gpt-5'
});
console.log(res.data);| Field | Value |
|---|---|
| Package name | @port-labs/n8n-nodes-portio-experimental |
| Version | 1.0.0-alpha.5 (experimental release) |
| Node type | Custom n8n nodes |
| Focus | Port AI integrations |
| Status | Experimental / early access |




