# Задачи сотрудников в Google Таблице: 9 шагов до контроля сроков

> Как собрать очередь задач сотрудников в Google Таблицах: с продавцами, сроками, статусами и отдельным списком просроченных работ.

Источник: https://vibeceh.ru/cases/zadachi-sotrudnikov-v-tablice-vmesto-planfiksa-ochered-rabot-s-kontrolem-srokov
Автор: Сергей Мазур · опубликовано 2026-08-14

Я собрала такую схему, в которой задача сотрудников не живёт в голове, чате и случайной записи на листке. Очередь сменных работ собирается в Google Таблицах: видны продавец, срок, статус, приоритет и причина переноса, если работа не сделана. Отдельный лист показывает просроченные задачи, поэтому контроль начинается с одной строки.

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

Схема начинается с обычной смены.

Утром в магазине распределяются открытие, выкладка, ценники, приёмка и обслуживание покупателей. В конце смены остаются закрытие кассовой зоны и всё, что не успели сделать между покупателями. Раньше часть таких работ просто переходила дальше. Вроде бы все знали, что делать, но через день уже было непонятно, кто отвечал и почему задача осталась висеть.

Незакрытая работа раздражает. Слово «не успели» не говорит ничего: в нём нет причины и нового срока. Обязательную задачу нельзя просто перекинуть на завтра: либо она выполняется сегодня, либо получает зафиксированные причину и новый срок. Если её нельзя выполнить сегодня, нужно записать причину и назначить новый срок.

Таблица собирается как очередь смены. Сначала в неё попадает только то, что повторяется каждый день. Потом добавляются продавец, срок, статус и приоритет. Когда появляется отдельная причина переноса, становится видно, где проблема в загрузке, а где задача просто потерялась.

## Как теперь видно, что сделано, а что нет?

Теперь видно, что сделано, а что нет. В каждой строке есть сама работа, продавец, срок, приоритет и статус. Если задача не закрыта, её нужно сопроводить причиной и новым сроком. Поэтому виден факт просрочки и следующий шаг по ней.

До таблицы вопрос «что осталось со вчера» задаётся утром устно или в переписке, а ответы приходят уже после начала новой смены. В магазине это быстро смешивается с покупателями, приёмкой и выкладкой. Одна работа может быть сделана, но не отмечена. Другая может вообще не иметь ответственного.

Теперь очередь начинается с повторяющихся задач смены. Открытие магазина, выкладка, ценники, приёмка, обслуживание покупателей и закрытие кассовой зоны стоят рядом. У каждой строки есть продавец и срок. Статус показывает, что происходит сейчас: «Новая», «В работе», «На проверке», «Готово» или «Отложена». Выполнение задач сотрудником в срок подтверждается статусом «Готово».

Статус «Отложена» означает, что работа ждёт продолжения. В этой строке должна быть причина. Например, продавец принимал товар, а новую дату нужно поставить после разгрузки. Перенос не оставляется без объяснения, иначе завтра снова появится та же загадка.

Теперь очередь видно глазами. Достаточно открыть лист, отфильтровать смену или продавца, и сразу видны незакрытые строки. Порядок начинается с честного ответа, почему работа не выполнена.

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

## Почему свою таблицу нельзя сравнивать с купленным сервисом?

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

![Кот сравнивает собственную таблицу с готовым сервисом на двух колонках.](https://s3.regru.cloud/crossmark/statejnik/images/guides/zadachi-sotrudnikov-v-tablice-vmesto-planfiksa-ochered-rabot-s-kontrolem-srokov/kadr-1.webp)

Я не спорю: готовые сервисы выручают, когда нужны права на разные разделы, полноценная история изменений, отчёты и интеграции. В такой ситуации разумнее выбрать готовую систему: там уже продуманы роли, уведомления и резервные сценарии.

Задача такой схемы проще. В магазине появляется новое правило: например, отдельная проверка ценников перед открытием или обязательная отметка после приёмки. В своей таблице добавляется строка, новый статус или столбец, и порядок смены меняется сразу.

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

У своей схемы есть обратная сторона. За названия статусов, права доступа, формулы и резервную копию отвечает тот, кто собирает таблицу. Управление всё равно остаётся на мне, а таблица делает очередь честной и видимой.

## Из чего состоит очередь задач сотрудников?

Очередь задач сотрудников состоит из строк, где каждая работа связана с продавцом, сроком, статусом, приоритетом и причиной переноса. Фильтры показывают задачи конкретной смены или исполнителя, сортировка поднимает ближайшие сроки, а отдельный лист собирает все незакрытые просрочки. Основной лист называется «Задачи», статус задаётся выпадающим списком из пяти значений.

Основной лист называется «Задачи». В нём такие столбцы:

| Задача | Исполнитель | Срок | Статус | Приоритет | Причина переноса |
|---|---|---|---|---|---|
| Проверить ценники | Продавец | 20.08.2026 | Новая | Обязательная | |

Под срок отлично подходит тип `Date`. Для статуса используется выпадающий список. В нём только пять значений: «Новая», «В работе», «На проверке», «Готово», «Отложена». Если разрешить свободный ввод, появятся варианты «готово», «сделано» и «закрыта». Потом формула перестанет понимать, что считать завершённым.

В столбце «Исполнитель» можно оставить обычный текст с именем продавца. Можно использовать people chip, но он не выдаёт доступ к таблице автоматически. Доступ на просмотр или редактирование настраивается отдельно.

Фильтр по смене помогает смотреть только текущие работы. По продавцу видна личная очередь. Сортировка по сроку поднимает ближайшие задачи наверх. Для разных представлений удобнее сохранить filter view, чтобы один сотрудник не менял вид таблицы для остальных.

Связь между обязательными и переносимыми задачами простая. Обязательная работа не переезжает на завтра без причины и нового срока. Переносимая может ждать, но её статус и причина всё равно должны быть видны.

## Что поставить перед сборкой таблицы?

Для сборки нужны Google Таблицы, редактор Visual Studio Code и помощник Claude Code внутри этого редактора. Их ставят один раз: скачать, запустить и войти в аккаунт. Установка инструментов по моей оценке занимает около четверти часа. Claude Pro с Claude Code стоит `$20 в месяц`; официальной цены в рублях для России нет.

[Google Таблицы](/concepts/google-tablicy) будут рабочим местом. Там останутся строки задач, статусы, фильтры, формулы и лист просроченных работ.

Visual Studio Code нужен как редактор папки проекта. Писать код в нём не придётся. Открывается папка, запускается помощник, и задача описывается обычными словами.

Claude Code работает прямо внутри редактора. Он может создать формулу, Apps Script или структуру файлов, а потом объяснить, что изменил. Инструменты ставятся один раз, дальше меняется только описание задачи: сегодня очередь продавцов, позже похожая автоматизация для другой части магазина.

Подписка на помощника остаётся постоянной статьёй расходов. Claude Pro с Claude Code стоит `$20 в месяц` по официальному тарифу Anthropic. Официальная цена в рублях для России не найдена, российская доступность и оплата подписки официально не подтверждены. Лимиты Claude и Claude Code общие, поэтому `$20` не означает неограниченную работу.

Россия не указана в официальном перечне доступных стран Anthropic. Не рассчитывай на оплату российской картой, пока способ не подтверждён отдельно. Цена `$20 в месяц` указана в долларах.

## Как собрать таблицу с задачами для сотрудников?

Сначала создай Google Таблицу и опиши помощнику сменную работу словами. Затем добавь столбцы, даты, статусы, продавцов, доступы, подсветку просрочек, отдельный лист и уведомления. После каждого шага открывай таблицу и проверяй глазами: формулы, название листа, статус «Готово», диапазон и права доступа.

![Собака удивлённо смотрит на карточки со статусами, приоритетом и причиной переноса.](https://s3.regru.cloud/crossmark/statejnik/images/guides/zadachi-sotrudnikov-v-tablice-vmesto-planfiksa-ochered-rabot-s-kontrolem-srokov/kadr-2.webp)

Открой Google Таблицы, создай файл и назови лист `Задачи`. Добавь несколько тестовых строк, чтобы помощнику было на что смотреть.

   

Помощник должен вернуть понятную структуру, а не длинную программу. Проверь, что в ней есть продавец, срок, статус, приоритет и причина переноса.

В листе `Задачи` создай заголовки: «Задача», «Исполнитель», «Срок», «Статус», «Приоритет», «Причина переноса». Для срока выбери тип даты.

   

В ответе должны появиться дата, выпадающие списки и запрет произвольных статусов. Проверь одну строку вручную: поставь «В работе», затем «Готово».

Добавь в таблицу имена продавцов обычным текстом или people chip. Если используешь people chip, выдай доступ к файлу отдельно.

   

Помощник должен отдельно указать назначение и доступ. После этого нажми «Настроить доступ» в Google Таблицах и выбери роль для каждого человека.

Создай представления по исполнителю, статусу и сроку. Отдельно оставь вид для обязательных задач.

   

В результате должны появиться сохранённые виды, а не новые копии файла. Переключи каждый вид и проверь, что строки не исчезли из основной таблицы.

Условное форматирование должно выделять строку, если срок прошёл, дата заполнена, а статус не равен «Готово».

   &quot;&quot;,$D2<>&quot;Готово&quot;). Не выделяй пустые строки и закрытые задачи. Объясни, как проверить правило на тестовой строке." />

Добавь тестовую задачу с прошедшим сроком. Она должна окраситься. Поставь статус «Готово» и проверь, что подсветка исчезла.

Отдельный лист нужен для ежедневного просмотра. Назови его `Просроченные`.

   

На листе должна появиться очередь, которая обновляется из основной таблицы. Если просроченных строк нет, проверь сообщение «Просроченных задач нет», а не ошибку `#N/A`.

Перенос без причины не должен считаться нормальным завершением.

   

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

Для первой версии достаточно подсветки и листа просроченных. Telegram подключай только после ручной проверки таблицы.

   

Помощник должен назвать `chat_id`, токен и отметку отправки. Не вставляй токен в открытую таблицу. Для первого запуска можно оставить только визуальный контроль.

Создай тестовую строку, назначь продавца, поставь прошедший срок, оставь статус «В работе», затем исправь причину и срок.

   

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

Так собирают программы без программиста, и называется это [вайб-кодинг](/concepts/vajb-koding).

## Что появится в папке после сборки?

В рабочей папке появится проект помощника с описанием задачи и файлами автоматизации, а в Google Таблицах останутся листы «Задачи» и «Просроченные». В основной таблице будут выпадающие статусы, фильтры и условное форматирование. Формулы можно оставить помощнику, но диапазон, название листа и статус «Готово» нужно проверить вручную.

Ежедневное отслеживание задач сотрудников начинается с самой Google Таблицы. Для ежедневной работы нужны:

- лист `Задачи` с очередью;
- лист `Просроченные` с формулой `FILTER`;
- выпадающий список статусов;
- фильтры по продавцу, приоритету и сроку;
- подсветка незакрытых работ.

Если подключишь Apps Script, в папке или редакторе появится файл сценария. Сначала проверь результат: новая строка попадает в очередь, просроченная строка выделяется, готовая строка исчезает из листа просроченных.

Формула может выглядеть так:

```text
=IFERROR(FILTER(Задачи!A2:F, Задачи!C2:C<TODAY(), Задачи!C2:C<>"", Задачи!D2:D<>"Готово"), "Просроченных задач нет")
```

Проверь название листа `Задачи`, диапазон и точное написание «Готово». Одна лишняя буква уже даст пустой результат.

Первая версия обходится без личных кабинетов, сложных ролей и отдельного приложения. Чем меньше деталей, тем легче понять, где именно возникла проблема.

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

## Что ломается при контроле сроков и как это чинить?

Чаще всего ломается очередь из-за сравнения дат, поиска строк и повторных запусков. Часовой пояс сдвигает срок, разные пробелы и регистр прячут задачу, лимиты оставляют таблицу частично обновлённой, а повторная отправка может создать дубликаты. Каждый сбой нужно проверять на тестовой строке.

![Хомяк тревожно реагирует на три типичные поломки контроля сроков.](https://s3.regru.cloud/crossmark/statejnik/images/guides/zadachi-sotrudnikov-v-tablice-vmesto-planfiksa-ochered-rabot-s-kontrolem-srokov/kadr-3.webp)

### Срок сдвинулся на час

Коротко: Разные часовые зоны таблицы и скрипта сдвигают просрочку на час, поэтому задача может попасть в просроченные раньше или позже. Нужно выбрать одну часовую зону для таблицы и Apps Script, проверить формат хранения срока и не прибавлять фиксированное смещение к UTC. После настройки проверь дату с временем и дату без времени.

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

После ответа проверь одну дату с временем и одну дату без времени.

### Строка не находится

Коротко: Поиск ломается из-за регистра, пробелов и типов данных: «Продавец» и «продавец» для простого сравнения оказываются разными значениями. Для автоматизации надёжнее технический ID, а не имя или телефон. Нормализуй регистр и пробелы перед сравнением, не считай пустое значение, ноль и строку «0» одинаковыми и проверь строку с пробелом в конце.

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

Проверь строку с пробелом в конце и строку с другой заглавной буквой.

### Таблица обновилась частично

Коротко: При ошибке `429` Google Sheets API часть строк уже записалась, а часть осталась без изменения. Поэтому данные пишут пакетно, ограничивают параллельные запуски и хранят число обработанных строк. Добавь журнал обработанных и необработанных задач и безопасный повтор только незавершённой части, чтобы одна задача не записалась дважды.

При большом количестве обращений Google Sheets API может вернуть `429`. Тогда часть строк уже записалась, а часть осталась без изменения. Пиши данные пакетно, ограничивай параллельные запуски и храни число обработанных строк.

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

### Скрипт остановился по квоте

Коротко: Apps Script прекращает выполнение после превышения временной или суточной квоты. Поэтому не обходи всю историю при каждом запуске: дели очередь на порции, храни последнюю успешно обработанную строку и повторяй только незавершённую часть. Проверяй журнал выполнений на небольшой очереди, чтобы не создать повторные уведомления.

Apps Script прекращает выполнение после превышения временной или суточной квоты. Не обходи всю историю при каждом запуске. Храни последнюю успешно обработанную строку и дели очередь на порции.

Запусти тест на небольшой очереди и посмотри журнал выполнений. Полный запуск без журнала лучше не оставлять.

### Уведомление ушло несколько раз

Коротко: Повторная отправка после тайм-аута создаёт дубли: Telegram иногда уже принял сообщение, хотя ответ не дошёл до скрипта. Для каждого уведомления нужны `eventId` и состояние `sent`, `failed` или `delivery_unknown`. Если после тайм-аута неизвестно, принял ли Telegram сообщение, не отправляй его автоматически второй раз.

Повторная отправка после тайм-аута может создать дубль. Telegram иногда уже принял сообщение, хотя ответ не дошёл до скрипта. Для каждого уведомления нужен `eventId` и состояние `sent`, `failed` или `delivery_unknown`.

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

## Сколько стоит своя таблица против готового сервиса?

Своя схема требует подписки Claude Pro за `$20 в месяц`, если собирать её через [Claude Code](/guides/tokeny-limity-i-schet-tablica-kontrolya-rashodov-claude-code). Готовые сервисы работают по подписке за пользователя в месяц, и конкретные тарифы нужно сверять с их страницами перед покупкой. Таблица дешевле не всегда: сложные процессы могут стоить дороже ожиданием и ручным контролем.

| Вариант | Цена | Что получаешь |
|---|---:|---|
| Своя таблица с Claude Code | `$20 в месяц` | Сборка под смену, свои правила, Google Таблицы и самостоятельные изменения |
| Weeek | по тарифу сервиса | Готовый сервис для задач |
| YouGile | по тарифу сервиса | Готовая система с задачами и ролями |
| Яндекс Трекер | по тарифу сервиса | Готовый трекер для очередей и процессов |
| Блокнот, чаты и разрозненные файлы | Нет отдельной подписки | Ручной контроль, риск потерять срок и ответственность |

Цены готовых сервисов нужно проверять на их тарифных страницах перед покупкой: условия и состав тарифов меняются. Для Claude официальная цена Pro составляет `$20 в месяц` или `$200 в год`, а официальной цены в рублях для России нет.

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

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

## Что сделать сегодня, если технологии раздражают?

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

Начни без терминов:

1. Выпиши открытие магазина, выкладку, ценники, приёмку, обслуживание покупателей и закрытие кассовой зоны.
2. Пометь обязательные и переносимые работы.
3. Добавь продавца и срок.
4. Оставь несколько статусов, включая «Готово» и «Отложена».
5. Проверь одну строку с прошедшим сроком.
6. Укажи причину переноса и новый срок.
7. Только потом добавляй уведомления.

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

## Вопросы и ответы

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

Любое распределение задач сотрудникам по времени начинается со срока: поставь каждой работе срок и отсортируй очередь от ранней даты к поздней. Обязательные задачи назначай на конкретную смену, переносимые оставляй с причиной и новым сроком. Не смешивай дату выполнения с датой создания строки.

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

Правильное распределение задач между сотрудниками начинается с записи имени продавца в столбец «Исполнитель» или с people chip. После этого отдельно выдай доступ к Google Таблице. Запись имени в строке сама по себе не даёт человеку права просмотра или редактирования.

Ежедневный контроль выполнения задач сотрудниками сводится к одной основной очереди: оставь фильтр по исполнителю и отдельный вид просроченных работ. Раз в смену проверяй строки без статуса «Готово». Перенос принимай только с причиной и новым сроком.

Используй условное форматирование по формуле из пятого шага, если срок находится в столбце C, а статус в D. Такая формула только окрашивает строку. Уведомление она не отправляет.

Общий график задач сотрудников ведётся в одной Google Таблице: создай файл, выдай сотрудникам доступ и оставь один лист с задачами. Для разных представлений используй filter view. Отдельные копии файла не создавай, иначе появятся разные версии и ручная сверка.

Вести задачи сотрудникам в эксель можно теми же столбцами, но формулы, доступы и автоматические уведомления придётся настраивать отдельно. Для совместной сменной работы Google Таблицы удобнее, потому что все работают с одним файлом.

Нет. На первом этапе достаточно статусов, подсветки и листа просроченных. Telegram добавляй после проверки таблицы. Для уведомлений понадобятся токен бота, `chat_id`, защита от дублей и отметка уже отправленного сообщения.

Оберни `FILTER` в `IFERROR` и выведи текст «Просроченных задач нет». Иначе Google Таблицы покажут `#N/A`, хотя пустой результат означает, что незакрытых просрочек сейчас нет.

Открой настройки доступа Google Таблицы, добавь рабочий адрес и выбери роль: просмотр, комментирование или редактирование. Проверь файл под аккаунтом продавца. People chip внутри строки не заменяет эту настройку.

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

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

Добавь каждой задаче или уведомлению технический `eventId`. Перед созданием новой строки проверяй, не существует ли такой идентификатор. При неопределённом результате отправки не запускай повтор автоматически.

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

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

- [Выпадающие списки в Google Таблицах](https://support.google.com/docs/answer/186103?hl=en-5)
- [People chip и права доступа](https://support.google.com/docs/answer/12319513?hl=en)
- [Настройка доступа к файлам Google](https://support.google.com/docs/answer/9331169?hl=en)
- [Фильтрация и сортировка в Google Таблицах](https://support.google.com/docs/answer/3540681?co=Platform%3DDesktop&hl=en)
- [Условное форматирование по пользовательской формуле](https://support.google.com/docs/answer/78413?hl=en-GB)
- [Тарифы Claude и Claude Code](https://support.claude.com/en/articles/11145838-use-claude-code-with-your-pro-or-max-plan)
- [Тарифный план Claude Pro](https://support.claude.com/en/articles/8325606-what-is-the-pro-plan)
- [Доступность Claude по странам](https://support.claude.com/ru/articles/8461763-%D0%B3%D0%B4%D0%B5-%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-claude)
- [Устанавливаемые триггеры Apps Script](https://developers.google.com/apps-script/guides/triggers/installable)
- [Лимиты Google Sheets API](https://developers.google.com/workspace/sheets/api/limits)
- [Telegram Bot API](https://core.telegram.org/bots/api)
- [Проблема дубликатов webhook в Google Таблицах](https://github.com/android-sms-gateway/example-webhooks-google-sheets)
- [Устранение повторной отправки сообщений в Telegram](https://github.com/NousResearch/hermes-agent/pull/5153)
- [OAuth и срок действия refresh token](https://developers.google.com/identity/protocols/oauth2)
- [«Вбухал полтора миллиона в систему управления бизнес-процессами и до сих пор ее внедряю. Но все равно доволен»](https://vc.ru/services/1763498-vbuhal-poltora-milliona-v-sistemu-upravleniya-biznes-processami-i-do-sih-por-ee-vnedryayu-no-vse-ravno-dovolen)
- [«Почему у вас в бизнесе куча невыполненных задач в бэклоге»](https://vc.ru/life/1816135-pochemu-u-vas-v-biznese-kucha-nevypolnennyh-zadach-v-bekloge)
- [Цены Weeek](https://weeek.net/ru/pricing)
- [Цены YouGile](https://ru.yougile.com/prices)
- [Цены Яндекс Трекера](https://tracker.yandex.ru/)

_Это собирательная история выпускников практикума, а не рассказ одного человека: так эта работа устроена в большинстве таких дел._
