Как сделать выгрузку из битрикс 24

Как сделать выгрузку из битрикс 24

Выгрузка данных из Битрикс24 необходима в случаях миграции, резервного копирования или интеграции с внешними системами. Важно понимать, какие именно данные нужны – сделки, контакты, лиды, задачи или вся CRM-структура. От этого зависит выбор метода и инструмента.

Если вы планируете использовать встроенные возможности Битрикс24, начните с модуля «Экспорт». Для сделок, контактов и компаний доступны выгрузки в формате CSV. Для этого откройте соответствующий раздел CRM, используйте фильтры для отбора нужных данных и нажмите «Экспорт» – система сформирует файл, который можно загрузить на локальный диск.

Для автоматизированной и регулярной выгрузки лучше использовать REST API. Метод crm.deal.list позволяет получать список сделок с заданными параметрами. Аналогично работают crm.contact.list, crm.company.list и другие методы. Ограничение на один запрос – 50 записей, поэтому потребуется реализация постраничной выборки через параметр start.

При больших объемах данных важно учитывать ограничение на количество запросов: не более 2 в секунду. Нарушение лимитов приведёт к ошибкам 429. Рекомендуется реализовать очередь запросов с контролем частоты и логированием ошибок для отладки.

Также стоит предусмотреть работу с вложенными сущностями: связями между сделками и контактами, кастомными полями и пользовательскими сущностями. Эти данные не включаются в базовую выгрузку и требуют дополнительных вызовов API.

Для хранения и дальнейшей работы с данными рекомендуется использовать формат JSON, особенно при выгрузке через API. Это упростит последующую обработку, передачу в сторонние сервисы и структурирование информации.

Подключение REST API для доступа к данным Битрикс24

Подключение REST API для доступа к данным Битрикс24

Для работы с REST API Битрикс24 необходимо зарегистрировать приложение в вашем портале. Перейдите в раздел «Приложения» → «Мои приложения» → «Добавить новое приложение» → «Встраиваемое». Укажите название, домен, путь к скриптам и URI для авторизации.

После регистрации система выдаст параметры: client_id и client_secret. Они требуются для получения access_token. Используйте OAuth 2.0 протокол: отправьте POST-запрос на https://oauth.bitrix.info/oauth/token/ с параметрами client_id, client_secret, grant_type, code и redirect_uri.

Access_token используется в каждом запросе к API. Пример GET-запроса: https://yourdomain.bitrix24.ru/rest/crm.lead.list.json?auth=access_token. Подставьте актуальный токен. Не храните его в открытом виде – используйте безопасное серверное хранилище.

Для получения новых токенов используйте refresh_token, доступный в ответе на первый запрос. Он действует 30 дней. Автоматизируйте процесс обновления, чтобы избежать потери доступа.

Убедитесь, что приложение запрашивает только необходимые права доступа. Это указывается при регистрации приложения в параметре scope (например, crm, user, task). Избыточные разрешения могут быть отклонены системой или пользователем.

Тестируйте каждый эндпоинт с помощью Postman или curl перед интеграцией в основной код. Обработка ошибок – обязательна: проверяйте статус ответа, наличие поля error и корректно реагируйте на истечение срока действия токена.

Настройка вебхука для получения данных без авторизации

Настройка вебхука для получения данных без авторизации

Перейдите в раздел «Приложения» в административной панели Битрикс24, затем откройте пункт «Вебхуки». Нажмите «Добавить вебхук» и выберите вариант «Входящий вебхук».

Укажите название, например: Получение сделок. Выберите нужные права доступа: например, для получения сделок – доступ к CRM (crm).

После сохранения система сгенерирует URL вида: https://yourdomain.bitrix24.ru/rest/1/xxxxxxxxxxxxxxxx/crm.deal.list. Этот URL уже содержит ключ авторизации, поэтому дополнительных токенов не требуется.

Для выборки данных используйте метод REST API, указав его в конце URL. Например, для получения списка сделок используйте: crm.deal.list. Передавайте параметры через POST или GET-запрос. Пример POST-запроса с фильтрацией по статусу:

{
"filter": { "STAGE_ID": "NEW" },
"select": [ "ID", "TITLE", "STAGE_ID", "ASSIGNED_BY_ID" ]
}

Вебхук не поддерживает сложную логику обработки, но позволяет быстро получать данные без OAuth2. Используйте HTTPS и не публикуйте URL в открытом доступе – при компрометации ключа создайте новый вебхук и удалите старый.

Выгрузка сделок с фильтрацией по дате и статусу

Для выгрузки сделок с заданными параметрами авторизуйтесь в REST API Битрикс24, используя webhook или OAuth-токен. Метод запроса: crm.deal.list.

Пример запроса для фильтрации по дате создания и статусу:


POST https://yourdomain.bitrix24.ru/rest/1/your_webhook/crm.deal.list
{
"filter": {
">=DATE_CREATE": "2024-01-01T00:00:00+03:00",
"<=DATE_CREATE": "2024-12-31T23:59:59+03:00",
"STAGE_ID": "C1:WON"
},
"select": ["ID", "TITLE", "DATE_CREATE", "STAGE_ID", "OPPORTUNITY", "CURRENCY_ID"],
"start": -1
}

Значение STAGE_ID соответствует стадии сделки. Пример: C1:WON – успешно реализовано в воронке C1. Чтобы узнать возможные значения, выполните запрос crm.deal.stage.list.

Формат даты – ISO 8601 с указанием часового пояса. Временные границы должны быть точными: начало дня – 00:00:00, конец – 23:59:59.

Если сделок много, данные возвращаются постранично. Для полной выгрузки реализуйте цикл с параметром start и сохранением результатов в массив.

Для экспорта в CSV конвертируйте полученные данные с помощью любого серверного скрипта. Используйте кодировку UTF-8 без BOM, чтобы избежать проблем с отображением кириллицы в Excel.

Не используйте фильтр STAGE_SEMANTIC_ID, если требуется точная стадия. Этот параметр обобщает стадии и не подходит для точной выборки.

Экспорт контактов и компаний в формате CSV

Экспорт контактов и компаний в формате CSV

Для экспорта данных откройте раздел CRM в левом меню Битрикс24, затем перейдите во вкладку КонтактыКомпании в зависимости от нужного объекта выгрузки.

Нажмите кнопку Шестерёнка в правом верхнем углу списка и выберите пункт Экспорт в CSV. Если кнопка не отображается, проверьте права доступа: выгрузка доступна только при наличии соответствующих прав в настройках CRM.

Перед экспортом при необходимости отфильтруйте записи: дата создания, источник, ответственный – фильтрация влияет на итоговый файл. Убедитесь, что включены нужные столбцы: нажмите на иконку Шестерёнка → Настроить список и отметьте необходимые поля, такие как Телефон, Электронная почта, Компания, ИНН, Ответственный.

После нажатия Экспорт в CSV файл формируется автоматически и скачивается в браузере. Кодировка по умолчанию – UTF-8. Для корректного открытия в Excel рекомендуется использовать импорт с выбором кодировки или открывать файл через Google Таблицы.

В выгруженном файле отсутствуют вложения, истории взаимодействий и связанные сделки. Для получения этих данных требуется использовать REST API или интеграции с внешними системами.

Имейте в виду: размер файла ограничен. При большом объёме записей разбивайте выборку фильтрами или используйте автоматизированные скрипты выгрузки через API.

Скрипт для пакетной выгрузки данных с учетом лимитов API

Скрипт для пакетной выгрузки данных с учетом лимитов API

API Битрикс24 ограничивает количество запросов: не более 2 запросов в секунду и 100 000 вызовов в сутки. Для пакетной выгрузки большого объема данных, например, списка лидов, сделок или контактов, требуется реализовать управление задержками и обработку постраничной навигации.

Пример скрипта на PHP, использующий метод crm.deal.list с учетом лимитов:

<?php
$webhook = 'https://yourdomain.bitrix24.ru/rest/1/your_webhook/';
$method = 'crm.deal.list';
$start = 0;
$result = [];
do {
$queryData = [
'order' => ['ID' => 'ASC'],
'filter' => [],
'select' => ['ID', 'TITLE', 'STAGE_ID'],
'start'  => $start,
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $webhook . $method);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($queryData));
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
if (!empty($response['result'])) {
$result = array_merge($result, $response['result']);
}
$start = isset($response['next']) ? $response['next'] : 0;
usleep(500000); // 0.5 секунды задержки для соблюдения лимита
} while ($start > 0);
file_put_contents('deals.json', json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
?>

Ключевые моменты:

  • Используется параметр start для постраничной загрузки.
  • Добавлена задержка usleep(500000) для ограничения частоты вызовов.
  • Результаты сохраняются в файл deals.json.

Для разных сущностей меняется только метод API (crm.contact.list, crm.lead.list и др.) и поля в параметре select.

Для автоматизации можно обернуть скрипт в cron-задачу и реализовать логирование, чтобы отслеживать успешность выгрузки и отлавливать ошибки при превышении лимитов или сбоях соединения.

Проверка корректности и целостности выгруженных данных

После завершения выгрузки из Битрикс24 необходимо подтвердить, что данные выгружены полностью и без ошибок. Это снизит риск потери информации и обеспечит корректную работу систем, использующих эти данные.

  1. Сверка количества записей.

    • Сравните количество выгруженных элементов с данными в исходной базе. Например, если выгружаете сделки, количество строк в файле должно совпадать с количеством сделок в CRM.
    • Используйте встроенный счетчик в Битрикс24 или выполните экспорт отчета для контроля.
  2. Проверка целостности файлов.

    • Оцените размер выгруженного файла и убедитесь, что он соответствует ожидаемому (сравните с предыдущими выгрузками).
    • Проверьте целостность файла с помощью контрольных сумм (например, MD5), если эта возможность доступна.
  3. Валидация структуры данных.

    • Проверьте наличие всех обязательных полей согласно требованиям выгрузки (ID, даты, суммы, статусы и др.).
    • Убедитесь, что форматы данных соответствуют спецификации (например, даты в формате YYYY-MM-DD, числовые поля без лишних символов).
  4. Проверка связей между данными.

    • Для связанных сущностей (контакты и компании, сделки и товары) убедитесь, что идентификаторы связей совпадают с исходными.
    • Проверьте отсутствие «потерянных» ссылок, которые могут привести к ошибкам при импорте.
  5. Тестовая загрузка и выборочные проверки.

    • Импортируйте часть выгруженных данных в тестовую среду и сверяйте результаты с исходной системой.
    • Проверьте ключевые показатели: количество записей, суммы, даты и корректность отображения связей.

Регулярное выполнение этих проверок обеспечивает надежность выгрузки и снижает вероятность ошибок при последующей обработке данных.

Вопрос-ответ:

Как подготовить данные для выгрузки из Битрикс24?

Перед выгрузкой данных стоит убедиться, что информация в системе актуальна и структурирована. Рекомендуется проверить правильность заполнения полей, удалить дубликаты и сгруппировать данные по нужным критериям. Это позволит получить максимально удобный и понятный файл после экспорта.

Какие форматы выгрузки доступны в Битрикс24 и какой выбрать?

В Битрикс24 можно выгружать данные в нескольких форматах, например, CSV, Excel, и XML. Выбор зависит от того, как вы планируете использовать файл дальше. Для работы с таблицами и отчетами чаще всего применяют Excel или CSV, а для интеграции с другими системами подходит XML. Если нужно быстро открыть и просмотреть данные, удобнее использовать Excel.

Можно ли выгрузить только часть данных, например, контакты или сделки за конкретный период?

Да, система позволяет выбрать, какие именно данные вы хотите выгрузить. Например, можно задать фильтр по дате, типу записи или статусу. Это помогает получить именно ту информацию, которая необходима, без лишних данных, что упрощает последующий анализ или передачу.

Что делать, если при выгрузке данных возникает ошибка или файл не сохраняется?

Если при выгрузке появилась ошибка, сначала проверьте стабильность интернет-соединения и попробуйте обновить страницу. Также убедитесь, что у вас достаточно прав доступа для экспорта данных. При повторных ошибках можно обратиться в техподдержку Битрикс24 с описанием проблемы и скриншотами для более быстрого решения.

Как часто стоит выполнять выгрузку данных из Битрикс24 для резервного копирования?

Рекомендуется создавать резервные копии данных регулярно, особенно если информация часто обновляется. Для небольших компаний достаточно выгружать данные раз в неделю или месяц, а для крупных — возможно, потребуется делать это чаще, чтобы минимизировать риск потери важных сведений. Также стоит учитывать, как быстро меняется информация в вашей системе.

Ссылка на основную публикацию