Přeskočit na hlavní obsah

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 mattermostDndEnabled v entitě Preferences určuje, zda má být pro uživatele automaticky nastavován stav DND.

  • Definice pole

  • Rozložení v UI

  • Naplánované úlohy: Úloha ChangeMattermostUserStatus je registrována v scheduledJobs.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 ScheduleJob detekuje novou schůzku a naplánuje úlohu ChangeMattermostUserStatus.
  • 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.