Přeskočit obsah

Reference: Google Integrace

Tato stránka shrnuje datový model, integrační toky a automatizaci modulu Google. Je určena pro administrátory a pokročilé uživatele, kteří potřebují rozumět tomu, jak synchronizace skutečně funguje.

Architektura a toky

flowchart LR
    U[Uživatel připojí Google účet<br/>OAuth 2.0] --> EA[Externí účet Google]
    EA --> CalJob[Job "SynchronizeEventsWithGoogleCalendar"<br/>*/10 minut]
    CalJob <--> CRMEvents[Schůzky & Volání v CRM]
    CalJob <--> GCal[Google Calendar API]
    EA --> ContactsPush[Akce "Push to Google" u Kontaktů/Leadů]
    ContactsPush <--> PeopleAPI[Google People API]
    EA --> GmailOAuth[OAuth2 IMAP/SMTP pro Gmail]

Datové objekty

Objekt Účel Napojení
Externí účet Google (ExternalAccount) Uchovává OAuth tokeny a uživatelské volby pro kalendář, kontakty a Gmail. Vazba na uživatele; integrace Google.
GoogleCalendar (GoogleCalendar) Lokální katalog Google kalendářů (ID, název). Používá se u schůzek/volání (googleCalendar, googleCalendarEventId).
GoogleCalendarUser (GoogleCalendarUser) Přiřazení kalendáře uživateli, role a typ (hlavní vs. monitorovaný), stav sync tokenů. Odkazuje na User a GoogleCalendar.
GoogleCalendarEvent (GoogleCalendarEvent) Mapování konkrétní schůzky/volání na ID události v Google. LinkParent na zdrojovou entitu + odkaz na GoogleCalendar.
GoogleCalendarRecurrentEvent (GoogleCalendarRecurrentEvent) Drží informace o opakovaných událostech (tokeny, poslední načtení). Vazba na GoogleCalendarUser.
GoogleContactsGroup (GoogleContactsGroup) Přehled Google štítků/skupin pro kontakty. Používá se v uživatelské volbě synchronizované skupiny.
GoogleContactsUser (GoogleContactsUser) Nastavení kontaktní skupiny pro konkrétního uživatele (hlavní/monitorovaná, aktivita, čas poslední sync). Odkazuje na User a GoogleContactsGroup.
GoogleContactsPair (GoogleContactsPair) Propojení kontaktu/leadu v CRM s kartou v Google (resourceName, etag, účet). Has-children link z Contact/Lead.

Konfigurační pole (Externí účty → Google)

  • Kalendář: calendarDirection (směr: pouze CRM → Google / pouze Google → CRM / obousměrně), calendarStartDate (od kterého data tahat změny), calendarEntityTypes (jaké entity se synchronizují – typicky Schůzka/Volání), calendarDefaultEntity (výchozí typ pro události vzniklé z Google), removeGoogleCalendarEventIfRemovedInEspo, dontSyncEventAttendees (výchozí = zapnuto), calendarMainCalendar (povinný), calendarMonitoredCalendars (volitelné další kalendáře), calendarAssignDefaultTeam.
  • Kontakty: contactsGroups – výběr Google skupiny; systém umožňuje jen jednu aktivní skupinu (kontrola při uložení).
  • Gmail: gmailEmailAddress – e-mailová adresa používaná pro OAuth IMAP/SMTP. Panel Gmail je dostupný pouze pro Espo verze ≥ 5.6 (starší verze jsou blokovány).

Automatizace a joby

  • SynchronizeEventsWithGoogleCalendar (cron: */10 * * * *) – obousměrná synchronizace schůzek a hovorů podle nastavení směru, kalendářů a výchozího typu entity.
  • GoogleJob (denně 02:15) → plánuje JobRunner pro interní kontrolu licence/stavu integrace.
  • Akce Push to Google (detail i hromadně pro Kontakt/Lead) volá GoogleContacts/action/push a respektuje vybranou skupinu kontaktů.

Viditelnost panelů a podmínky

  • Panel Gmail/InBound Email se zobrazuje jen v detailním režimu a pouze pokud host nebo SMTP host obsahuje gmail. (soubor google:inbound-email-dynamic-handler).
  • Po odpojení účtu se OAuth tokeny (accessToken, refreshToken) smažou a všechna povolení se deaktivují.

Bezpečnost a omezení

  • Autentizace probíhá výhradně přes OAuth 2.0; hesla uživatele se v CRM nikde neukládají.
  • Jeden uživatel může mít zapnuty více produktů (Kalendář, Kontakty, Gmail), ale jejich panely se zobrazují jen po úspěšném připojení účtu.
  • Před prvním syncem je nutné mít na profilu nastaveny timezone a oprávnění k příslušným entitám (schůzky, hovory, kontakty).