smengo

SMENGO · ЗАМІНИ ЗМІН

Заміна зміни — заявка з рішенням, а не листування в чаті

Працівник просить заміну в Telegram. Ви схвалюєте одним дотиком — і зміна тієї ж секунди йде з його графіка на біржу, до відповідних колег. Хвилями, а не всім одразу.

  • Зняти себе зі зміни працівник не може — лише попросити
  • Схвалення знімає зміну й відкриває її однією транзакцією
  • Рішення повертається працівнику в той самий чат
Біржа змін

Незакриті зміни в графіку — система сама пропонує їх відповідним працівникам

+ Відкрита зміна

Заявки на заміну

  • Від Ольга Романенко·пт, 3 липня · 16:00–00:00
    Створена 1 липня 2026
    ВідхилитиПідтвердити

Відкриті

  • пт, 3 липня·Відділ продажів·Менеджер·16:00–00:00

    Замена: Ольга Романенко

    Створена 1 липня 2026 · Надіслано оферів: 4
    Скасувати
  • сб, 4 липня·HR·Будь-яка посада·10:00–18:00
    Створена 30 червня 2026 · Надіслано оферів: 6 · Відхилено: 2
    Скасувати

Чекають підтвердження

  • нд, 5 липня·Відділ продажів·Менеджер·12:00–20:00
    Створена 29 червня 2026 · Надіслано оферів: 5
    ВідхилитиПідтвердити

    Претендент: Олексій Новіков

Закриті за місяць

  • чт, 2 липня·Відділ продажів·Менеджер·09:00–18:00
    Створена 27 червня 2026 · Надіслано оферів: 4
    Закрита

    Претендент: Іван Мельников

Як це відбувається

Шлях однієї зміни: від «не зможу» до нового імені в графіку

П'ятниця, 3 липня, 16:00–00:00. Ольга не виходить — ось що відбувається далі.

  1. 114:05

    Працівник тисне «Прошу заміну»

    Бот показує лише її власні найближчі робочі зміни, щонайбільше десять. Чужу зміну обрати не можна: список завжди перефільтрований за працівником.

  2. 214:06

    Заявка пішла керівнику

    У чаті — «Заявку надіслано керівнику», у розділі «Заявки на заміну» — новий рядок. Попросити ту саму зміну вдруге не вийде: жива заявка на зміну буває одна.

  3. 315:31

    Керівник тисне «Підтвердити»

    Зміна видаляється з графіка Ольги й одразу стає відкритою зміною з приміткою про те, кого замінюють. Зміна не може лишитися знятою й не відкритою: обидва записи — в одній транзакції. Офери йдуть наступним кроком.

  4. 415:31

    Хвиля 1 — тим, хто сам хотів

    Офер іде колегам того самого відділу й посади: першими — ті, хто позначив «хочу» на 3 липня, усередині хвилі — за набраними за місяць годинами, знизу вгору.

  5. 515:44

    «Беру» — і зміна в графіку

    За миттєвого закриття перший, хто натиснув, отримує зміну одразу, іншим кандидатам приходить, що її вже забрали.

  6. 6+60 хв

    Якщо тиша — хвиля 2

    Після завершення TTL хвилі (типово година, налаштовується від 5 хвилин до доби) офер іде решті відповідних працівників відділу.

Зворотний зв'язок: працівнику, який просив заміну, приходить «Заміну схвалено» або «Заміну відхилено» — тим самим чатом, без окремого застосунку й без дзвінка.

Межі

Працівник не знімає себе зі зміни. Він просить.

Графік змінює лише той, у кого є право «Керування змінами». Це свідоме правило: зміна, про яку «домовилися в чаті», у графіку сама не змінюється.

Працівник — у Telegram

Просить, погоджується, відмовляється

  • Попросити заміну на будь-яку зі своїх найближчих робочих змін (бот показує до десяти)
  • Позначити «хочу» і «не можу» в календарі доступності
  • Узяти відкриту зміну кнопкою «Беру»
  • Пропустити офер — він закриється, а зміна лишиться відкритою для решти

Керівник — у Smengo

Право «Керування змінами»

  • Підтвердити або відхилити заявку на заміну
  • Створити відкриту зміну без жодної заявки
  • Скасувати відкриту зміну
  • Підтвердити претендента, якщо миттєве закриття вимкнене

Не інтерфейсна умовність: хто не має права «Керування змінами», той заявок не бачить узагалі — доступ закритий політиками бази даних, а не прихованою кнопкою.

Що всередині

П'ять механік, з яких складається заміна

Кожна — не налаштування на майбутнє, а поведінка, що вже працює в продукті.

Прохання приходить заявкою, а не повідомленням

Кнопка «Прошу заміну» в боті — і в керівника з'являється рядок з іменем, датою та часом зміни. Ніщо не тоне в листуванні й не потребує переказу.

  • Вибір — лише зі своїх найближчих робочих змін, щонайбільше десять
  • На одну зміну — одна жива заявка, дублікат просто не створиться
  • Поки рішення немає, зміна лишається в графіку за працівником
2 дотики
від кнопки до заявки
обрати зміну, підтвердити
0
дублікатів заявок
унікальний індекс на живу заявку в базі

Схвалення — одна транзакція, а не дві дії

«Підтвердити» знімає зміну з працівника й створює відкриту зміну одним викликом у базі. Дата, час і пресет переносяться як є, у примітку потрапляє ім'я того, кого замінюємо.

  • Зміна не може лишитися знятою й не відкритою — обидва записи в одній транзакції
  • Видалення зміни потрапляє в журнал змін
  • Якщо зміну встигли змінити або видалити, заявка чесно закривається як неактуальна
1
виклик на підтвердження
approve_swap_request у базі даних
2
рівні перевірки права
політика в базі та гейт у серверній дії
Графік · пт, 3 липня
Ольга Романенко16:00–00:00
Зміну знято
Біржа · відкрита зміна
Відділ продажів · Менеджер16:00–00:00
Замена: Ольга Романенко
Відкрита
approve_swap_request()Зняття й відкриття — в одному виклику: половинчастого стану не буває. Офери досилаються наступним кроком.

Офери йдуть хвилями, а не всім одразу

Відкрита зміна не розсилається віялом. Спершу — тим, хто сам позначив, що хоче працювати цього дня, і в кого менше годин за місяць. Решта долучається пізніше.

  • Кандидат — з того самого відділу й тієї самої посади; якщо посаду не вказано, підійде будь-яка
  • Хто вже зайнятий цього дня або позначив «не можу», у список не потрапляє
  • Хвиля 2 вмикається за TTL: від 5 хвилин до доби, типово година
  • Якщо «хочу» не позначив ніхто, у першу хвилю йде половина списку, але не менше трьох осіб
60 хв
TTL хвилі типово
налаштовується від 5 хвилин до 24 годин
2
хвилі оферів
пріоритетна та решта відповідних
Хвиля 1 — одразуГодин за місяць

Позначили «хочу» на 3 липня, відсортовані за годинами за місяць

Олексій Новіковхочу112 год
Дар'я Косхочу176 год
Хвиля 2TTL 60 хв
Марк Сидоров184 год
Катерина Волкова192 год
Офер не отримають
Іван Мельниковуже в графіку 3 липня
Юлія Лебідьпозначила «не можу»
Роман Карповінший відділ

Якщо «хочу» на цю дату не позначив ніхто, у першу хвилю йде половина відповідних — але не менше трьох осіб.

Миттєве закриття — або ваше підтвердження

Один перемикач у налаштуваннях вирішує, хто ставить крапку. Увімкнений — перший, хто погодився, одразу в графіку. Вимкнений — претендент чекає на вас у розділі «Чекають підтвердження».

  • Перший, хто натиснув, виграє: рядок зміни блокується в момент кліку
  • Двох змін на один день у людини не з'явиться — друга спроба поверне конфлікт
  • Відхилений претендент не блокує зміну: вона знову відкрита для решти
2 режими
закриття зміни
миттєво або з підтвердженням
1
зміна на день на людину
друге захоплення поверне конфлікт
Відкриті зміни
Миттєве закриття

Перший працівник, який погодився, отримує зміну одразу, без підтвердження.

TTL хвилі, хвилин60Через скільки хвилин офер іде другій хвилі.
Зберегти
Увімкнений

«Беру» — і зміна одразу в графіку працівника; решті приходить, що її вже забрали.

Вимкнений

«Беру» — і рядок іде в «Чекають підтвердження»: останнє слово за керівником.

Гонки не буде: зміна блокується в момент кліку, другий, хто натиснув, отримує «зміну вже зайнято».

Відповідь повертається в той самий чат

Тому, хто просив заміну, приходить рішення. Тому, хто взяв зміну, — підтвердження, що вона вже в графіку. Решті кандидатів — що зміну розібрали.

  • «Заміну схвалено, зміна пішла на біржу» або «Заміну відхилено»
  • Кому не вдалося доставити офер, той позначається недоступним, а не висить мовчки
  • Подія swap.decided іде у ваші вебхуки — рішення можна забрати у свою систему
3
адресати одного рішення
прохач, переможець і решта кандидатів
4
поля в події вебхука
request_id, employee_id, entry_date, decision

Не лише заміни

Відкриту зміну можна створити й без заявки

Хтось захворів, відкрили нову точку, продовжили вечір — зміна створюється руками й іде тими самими хвилями.

  • До десяти однакових змін за раз
  • Відділ обов'язковий, посада — за бажанням: «будь-яка посада» розширює коло кандидатів
  • Час — з пресетів змін організації або вручну
  • Примітка лишається на картці зміни у списку біржі — у текст офера кандидату вона не потрапляє
  • Якщо відповідних кандидатів не знайшлося, форма чесно про це скаже, а не вдасть, що розіслала
Нова відкрита зміна
Дата
3 липня 2026
Відділ
Відділ продажів
Посада
Менеджер
Кількість змін
1
Час
Ранок 09:00–17:00Вечір 16:00–00:00Ніч 00:00–08:00Свій час
Примітка
Заміна: Ольга Романенко
СтворитиСкасувати

Підходящих кандидатів не знайшлося — оффери не надіслані

Порівняння

Чат «хто підмінить?» проти біржі замін

Одна й та сама п'ятниця — два різні результати.

Прохання тоне у стрічці: хто погодився, з'ясовується в день зміни
Заявка лежить окремим списком з іменем, датою та часом; рішення — дві кнопки
«Я домовився» — а в графіку й досі стоїть колишня людина
Схвалення саме змінює графік: зміна знімається й відкривається однією дією
Пишемо всім одразу, погоджується той, хто й так перепрацьовує
Першими отримують ті, хто позначив «хочу», і в кого менше годин за місяць
Двоє «взяли» одну зміну — розбиратися доводиться вручну
Перший, хто натиснув, виграє, другому приходить «зміну вже забрали»
Вирішує керівник
Заміна = відкрита зміна
Відповідь у той самий чат

Назовні: рішення щодо заявки йде подією swap.decided у ваші вебхуки — з ідентифікатором заявки, працівником, датою зміни та самим рішенням.

Екосистема

Заміни — ланка ланцюжка, а не окремий сервіс

Графік, бот і біржа працюють на одних даних: доступність приходить з календаря працівника, години — з табеля, рішення повертається в чат.

Питання

Часті питання про заміни змін

Ні. У боті є лише «Прошу заміну» — вона створює заявку. Графік змінюється рішенням керівника з правом «Керування змінами».

Зміна лишається в графіку за працівником. Поки «Підтвердити» не натиснуто, для решти нічого не змінюється.

Працівникам того самого відділу з відповідною посадою. Перша хвиля — ті, хто позначив «хочу» на цю дату, відсортовані за набраними за місяць годинами. Друга хвиля вмикається через TTL, типово через годину.

Так, якщо увімкнене «Миттєве закриття»: перший, хто натиснув «Беру», одразу отримує зміну в графік. Вимкніть перемикач — і кожен претендент чекатиме на ваше рішення.

У кандидати він не потрапить, а якщо спробує взяти зміну іншим шляхом, отримає конфлікт: двох змін на один день у людини не з'явиться.

Ні. Усе, що потрібно працівнику, відбувається в Telegram-боті за одним посиланням-запрошенням; інтерфейсом користується керівник.

Так. Рішення надсилається подією swap.decided на ваш HTTPS-ендпоінт з підписом; у корисному навантаженні — ідентифікатор заявки, працівник, дата зміни та рішення.

Хай заміни живуть у графіку, а не в листуванні

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

14 днів безкоштовно · без картки