Integrace Mattermost: Automatický stav "Nerušit" při schůzkách
Tato funkce automaticky nastavuje stav "Nerušit" (Do Not Disturb - DND) v Mattermost pro všechny účastníky schůzky v EspoCRM během jejího trvání. Tím se minimalizují rušivé notifikace, když jsou uživatelé v důležité schůzce.
Jak to funguje
- Při vytvoření schůzky: Když uživatel vytvoří novou schůzku v EspoCRM, systém automaticky naplánuje úlohu, která se spustí v čase začátku schůzky.
- Nastavení stavu DND: V naplánovaný čas úloha zkontroluje všechny účastníky schůzky a těm, kteří mají povoleno "Nerušit" v nastavení svého účtu, nastaví tento stav v Mattermost.
- Doba trvání: Stav "Nerušit" zůstane aktivní po celou dobu trvání schůzky (podle pole
duration). - Integrační předpoklady: Pro správnou funkci musí být Mattermost server správně nakonfigurován v EspoCRM a uživatelé musí mít povolenou integraci ve svých preferencích.
Tato funkce je užitečná pro týmy, které používají Mattermost pro komunikaci a chtějí se během schůzek soustředit bez rušivých upozornění.
Technické informace
Hlavní komponenty
-
ChangeMattermostUserStatus: Úloha, která nastavuje stav "Nerušit" pro účastníky schůzky. -
Závislosti:
EntityManager,ChatService -
Metoda
run: Zpracuje data schůzky a volá Mattermost API pro nastavení stavu DND. -
ScheduleJob: Hook, který naplánuje úlohu při vytvoření schůzky. -
Závislosti:
JobSchedulerFactory -
Metoda
beforeSave: Detekuje novou schůzku a naplánuje úlohu na její začátek.
Konfigurace
-
Uživatelské preference: Pole
mattermostDndEnabledv entitěPreferencesurčuje, zda má být pro uživatele automaticky nastavován stav DND. -
Definice pole -
Rozložení v UI -
Naplánované úlohy: Úloha
ChangeMattermostUserStatusje registrována vscheduledJobs.json.
Interakce s Mattermost
ChatService: Poskytuje metody pro komunikaci s Mattermost API.- Metoda
setDoNotDisturbWithDuration: Nastaví stav DND s časovým limitem. - Požadavky: Mattermost server musí být dostupný a správně nakonfigurován (
mattermostServerUrl,mattermostMasterToken).
Ošetření chyb
- Pokud není Mattermost integrace aktivní, úloha vyvolá
ErrorSilent. - Neexistující uživatelé nebo ti s vypnutou integrací jsou přeskočeni.
Datový tok
- Uživatel vytvoří schůzku v EspoCRM.
- Hook
ScheduleJobdetekuje novou schůzku a naplánuje úlohuChangeMattermostUserStatus. - V čase začátku schůzky se spustí úloha, která:
- Načte schůzku a její účastníky.
- Pro každého účastníka s povoleným DND zavolá Mattermost API.
- Mattermost nastaví stav "Nerušit" na dobu trvání schůzky.