Google Apps script который выгружает в активную вкладку Google таблицы лиды по месяцам в формате Месяц | Суммарно лидов
function getMonthlyLeadCountsFromBitrix24() {
// URL вебхука
const webhookUrl = "https://localhost/rest/18/webhook/crm.lead.list"; // ссылка на вебхук
// Параметры фильтрации (базовые)
const baseParams = {
"filter": {
"SOURCE_ID": ["UC_YU20FO", "UC_06SQ2T", "26|0C898C2E-B8CB", "37", "36", "UC_5COASH", "UC_8D34EU", "35", "UC_CIMT4Q"], // Источники лида из Битрикс24 которые нужно выгрузить в таблицу
">=DATE_CREATE": "2024-07-01T00:00:00", // Начальная дата
"<=DATE_CREATE": "2024-12-31T23:59:59" // Конечная дата
},
"select": ["ID", "DATE_CREATE"], // Поля для выборки
"order": { "DATE_CREATE": "ASC" }, // Сортировка по дате
"start": 0 // Начальный индекс для пагинации
};
let allLeads = [];
let start = 0;
// Цикл для загрузки всех данных
while (true) {
const params = { ...baseParams, "start": start };
// Отправляем POST-запрос к API Битрикс24
const response = UrlFetchApp.fetch(webhookUrl, {
method: "post",
contentType: "application/json",
payload: JSON.stringify(params)
});
// Парсим ответ
const data = JSON.parse(response.getContentText());
const leads = data.result;
if (!leads || leads.length === 0) {
break; // Если данные закончились, выходим из цикла
}
allLeads = allLeads.concat(leads);
// Проверяем наличие следующей страницы
if (!data.next) {
break;
}
start = data.next; // Устанавливаем индекс следующей страницы
}
if (allLeads.length === 0) {
Logger.log("Нет данных для выбранного периода.");
return;
}
// Группировка лидов по месяцам
const monthlyLeadCounts = {};
allLeads.forEach(lead => {
const date = new Date(lead.DATE_CREATE.split("T")[0]); // Преобразуем дату в объект
const monthLabel = `${date.getFullYear()}-${pad(date.getMonth() + 1)}`; // Формат: YYYY-MM
monthlyLeadCounts[monthLabel] = (monthlyLeadCounts[monthLabel] || 0) + 1;
});
// Получаем активный лист Google Таблицы
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Очищаем предыдущие данные
sheet.clear();
// Заголовки
const headers = ["Месяц", "Количество лидов"];
sheet.appendRow(headers);
// Записываем данные в таблицу
for (const [month, count] of Object.entries(monthlyLeadCounts)) {
sheet.appendRow([month, count]);
}
Logger.log("Данные успешно добавлены в таблицу.");
}
// Добавление ведущего нуля для формата даты
function pad(number) {
return number < 10 ? `0${number}` : number;
}
Руководитель в Волсофт
Разработка и продвижение сайтов.
Поставка лицензионного программного обеспечения.
Поставка лицензионного программного обеспечения.
Блинов Роман недавно публиковал (посмотреть все)
- Открыть всплывающее Popup-окно Elementor по текстовой ссылке - 06.03.2025
- Мониторинг сайта с оповещением в Telegram - 17.01.2025
- Выгрузить лиды из Битрикс24 в Google таблицы - 23.12.2024