bitrix24

n8n community node for Bitrix24 β€” CRM, Tasks, Open Channels, Chatbots, Drive, Document Generator, News Feed and Raw API

Documentation

Bitrix24

@gustavojosemelo/n8n-nodes-bitrix24

npm version npm downloads license n8n community node

A full-featured n8n community node for Bitrix24 β€” covering CRM, Tasks, Open Channels, Chatbots, Drive, Document Generator, News Feed, and a Raw API executor.


✨ Features

Category Resources Operations
πŸ“‹ CRM Deal, Lead, Contact, Company Create Β· Get Β· Update Β· Delete Β· List Β· Search
βœ… Tasks Task, Task Comment Create Β· Get Β· Update Β· Delete Β· List Β· Complete
πŸ‘€ Users User Get Β· Get Current Β· List Β· Search
πŸ’¬ Open Channels Message, Conversation Send Β· History Β· Complete Β· Assign
πŸ€– Chatbot Bot, Bot Message Register Β· Send Β· Update Β· Delete
πŸ“ Drive File, Folder Upload Β· Get Β· List Β· Delete Β· Rename
πŸ“„ Document Generator Document, Template Generate PDF Β· List Templates Β· Download URL
πŸ“° News Feed Blog Post, CRM Activity Create Β· Get Β· Update Β· Delete Β· List Β· Complete
⚑ Raw API Any method Execute · Batch · Auto-paginate

Highlights

  • πŸ”„ Dynamic dropdowns β€” Pipelines, Stages, Users, and custom UF_ fields loaded live from your Bitrix24
  • πŸ” Smart filters β€” Quick filters (dropdowns) + Advanced raw JSON filter on all list operations
  • πŸ“¦ Auto-pagination β€” Fetch all pages automatically (Bitrix24 returns max 50/page)
  • ⚑ Raw API β€” Execute any Bitrix24 method directly, just like Make's "Make an API Call"
  • πŸ”— Batch API β€” Run multiple methods in one request with cross-result references
  • πŸ”” Trigger Node β€” Auto-registers webhooks on activation, cleans up on deactivation
  • πŸ” Dual auth β€” Webhook URL mode (simple) and OAuth2 mode (for marketplace apps)

πŸ“¦ Installation

Via n8n Interface (recommended)

  1. Go to Settings β†’ Community Nodes
  2. Click Install
  3. Enter: @gustavojosemelo/n8n-nodes-bitrix24
  4. Confirm and restart n8n

Via npm

npm install @gustavojosemelo/n8n-nodes-bitrix24

Via Docker

docker exec -it n8n npm install @gustavojosemelo/n8n-nodes-bitrix24 --prefix /home/node/.n8n/custom
docker restart n8n

πŸ” Authentication

This node supports two authentication modes, selectable in the credential:

Webhook Mode (recommended for personal use)

The simplest option. Uses a Bitrix24 inbound webhook URL with the token already embedded.

  1. In Bitrix24, go to Developer Resources β†’ Other β†’ Inbound Webhook
  2. Create a new webhook and copy the full URL

    Example: https://yourdomain.bitrix24.com/rest/1/abc123token/

  3. In n8n, create a Bitrix24 API credential
  4. Select Authentication Mode: Webhook
  5. Paste the full URL

OAuth2 Mode (for Marketplace apps)

For registered apps in the Bitrix24 developer zone.

  1. Register an app at Bitrix24 Developer Zone β†’ My Apps
  2. Copy the Client ID, Client Secret, and your portal Domain
  3. In n8n, select Authentication Mode: OAuth2 and fill in the fields

πŸš€ Usage

CRM β€” Dynamic Fields

When creating or updating a Deal, Lead, Contact, or Company, the node automatically loads:

  • Pipeline β€” dropdown with your real funnels (crm.category.list)
  • Stage β€” dropdown filtered by the selected pipeline (crm.dealcategory.stages)
  • Responsible User β€” dropdown with active users (user.get)
  • Custom Fields (UF_) β€” separate section listing all UF_* fields with their readable labels

List / Search β€” Filtering

Every list operation has two filter modes:

  • Quick Filters β€” pre-built dropdowns for the most common fields
  • Advanced Filter (Raw JSON) β€” pass any FILTER object directly to the Bitrix24 API
// Advanced filter example for crm.deal.list
{
  "STAGE_ID": "WON",
  ">OPPORTUNITY": 10000,
  "ASSIGNED_BY_ID": "5"
}

Set Max Results to 0 to fetch all pages automatically.

⚑ Raw API β€” Execute any method

Select Category: Raw API to call any Bitrix24 REST method:

Field Example
Method crm.deal.list
Parameters (JSON) {"filter": {"STAGE_ID": "NEW"}, "select": ["ID","TITLE"]}
Fetch All Pages Enable for list methods
// Batch example
{
  "cmd": {
    "get_deal": "crm.deal.get?id=42",
    "deal_contacts": "crm.deal.contact.items.get?id=42"
  }
}

Results can reference each other: $result[get_deal][ASSIGNED_BY_ID]

πŸ”” Trigger Node β€” Available Events

Group Event Description
CRM Deal ONCRMDEALADD Deal created
CRM Deal ONCRMDEALUPDATE Deal updated
CRM Deal ONCRMDEALMOVE Deal stage changed
CRM Deal ONCRMDEALDELETION Deal deleted
CRM Lead ONCRMLEADADD Lead created
CRM Lead ONCRMLEADUPDATE Lead updated
CRM Contact ONCRMCONTACTADD Contact created
CRM Company ONCRMCOMPANYADD Company created
Tasks ONTASKADD Task created
Tasks ONTASKUPDATE Task updated
Tasks ONTASKCOMMENTADD Comment added to task
Messages ONIMBOTMESSAGEADD New open channel message
Messages ONOPENLINESSESSIONSTART New support session opened
Messages ONOPENLINESSESSIONFINISH Support session closed

Tip: Enable Include Full Object to automatically fetch the complete entity (all fields including UF_*) after receiving the event β€” at the cost of one extra API call.


πŸ—οΈ Project Structure

nodes/Bitrix24/
β”œβ”€β”€ Bitrix24.node.ts              # Main regular node
β”œβ”€β”€ Bitrix24Trigger.node.ts       # Trigger node
β”œβ”€β”€ GenericFunctions.ts           # HTTP helper, auth, loadOptions
β”œβ”€β”€ bitrix24.svg                  # Node icon
β”œβ”€β”€ credentials/
β”‚   └── Bitrix24Api.credentials.ts
└── resources/
    β”œβ”€β”€ crm/
    β”‚   β”œβ”€β”€ deal.ts
    β”‚   β”œβ”€β”€ lead.ts
    β”‚   β”œβ”€β”€ contact.ts
    β”‚   └── company.ts
    β”œβ”€β”€ tasks/
    β”‚   └── task.ts               # Task + Task Comment
    β”œβ”€β”€ users/
    β”‚   └── user.ts
    β”œβ”€β”€ openChannels/
    β”‚   └── message.ts            # Message + Conversation
    β”œβ”€β”€ chatbot/
    β”‚   └── bot.ts                # Bot + Bot Message
    β”œβ”€β”€ drive/
    β”‚   └── file.ts               # File + Folder
    β”œβ”€β”€ documentGenerator/
    β”‚   └── document.ts
    β”œβ”€β”€ newsFeed/
    β”‚   └── newsFeed.ts           # Blog Post + CRM Activity
    └── rawApi/
        └── rawApi.ts

πŸ› οΈ Local Development

# Clone the repo
git clone https://github.com/gustavojosemelo/n8n-nodes-bitrix24.git
cd n8n-nodes-bitrix24

# Install dependencies
npm install

# Build
npm run build

# Link for local n8n testing
cd ~/.n8n/custom
npm link n8n-nodes-bitrix24

πŸ“‹ API Rate Limits

Bitrix24 limits 2 requests/second by default on commercial plans. For large list operations, use Max Results: 0 to enable automatic pagination with built-in rate control.


🀝 Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.

  1. Fork the repository
  2. Create your branch: git checkout -b feature/my-feature
  3. Commit: git commit -m 'feat: add my feature'
  4. Push: git push origin feature/my-feature
  5. Open a Pull Request

πŸ“„ License

MIT Β© Gustavo JosΓ© Melo


Made with ❀️ by Next Comunicação

Discussion