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ánujeJobRunnerpro interní kontrolu licence/stavu integrace.- Akce Push to Google (detail i hromadně pro Kontakt/Lead) volá
GoogleContacts/action/pusha 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.(souborgoogle: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).