Скрипты для отдела продаж
Скрипты снимают с отдела продаж ручную работу: заявки сами попадают в таблицу и распределяются между менеджерами, статусы подсвечиваются, а руководитель каждое утро получает итоги.
Заявки попадают в таблицу сами
| Откуда | Что сделать |
|---|---|
| Форма на сайте Tilda | Заявки с сайта на Tilda |
| Форма Coverse | ответы записываются в таблицу без скрипта; уведомление в Telegram — Заявки с формы в Telegram |
| Бот Telegram | Бот Telegram записывает в таблицу |
| amoCRM или Битрикс24 | Сделки из amoCRM и Битрикс24 |
| Интернет-магазин | Приём заказов с сайта через вебхук |
Распределение заявок по очереди
Каждая новая заявка с формы получает менеджера по кругу: первая — Анне, вторая — Борису, третья — Вере, четвёртая снова Анне. Счётчик хранится в Памяти таблицы.
Триггер: при отправке формы, функция onFormSubmit. В листе с ответами формы добавьте столбец «Менеджер».
const MANAGERS = ["Анна", "Борис", "Вера"];
function onFormSubmit(event) {
if (!event) return;
const sheet = Coverse.table.getSheet(event.sheet);
const column = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0].indexOf("Менеджер") + 1;
if (column === 0) throw new Error("Добавьте на лист с ответами столбец «Менеджер»");
const next = Number(Properties.table.get("nextManager")) || 0;
sheet.getRange(event.row, column).setValue(MANAGERS[next % MANAGERS.length]);
Properties.table.set("nextManager", next + 1);
}
Ответы формы обрабатываются по очереди, поэтому два менеджера не получат одну заявку. В очереди ждёт до 50 ответов: если их больше, лишние останутся без менеджера.
Дата смены статуса
Когда менеджер ставит в столбце «Статус» значение «Оплачен», в соседний столбец справа записывается дата.
Триггер: при изменении, функция onEdit, лист «Заказы», диапазон со столбцом статусов, например E:E.
function onEdit(event) {
if (!event) return;
const paid = event.changes.filter((change) => change.row > 1 && change.value === "Оплачен");
if (paid.length === 0) return;
const sheet = Coverse.table.getSheet("Заказы");
for (const change of paid) {
sheet.getRange(change.row, change.column + 1).setValue(new Date());
}
}
Запись даты не запускает onEdit повторно: изменения, которые делают скрипты, триггер не вызывают.
Подсветка и контроль
- Раскраска строк по статусу: оплаченные зелёным, отменённые красным, одним правилом, без триггера.
- Напоминание о сроках на почту: каждое утро список задач, у которых срок сегодня или прошёл.
Отчёты
- Ежедневный отчёт в Telegram: число и сумма заказов за вчера.
- Сводная по менеджерам каждую неделю: продажи по менеджерам и месяцам.
Частые вопросы
Как автоматически распределять заявки между менеджерами?
Скрипт по триггеру «При отправке формы» записывает в столбец «Менеджер» следующего по кругу, счётчик хранится в памяти таблицы.
Можно ли получать отчёт о продажах каждое утро?
Да, скрипт по расписанию считает заказы и выручку за вчера и присылает их в Telegram.
Как собирать заявки с сайта и CRM в одну таблицу?
Используйте руководства по Tilda, amoCRM и Битрикс24: заявки и сделки будут попадать в таблицу автоматически.