Bitrix24 Tools: catalog CLI utilities

Bitrix24 Tools

A set of Python CLI utilities for exporting Bitrix24 contacts and products, bulk-deleting products, and importing a catalog from ClickHouse on a schedule

  • 0 ★ on the repository
  • Last commit
CLI

Broad access

Why this level

  • It can bulk-delete products from the Bitrix24 catalog irreversibly
  • The import creates and updates product entries on a schedule without human confirmation
All reasons and checks
Russian stack

eurasia-group-kazakhstan/bitrix_tools

Install

Services

Manual install

python3.12 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt

Python 3.12 specifically is required.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • It can bulk-delete products from the Bitrix24 catalog irreversibly
  • The import creates and updates product entries on a schedule without human confirmation

This is third-party code. Review the repository files before installing.

What it does

Each utility is a separate Python script sharing common arguments (limit, a JSON filter, log level) that calls the Bitrix24 REST API through an async client with retries and rate limiting. export_contacts and export_products dump data to a JSON file, delete_products removes products by an allow- or deny-list of IDs with a dry-run preview mode, and import_products_from_clickhouse pulls products from ClickHouse via a field-mapping config, casts types, and creates or updates catalog entries in Bitrix24. Every run writes a log and an entry in a shared summary.json; there is a Dockerfile and example cron jobs.

Who it is for. For teams syncing a Bitrix24 product catalog with an external data store and automating exports on a schedule.

Good fit when

  • You need to regularly export Bitrix24 contacts or products to JSON with a filter
  • You need to bulk-delete products by an ID list, previewing first with dry-run
  • The product catalog lives in ClickHouse and needs syncing into Bitrix24

Not a fit when

  • Your catalog source is not ClickHouse: the import tool is built specifically for it
  • You need a conversational MCP tool rather than standalone CLI scripts for cron

Example request

Export all active products from section 5 to JSON and show active-vs-inactive stats

Limitations

Requires Python 3.12 specifically. The ClickHouse import stores the connection password in plain text in the mapping config. delete_products is an irreversible operation with no built-in backup, relying on a dry-run preview and explicit confirmation. The README does not describe a ClickHouse service-account setup separate from the plain password in the config.

How to disable. Remove the crontab entries added for the utilities and deactivate the BITRIX_WEBHOOK_URL webhook in Bitrix24.

FAQ

Can product deletion be undone?

There is no built-in rollback, so always run delete_products with --dry-run first and review the list.

Is ClickHouse required?

Only for the catalog import tool; exporting contacts and products and deleting products do not depend on it.

Discussion

No questions or reviews yet.

Russian stack

A CLI with full CRUD for Bitrix24 deals, leads, contacts and companies, every command supports --json for agents

CLIBroad access
Russian stack

A PowerShell CLI for safely exporting Bitrix24 companies and contacts to CSV via an inbound webhook

CLIExtended access1Repository stars
Russian stack

A read and write MCP server for the Bitrix24 REST API: CRM, tasks, scrum, calendar, disk, messaging and portal events

MCP serverBroad access1Repository stars
Russian stack

A Python server giving agents webhook access to a Bitrix24 portal: it reads deals and contacts, and writing is a separate setting

MCP serverExtended access1Repository stars

README in short

The README documents each of the four utilities in detail with parameter tables and examples, the ClickHouse field-mapping config format with cast and map transformation types, the log and summary.json layout, example cron jobs, and a troubleshooting section for errors like QUERY_LIMIT_EXCEEDED.

README badge

Report a problem