Skip to content

the-hugin/bitrex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BitrEx

Локальный экспорт компаний и контактов из Bitrix24 в CSV.

 ____  _ _       _____
| __ )(_) |_ _ _| ____|_  __
|  _ \| | __| '__|  _| \ \/ /
| |_) | | |_| |  | |___ >  <
|____/|_|\__|_|  |_____/_/\_\

bitrix safe export
by hxgin

Назначение

BitrEx выгружает CRM-данные через Bitrix24 REST API:

  • компании в companies.csv;
  • контакты в contacts.csv;
  • сводку в export-summary.json;
  • метрики качества данных в data-quality.csv;
  • лог выполнения в export.log;
  • raw JSON при запуске с -RawJson.

По умолчанию выгружаются компании пользователя:

CREATED_BY_ID = UserId
или
ASSIGNED_BY_ID = UserId

Контакты в обычном режиме выгружаются только по найденным компаниям.

Требования

  • Windows PowerShell.
  • Входящий webhook Bitrix24 с правом CRM.

Webhook передаётся при запуске, через переменную окружения или через локальный config.json. В репозиторий его добавлять нельзя.

Быстрый старт

Проверить доступ:

.\run.ps1 test -Webhook "https://your-domain.bitrix24.ru/rest/1/xxxxxxxxxxxxxxxx" -UserId 734

Пробная выгрузка:

.\run.ps1 sample -Webhook "https://your-domain.bitrix24.ru/rest/1/xxxxxxxxxxxxxxxx" -UserId 734

Выгрузить мои компании и контакты по ним:

.\run.ps1 export -Webhook "https://your-domain.bitrix24.ru/rest/1/xxxxxxxxxxxxxxxx" -UserId 734

Выгрузить все доступные контакты:

.\run.ps1 contacts-all -Webhook "https://your-domain.bitrix24.ru/rest/1/xxxxxxxxxxxxxxxx" -Yes

Выгрузить все доступные компании и контакты:

.\run.ps1 export-all -Webhook "https://your-domain.bitrix24.ru/rest/1/xxxxxxxxxxxxxxxx" -Yes

contacts-all и export-all работают в пределах прав webhook и пользователя Bitrix.

Запуск двойным кликом

Для запуска из Windows Explorer:

start-bitrex.cmd

Откроется интерактивное окно с выбором команды, вводом webhook и параметров.

Переменные окружения

$env:BITREX_WEBHOOK="https://your-domain.bitrix24.ru/rest/1/xxxxxxxxxxxxxxxx"
$env:BITREX_USER_ID="734"

.\run.ps1 test
.\run.ps1 export

Config

Скопировать пример:

copy .\examples\config.example.json .\config.json

Заполнить config.json и запустить:

.\run.ps1 test -Config .\config.json
.\run.ps1 export -Config .\config.json

config.json находится в .gitignore.

Команды

Команда Действие
test Проверяет webhook, profile, доступ к компаниям и контактам
sample Выгружает 10 записей для проверки формата
export Выгружает компании по scope и контакты по ним
contacts-all Выгружает все доступные контакты
export-all Выгружает все доступные компании и контакты

Параметры

Параметр Описание
-Webhook Базовый URL входящего webhook без метода .json
-UserId ID пользователя Bitrix для my, created, assigned
-Scope my, assigned, created, all
-Mode ultra, safe или fast
-Limit Ограничение количества записей
-RawJson Сохраняет сырые ответы Bitrix
-Yes Отключает подтверждение для bulk-команд
-DryRun Делает запросы без записи CRM-данных
-OpenFolder Открывает папку результата после завершения
-NoAnimation Отключает консольную анимацию
-SkipPreflight Пропускает предварительную проверку доступа
-MinimalSelect Запрашивает минимальный набор полей контакта
-Delimiter Разделитель CSV, по умолчанию ;
-OutputDir Папка результата, по умолчанию bitrex_export
-Config Путь к JSON-конфигу

Режимы

Безопасный режим по умолчанию:

safe: 6-14 секунд между запросами
ultra: 20-60 секунд между запросами

Быстрый режим:

.\run.ps1 export -Mode fast

Для больших выгрузок используйте safe.

CSV

По умолчанию используется разделитель ;, чтобы Excel в русской локали открывал файл по столбцам.

Для comma-CSV:

.\run.ps1 export -Delimiter ","

Dry run

Проверка без записи CRM-данных:

.\run.ps1 sample -DryRun

В этом режиме BitrEx делает запросы и показывает итог. CSV, raw JSON и summary-файлы не сохраняются.

Результат

Файлы появляются в bitrex_export:

companies.csv
contacts.csv
export-summary.json
data-quality.csv
export.log
companies.raw.json   # только с -RawJson
contacts.raw.json    # только с -RawJson

Открыть папку после выгрузки:

.\run.ps1 export -OpenFolder

Ошибки

401

Webhook неверный, удалён или скопирован не полностью.

403

У webhook нет нужных прав. Для CRM нужен входящий webhook с правом CRM.

0 компаний

Фильтр по UserId не нашёл компаний. Проверьте UserId или выполните sample с -Scope all.

Проверка без фильтра:

.\run.ps1 sample -Scope all

Безопасность

  • Не коммитьте webhook.
  • Не коммитьте config.json.
  • Не коммитьте CSV и raw JSON с CRM-данными.
  • Для больших выгрузок используйте -Mode safe.

Документация

About

BitrEx: local safe Bitrix24 CRM export CLI

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors