{"id":14719,"library":"n8n-nodes-kommo","title":"n8n Kommo Nodes","description":"n8n-nodes-kommo is a community-developed n8n node package designed to integrate n8n workflows with the Kommo CRM API. It provides a comprehensive set of operations to automate interactions with Kommo, including managing companies, contacts, deals, tasks, notes, and lists directly within n8n workflows. Currently at version 0.0.16, this package is in its early development stages, typical for community nodes, which implies a potentially rapid iteration cycle. While an explicit release cadence is not stated, users should anticipate frequent updates. It differentiates itself by offering a direct, pre-built bridge to Kommo's functionalities, enabling n8n users to automate CRM processes without writing custom code for API interactions. This node is installed directly through n8n's community nodes interface, rather than as a traditional npm dependency in a separate project.","status":"active","version":"0.0.16","language":"javascript","source_language":"en","source_url":"https://github.com/yatolstoy/n8n-node-kommo","tags":["javascript","n8n-community-node-package","kommo","n8n"],"install":[{"cmd":"npm install n8n-nodes-kommo","lang":"bash","label":"npm"},{"cmd":"yarn add n8n-nodes-kommo","lang":"bash","label":"yarn"},{"cmd":"pnpm add n8n-nodes-kommo","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"This package registers nodes for the n8n workflow engine and requires n8n-workflow as a peer dependency for its core types and functionalities.","package":"n8n-workflow","optional":false}],"imports":[{"note":"This is a core n8n type from the `n8n-workflow` package, essential for defining custom nodes. It is not exported directly by `n8n-nodes-kommo` but is fundamental for developers extending n8n or understanding node structure.","wrong":"import { INodeType } from 'n8n-nodes-kommo';","symbol":"INodeType","correct":"import { INodeType } from 'n8n-workflow';"},{"note":"Similar to `INodeType`, this type from `n8n-workflow` is used to define the metadata and properties of an n8n node. It's relevant for node developers, not typical end-users.","wrong":"import { INodeTypeDescription } from 'n8n-nodes-kommo';","symbol":"INodeTypeDescription","correct":"import { INodeTypeDescription } from 'n8n-workflow';"},{"note":"Assuming the primary node class is named `KommoNode` and exported as a named export. Direct programmatic import of the node class is primarily for advanced n8n customization, testing, or internal n8n loading, not for end-user workflow creation, which is typically visual.","wrong":"import KommoNode from 'n8n-nodes-kommo';\nconst KommoNode = require('n8n-nodes-kommo');","symbol":"KommoNode","correct":"import { KommoNode } from 'n8n-nodes-kommo';"}],"quickstart":{"code":"import { INodeType, INodeTypeDescription, IExecuteFunctions } from 'n8n-workflow';\n\n// This quickstart demonstrates how an n8n node *could be defined* in TypeScript,\n// mimicking the functionality of n8n-nodes-kommo for 'Get Account Info'.\n// Users of n8n-nodes-kommo typically install and configure it via the n8n UI,\n// rather than importing it programmatically into their own code.\n\n// Dummy Kommo API client (in a real node, this would handle actual API calls)\nclass MockKommoApiClient {\n  private accessToken: string;\n\n  constructor(credentials: any) {\n    // In a real scenario, credentials would be used to obtain an access token.\n    this.accessToken = credentials?.accessToken || 'mock_access_token';\n    console.log(`Initialized MockKommoApiClient with token: ${this.accessToken}`);\n  }\n\n  async getAccountInfo() {\n    console.log('Mock: Fetching Kommo account info...');\n    // Simulate API response structure for Kommo account info\n    return {\n      account_id: '1234567',\n      domain: 'mock-subdomain.kommo.com',\n      currency: 'USD',\n      timezone: 'America/New_York',\n      _system: 'Kommo-CRM-Mock'\n    };\n  }\n}\n\nexport class ExampleKommoNode implements INodeType {\n  description: INodeTypeDescription = {\n    displayName: 'Example Kommo Node',\n    name: 'exampleKommo',\n    icon: 'file:kommo.svg', // Placeholder icon\n    group: ['transform'],\n    version: 1,\n    description: 'An example n8n node to interact with Kommo CRM (mocked)',\n    defaults: {\n      name: 'Example Kommo',\n    },\n    credentials: [\n      {\n        name: 'kommoApi',\n        required: true,\n      },\n    ],\n    inputs: ['main'],\n    outputs: ['main'],\n    properties: [\n      {\n        displayName: 'Operation',\n        name: 'operation',\n        type: 'options',\n        options: [\n          {\n            name: 'Get Account Info',\n            value: 'getAccountInfo',\n            action: 'Retrieve Kommo account details',\n          },\n        ],\n        default: 'getAccountInfo',\n        noDataExpression: true,\n        description: 'The operation to perform on Kommo.',\n      },\n    ],\n  };\n\n  async execute(this: IExecuteFunctions) {\n    const items = this.getInputData();\n    const returnData = [];\n\n    const credentials = await this.getCredentials('kommoApi');\n    const kommoClient = new MockKommoApiClient(credentials);\n\n    for (let i = 0; i < items.length; i++) {\n      const operation = this.getNodeParameter('operation', i) as string;\n\n      if (operation === 'getAccountInfo') {\n        const accountInfo = await kommoClient.getAccountInfo();\n        returnData.push({ json: accountInfo });\n      } else {\n        throw new Error(`Unsupported operation: ${operation}`);\n      }\n    }\n    return [returnData];\n  }\n}\n","lang":"typescript","description":"This TypeScript code provides a conceptual example of how an n8n node for Kommo (like n8n-nodes-kommo) is structured. It demonstrates the definition of a simple node class, its metadata (description), credentials handling, and a 'Get Account Info' operation using a mocked API client. This is for developers extending n8n, as end-users interact with the node via the n8n visual editor."},"warnings":[{"fix":"Monitor the GitHub repository's issues and commit history for changes. For production environments, consider pinning to specific patch versions or thoroughly testing updates.","message":"As a community-contributed and pre-1.0 package (version 0.0.16), `n8n-nodes-kommo` may undergo frequent and potentially undocumented breaking changes in minor or patch releases.","severity":"gotcha","affected_versions":"<1.0.0"},{"fix":"Before installing, review the source code of the `n8n-nodes-kommo` package and assess its trustworthiness. Only install community nodes from developers you trust or after a thorough security audit.","message":"Community nodes, by their nature, are unverified code from public sources and may pose security risks. It's crucial to understand these implications before installation.","severity":"gotcha","affected_versions":">=0.0.1"},{"fix":"Follow the detailed setup instructions in the README exactly, ensuring all URLs and keys are copied without errors. Verify that the necessary API access permissions are granted within your Kommo integration settings.","message":"The initial Kommo OAuth setup is complex, requiring precise configuration of Redirect URLs, Integration IDs, and Secret Keys in both Kommo and n8n. Mistakes in these steps are common.","severity":"gotcha","affected_versions":">=0.0.1"},{"fix":"Ensure you are using `pnpm` version 9.1 or higher for development and installation if managing the package directly. If installing via n8n's UI, verify n8n's internal package manager compatibility or consult n8n documentation for community node installation requirements.","message":"The package specifies `pnpm >=9.1` in its `engines` field, which indicates it's built or intended for installation with pnpm. Using npm or yarn, or an older pnpm version, may lead to unexpected installation issues.","severity":"gotcha","affected_versions":">=0.0.1"}],"env_vars":null,"last_verified":"2026-04-19T00:00:00.000Z","next_check":"2026-07-18T00:00:00.000Z","problems":[{"fix":"In Kommo, navigate to your integration's widget settings and update the 'Redirect Link' field to exactly match the OAuth Redirect URL provided by n8n during credential creation.","cause":"The 'Redirect Link' configured in your Kommo widget settings does not precisely match the OAuth Redirect URL copied from your n8n Kommo credential setup.","error":"OAuth error: Invalid redirect URI"},{"fix":"Re-copy the Integration ID and Secret Key from the 'Keys and Accesses' section of your Kommo integration settings and paste them carefully into the corresponding fields in n8n.","cause":"The Integration ID or Secret Key entered into n8n for your Kommo API credentials is incorrect or contains typos.","error":"Error: Invalid Integration ID or Secret key"},{"fix":"Verify that `n8n-nodes-kommo` is listed as installed under 'Settings > Community Nodes' in n8n. If installed, try restarting your n8n instance to ensure the node is loaded and registered correctly.","cause":"The `n8n-nodes-kommo` package was not successfully installed, or n8n has not been restarted to register the new community node.","error":"NodeNotFoundError: Kommo node not found"}],"ecosystem":"npm"}