Локальный экспорт компаний и контактов из 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" -Yescontacts-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Скопировать пример:
copy .\examples\config.example.json .\config.jsonЗаполнить config.json и запустить:
.\run.ps1 test -Config .\config.json
.\run.ps1 export -Config .\config.jsonconfig.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.
По умолчанию используется разделитель ;, чтобы Excel в русской локали открывал файл по столбцам.
Для comma-CSV:
.\run.ps1 export -Delimiter ","Проверка без записи 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 -OpenFolder401
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.