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; }
Руководитель в Волсофт
Разработка и продвижение сайтов.
Поставка лицензионного программного обеспечения.
Поставка лицензионного программного обеспечения.
Блинов Роман недавно публиковал (посмотреть все)
- Мониторинг сайта с оповещением в Telegram - 17.01.2025
- Выгрузить лиды из Битрикс24 в Google таблицы - 23.12.2024
- PhpRedis: Not loaded - 06.03.2024