Генерируем ежедневную сводку о проделанной работе, в Airtable

Nikolay Pavlov
Сделать просто
3 min readJul 1, 2022

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

Создаем автоматизацию

Для активации сбора данных нам нужен определенный триггер. Предположим, что сводка об операциях за день должна отправляться в 21:00 по московскому времени. Для этого переходим в раздел автоматизаций и задаем триггер At scheduled time.

Первый этап автоматизации. Время срабатывания триггера.

На втором этапе Run Actions мы запускаем поиск по определенным записям — Find records. Мы указываем, что ищем записи по условиям —Дата поступления (это наименование колонки с датой прихода заявки) = today т. е. сегодня. Отчет будет сгенерирован в 21:00 за прошедший рабочий день.

Далее, мы переходим на этап запуска скрипта. Прежде чем писать само тело скрипта мы зададим переменные колонок, которые будут участвовать в вычислениях.

Например, у нас есть колонка — Стоимость мы передаем ее значение выбирая из выпадающего списка следующее значение: List of Стоимость (все значения за сегодня, которые попали в колонку Стоимость). Эти значения будут передаваться, как массив. Мы присваиваем ему имя переменной. Например, revenue. Соответственно мы также поступаем и с другими колонками, массив которых мы хотим передать для вычислений: услуга, статус услуги, условная стоимость, платеж проведен, record id записи. Подробнее в скринкасте ниже.

Далее, мы нажимаем edit code и переходим в среду разработки Airtable. Она состоим из пяти отделов: входные переменные, их мы задали выше, тело кода, выходные данные, консоль, и внизу мануал с подсказками. Справа вверху есть кнопка Test. Мы всегда сможем протестировать наш скрипт.

Разделы среды разработки Airtable, где мы будем тестировать и проверять работоспособность нашего кода.

Ниже привожу рабочий код, а также в нем закоментировал подсказки, как он работает.

// Вывод текущей даты
let today = new Date();
let dd = String(today.getDate()).padStart(2, '0');
let mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
let yyyy = today.getFullYear();
today = '(' + dd + '.' + mm + '.' + yyyy + ')';
// Генерация сводки отчета по операциям за день
let table = base.getTable("Заявки");
let inputConfig = input.config();
let count = inputConfig.orders.length;
//Обсчитывает сколько заявок пришло за день
let payorders = inputConfig.payorder;
let status = inputConfig.status;
// Посчитал сколько сейчас заявок осталось со статусом 'Новый'
const filternowelty = status.filter(status => status === 'Новый');
//Посчитал сколько сейчас заявок осталось со статусом 'В работе'
const filterinwork = status.filter(status => status === 'В работе');
//Посчитал сколько сейчас заявок осталось со статусом 'Завершен'.
const wrapped = status.filter(status => status === 'Завершен');
// Посчитал выручку, проведенную онлайн
let revenue = inputConfig.revenue;
let sum = revenue.reduce(function(a, b) { return a + b; }, 0);
// Очистил значения условной стоимости, преобразовал строку в цифры, сложил значения между собой. Некоторые позиции содержат значения от 25000 р. скрипт очищает от и р. и преобразует строку в число.let notionvalue = inputConfig.notionalvalue;
let str = "от ";
let trueArr = notionvalue.filter(Boolean);
for (var i = 0; i < trueArr.length; i++)
if (trueArr[i] == "от 30000")
trueArr[i] = trueArr[i].split(str).join('');
else if (trueArr[i] == "от 25000")
trueArr[i] = trueArr[i].split(str).join('');
let notionsum = trueArr.reduce(function(a, b) { return +a + +b; }, 0);
//Передача отчета в телеграм, имел или в генератор документа.
let message = `📊 За сегодня ${today} было получено: ${count} заявок.
Из них в статусах:
Завершен : ${wrapped.length}.
В работе : ${filterinwork.length}.
Новая : ${filternowelty.length}.
Оплачен: ${payorders.length}.
Выручка, полученная онлайн: ${sum} рублей.
Предварительная выручка за объем работ с условной стоимостью: ${notionsum} рублей.
Всем хорошего вечера.
`;

Готовый отчет вы можете передать далее по цепочке в любую другую систему по API, дописав запрос в коде или сделав, дополнительный шаг в автоматизации. Из предустановленных параметров, можно отправить емейл, Slack, Microsoft Teams, Jira, Google документ и календарь. Хотя передать несложно хоть в Amo CRM. Просто дописать в самом скрипте ниже условия передачи по примеру отправки ботом сообщения в Телеграм. Об этом я писал в другой статье.

--

--