Naplánované akce (Scheduled Jobs)
Naplánované akce jsou automatické úlohy, které běží na pozadí systému v pravidelných intervalech. Tyto úlohy zajišťují automatizaci důležitých procesů jako kontrola emailů, čištění databáze, zpracování workflow a další klíčové operace.
Přístup k naplánovaným akcím
- Přihlaste se jako administrátor
- Klikněte na Administrace (Administration)

- Otevře se administrační panel

- V levém menu přejděte do sekce Systém (System)
- Vyberte Naplánované akce (Scheduled Jobs)

Zobrazí se seznam všech naplánovaných akcí v systému s informacemi o jejich stavu, posledním běhu a dalším plánovaném spuštění. Zde můžete:
- Vytvořit novou akci - tlačítko vpravo nahoře
- Upravit stávající akci - kliknutím na název úlohy v seznamu
Co jsou naplánované akce
Naplánované akce (Scheduled Jobs) fungují podobně jako cron joby na Linuxových serverech. Jde o automatické úlohy, které se spouštějí v pravidelných intervalech bez nutnosti manuálního zásahu.
Jak fungují
- Serverový cron spouští AutoCRM cron.php každou minutu
- AutoCRM zkontroluje, které joby mají běžet
- Spustí joby podle nastaveného plánu
- Zaznamená výsledek do logu
Proč jsou důležité
- Automatizace: Eliminují manuální opakující se úkoly
- Konzistence: Zajišťují pravidelné provádění důležitých operací
- Spolehlivost: Běží i když nikdo není přihlášený
- Výkon: Těžké operace běží na pozadí
Typy naplánovaných akcí
Základní systémové úlohy
1. Kontrola nových emailů (Check for New Emails)
Účel: Stahování nových emailů z osobních IMAP účtů uživatelů
Frekvence: Každých 1-5 minut (doporučeno: */2 * * * *)
Kdy je kritická:
- Pro příjem emailů do systému
- Pro automatické vytváření případů z emailů
- Pro sledování korespondence
Co se stane když neběží: Uživatelé neuvidí nové emaily v systému
2. Kontrola skupinových emailových účtů (Check Group Email Accounts)
Účel: Stahování emailů ze sdílených/skupinových účtů
Frekvence: Každých 1-5 minut (doporučeno: */3 * * * *)
Kdy je kritická:
- Pro podporu týmových schránek (např. support@firma.cz)
- Pro automatické vytváření případů
- Pro distribuci emailů v týmu
3. Zpracování hromadných emailů (Process Mass Emails)
Účel: Zpracování a odesílání hromadných emailových kampaní
Frekvence: Každých 15-60 minut (doporučeno: */15 * * * *)
Kdy je kritická:
- Při běhu marketingových kampaní
- Pro rozesílku newsletterů
- Pro hromadnou komunikaci
Nastavení: Počet emailů odeslaných za běh lze nastavit v Administrace → Odchozí emaily
4. Odesílání emailových připomenutí (Send Email Reminders)
Účel: Odesílání připomenutí pro schůzky, hovory a úkoly
Frekvence: Každou minutu (* * * * *)
Kdy je kritická:
- Pro notifikace před schůzkami
- Pro připomenutí úkolů
5. Odesílání emailových oznámení (Send Email Notifications)
Účel: Odesílání systémových oznámení emailem
Frekvence: Každou minutu nebo každé 2 minuty
Kdy je kritická:
- Pro oznámení o změnách v záznamech
- Pro upozornění na nové přiřazení
- Pro workflow oznámení
6. Úklid (Cleanup)
Účel: Čištění a údržba databáze
Co čistí:
- Smazané záznamy starší než X dní
- Staré oznámení
- Dočasná data
- Exportované soubory
Frekvence: Jednou denně (doporučeno: 0 1 * * * - v 1:00 ráno)
Nastavení: Perioda uchování dat v Administrace → Nastavení → Úklid
7. Kontrola autentizačních tokenů (Auth Token Control)
Účel: Mazání vypršelých autentizačních tokenů
Frekvence: Každou hodinu (0 * * * *)
Kdy je kritická:
- Pro bezpečnost systému
- Pro odstranění neplatných relací
- Pro GDPR compliance
8. Kontrola statusu článků znalostní báze (Control Knowledge Base Article Status)
Účel: Automatická aktualizace statusu článků znalostní báze (publikace, expirace)
Frekvence: Každou hodinu nebo denně
Kdy je potřeba: Pokud používáte modul Znalostní báze
9. Zpracování fronty webhooků (Process Webhook Queue)
Účel: Zpracování fronty webhooků pro integraci s externími systémy
Frekvence: Každých 5-15 minut
Kdy je potřeba: Pokud používáte webhooky pro integraci
10. Zpracování čekajících procesních toků (Process Pending Process Flows)
Účel: Zpracování čekajících workflow procesů (BPM)
Frekvence: Každou minutu nebo každé 2 minuty
Kdy je kritická:
- Pro běh obchodních procesních toků
- Pro automatizaci workflow
- Pro časové spouštěče procesů
Úlohy specifické pro moduly
Podle nainstalovaných rozšíření můžete mít další úlohy:
- Workflow úlohy - pokud používáte Workflows
- Naplánované reporty - pro automatické generování reportů
- Úlohy zálohování - pokud máte rozšíření pro zálohování
- Synchronizace dat - pro synchronizaci s externími systémy
Nastavení naplánované akce
Při úpravě nebo vytváření naplánované akce nastavujete:

1. Činnost (Job)
Výběr ze seznamu dostupných typů úloh v systému.
Dostupné typy úloh:
| Technický název | České označení |
|---|---|
AuthTokenControl | Kontrola autentizačních tokenů |
CNBSync | Synchronizace měnových kurzů s CNB |
CheckEmailAccounts | Zkontrolovat emaily |
CheckInboundEmails | Zkontrolovat příchozí emaily |
ControlKnowledgeBaseArticleStatus | Kontrola statusu článku znalostní báze |
ProcessMassEmail | Posílání hromadných emailů |
ProcessWebhookQueue | Zpracování fronty webhooků |
RecordCurrencyRates | Zaznamenání měnových kurzů |
SaveWarehouseValue | Ukládání hodnoty skladu |
SendEmailNotifications | Odesílání emailových oznámení |
SendEmailReminders | Připomenutí emailů k poslání |
SendScheduledEmails | Posílání naplánovaných emailů |
SynchronizeEventsWithGoogleCalendar | Synchronizace Google kalendáře |
Seznam dostupných typů úloh se může lišit podle nainstalovaných rozšíření a modulů ve vašem AutoCRM.
2. Jméno (Name)
Název úlohy - automaticky se doplňuje podle typu úlohy, ale lze jej změnit na vlastní popisný název.
Příklad: Pokud vyberete činnost "CheckEmailAccounts", automaticky se doplní název "Check Email Accounts", který můžete změnit například na "Kontrola emailů každé 2 minuty".
3. Plánování (Scheduling)
Určuje jak často se úloha bude provádět pomocí cron syntaxe.
- Každý typ činnosti má výchozí nastavení (např. kontrola emailů každé 2 minuty:
*/2 * * * *) - Toto nastavení lze změnit podle vlastních potřeb
- Podrobné vysvětlení cron syntaxe viz sekce níže
Stav (Status): Každou úlohu můžete také nastavit jako:
- Aktivní (Active) - Úloha běží podle plánu
- Neaktivní (Inactive) - Úloha je pozastavena
Poslední běh (Last Run): Zobrazuje kdy úloha naposledy běžela (pouze pro čtení)
Další běh (Next Run): Zobrazuje kdy úloha poběží příště podle cron plánu (pouze pro čtení)
Cron syntax - formát plánování
Cron syntax v AutoCRM používá 5 polí oddělených mezerami:
* * * * *
│ │ │ │ │
│ │ │ │ └─── Den v týdnu (0-7, 0 nebo 7 = neděle)
│ │ │ └───── Měsíc (1-12)
│ │ └─────── Den v měsíci (1-31)
│ └───────── Hodina (0-23)
└─────────── Minuta (0-59)
Speciální znaky
*- Každá hodnota (např. každou minutu, každý den),- Seznam hodnot (např.1,15,30= v minutě 1, 15 a 30)-- Rozsah hodnot (např.1-5= pondělí až pátek)/- Krok (např.*/5= každých 5 jednotek)
Praktické příklady
| Cron syntax | Popis | Kdy použít |
|---|---|---|
* * * * * | Každou minutu | Send Notifications, Reminders |
*/2 * * * * | Každé 2 minuty | Check Emails, Process Flows |
*/5 * * * * | Každých 5 minut | Group Email Accounts |
*/15 * * * * | Každých 15 minut | Mass Emails, Webhooks |
*/30 * * * * | Každých 30 minut | Report generation |
0 * * * * | Každou hodinu (na začátku) | Auth Token Control |
0 2 * * * | Každý den ve 2:00 ráno | Cleanup, Backup |
0 0 * * 0 | Každou neděli o půlnoci | Týdenní údržba |
0 0 1 * * | První den v měsíci o půlnoci | Měsíční reporty |
0 9 * * 1-5 | Každý pracovní den v 9:00 | Ranní reporty |
30 8,12,17 * * * | Denně v 8:30, 12:30, 17:30 | Pravidelné kontroly |
Vytvoření vlastní naplánované akce
Pro administrátory - použití existujících úloh
- V seznamu Naplánovaných akcí klikněte na Vytvořit naplánovanou akci (Create Scheduled Job)
- Vyplňte Název (Name) - popisný název (např. "Denní backup reportů")
- Nastavte Stav (Status) na Aktivní (Active)
- V poli Úloha (Job) vyberte typ úlohy ze seznamu
- Nastavte Plánování (Scheduling) pomocí cron syntaxe
- Klikněte Uložit (Save)
Úprava existující naplánované akce
Pro úpravu již vytvořené naplánované akce:
- V seznamu Naplánovaných akcí klikněte na název úlohy, kterou chcete upravit
- Otevře se editační formulář s aktuálním nastavením

- Upravte požadované pole (Název, Stav, Plánování, atd.)
- Klikněte Uložit (Save) pro uložení změn
Pro vývojáře - vytvoření vlastní job třídy
Pokud potřebujete zcela vlastní funkcionalitu, můžete vytvořit vlastní Job třídu:
Krok 1: Vytvořte soubor třídy
Umístění: custom/Espo/Custom/Jobs/MujVlastniJob.php
<?php
namespace Espo\Custom\Jobs;
use Espo\Core\Job\JobDataLess;
class MujVlastniJob implements JobDataLess
{
public function __construct(
private EntityManager $entityManager
) {}
public function run(): void
{
// Zde implementujte logiku vašeho jobu
// Příklad: Najít všechny aktivní účty
$accounts = $this->entityManager
->getRDBRepository('Account')
->where(['isActive' => true])
->find();
foreach ($accounts as $account) {
// Zpracování...
}
}
}
Krok 2: Vyčistěte cache
Po vytvoření souboru spusťte: Administrace → Vyčistit cache (Clear Cache)
Krok 3: Vytvořte naplánovanou akci
V Administrace → Naplánované akce vytvořte novou úlohu a vyberte vaši třídu ze seznamu.
Monitorování a ladění
Kontrola logů
Kde najít logy:
- Administrace → Naplánované akce (Scheduled Jobs)
- V pravém horním rohu klikněte na ikonu se třemi tečkami (⋮)
- Vyberte Úlohy (Jobs)

- Zobrazí se seznam běžících, dokončených a naplánovaných úloh

Zde najdete:
- Běžící (Running) - Aktuálně běžící úlohy
- Úspěšné (Success) - Úspěšně dokončené úlohy
- Neúspěšné (Failed) - Neúspěšné úlohy s chybami
- Čekající (Pending) - Naplánované úlohy čekající na spuštění
Alternativně - serverové logy:
- Logy jsou v
data/logs/složce na serveru - Hledejte soubor aktuálního data (např.
2025-10-06.log)
Informace v detailu úlohy
- Poslední běh (Last Run) - Kdy úloha naposledy běžela
- Stav (Status) - Zdali je aktivní
- Další běh (Next Run) - Kdy poběží příště
Co dělat když úloha selhává
-
Zkontrolujte log
- Hledejte chybové zprávy (error messages)
- Identifikujte příčinu (např. chybějící data, timeout)
-
Zkontrolujte serverový cron
- Běží cron.php každou minutu?
- Má webserver práva na spuštění?
-
Timeout problémy
- Zvyšte PHP max_execution_time
- Rozdělte job na menší části
- Zpracovávejte data v dávkách
-
Memory problémy
- Zvyšte PHP memory_limit
- Optimalizujte dotazy
- Použijte batch processing
Nejčastější problémy
Úloha neběží vůbec
Příčiny:
- Serverový cron není nastaven
- Úloha je neaktivní (Inactive)
- Chybná cron syntax
Řešení:
- Zkontrolujte že na serveru běží:
* * * * * cd /path/to/autocrm && php cron.php > /dev/null 2>&1 - Nastavte úlohu na aktivní (Active)
- Ověřte cron syntax pomocí online nástrojů (crontab.guru)
Úloha běží příliš často
Příčiny:
- Chybná cron syntax
- Více instancí cronu běží současně
Řešení:
- Zkontrolujte cron syntax
- Ujistěte se, že cron.php neběží duplicitně
- Použijte zamykací mechanismus (locking)
Úloha běží příliš pomalu/timeout
Příčiny:
- Velké množství dat
- Pomalé databázové dotazy
- Nedostatečný server resources
Řešení:
- Optimalizujte databázové dotazy
- Zpracovávejte data po dávkách (batch processing)
- Zvyšte PHP limits (memory_limit, max_execution_time)
- Použijte indexy v databázi
Emailové úlohy nestahují emaily
Příčiny:
- Chybné IMAP nastavení
- Vypršelá hesla/tokeny
- Firewall blokuje připojení
Řešení:
- Zkontrolujte IMAP nastavení v Osobních emailových účtech (Personal Email Accounts)
- Otestujte připojení ručně
- Zkontrolujte logy pro konkrétní chybovou zprávu
- Ověřte firewall pravidla
Důležité úlohy pro provoz
Kritické úlohy - MUSÍ běžet
Tyto úlohy jsou nezbytné pro základní fungování AutoCRM:
| Úloha | Proč je kritická | Doporučená frekvence |
|---|---|---|
| Check for New Emails | Příjem emailů do systému | */2 * * * * |
| Send Email Notifications | Notifikace uživatelů | * * * * * |
| Send Email Reminders | Připomenutí schůzek/úkolů | * * * * * |
| Process Pending Process Flows | Workflow automatizace | * * * * * |
| Cleanup | Údržba databáze | 0 1 * * * |
| Auth Token Control | Bezpečnost | 0 * * * * |
Důležité úlohy - měly by běžet
| Úloha | Účel | Doporučená frekvence |
|---|---|---|
| Check Group Email Accounts | Týmové schránky | */3 * * * * |
| Process Mass Emails | Marketing kampaně | */15 * * * * |
| Process Webhook Queue | Integrace | */5 * * * * |
Volitelné úlohy
- Generování reportů (Report generation) - podle potřeby
- Zálohy (Backup jobs) - pokud máte backup rozšíření
- Vlastní úlohy (Custom jobs) - podle vaší implementace
Doporučené nastavení pro produkci
Check for New Emails: */2 * * * *
Check Group Email Accounts: */3 * * * *
Send Email Reminders: * * * * *
Send Email Notifications: * * * * *
Process Mass Emails: */15 * * * *
Process Pending Process Flows: * * * * *
Cleanup: 0 1 * * *
Auth Token Control: 0 * * * *
Process Webhook Queue: */5 * * * *
Optimalizace výkonu
Rozložení zátěže
Nestavte všechny úlohy na stejný čas. Například místo:
Úloha A: 0 * * * *
Úloha B: 0 * * * *
Úloha C: 0 * * * *
Použijte:
Úloha A: 0 * * * *
Úloha B: 15 * * * *
Úloha C: 30 * * * *
Monitorování
Sledujte:
- Dobu běhu jednotlivých úloh
- Využití CPU a paměti během běhu
- Frekvenci selhání
Doporučené postupy
- Testujte úlohy nejdřív na testovacím prostředí
- Logujte všechny důležité operace
- Použijte ošetření chyb (error handling, try-catch bloky)
- Zpracovávejte data po dávkách (např. 100 záznamů najednou)
- Nastavte timeouty rozumně podle objemu dat
Některé úlohy jsou kritické pro správné fungování AutoCRM. Pokud je deaktivujete nebo nastavíte špatně, může to ovlivnit:
- Příjem a odesílání emailů
- Notifikace uživatelů
- Workflow automatizaci
- Výkon systému
Pokud máte problémy s úlohami, nejdřív zkontrolujte:
- Je nastavený cron na serveru? -
crontab -lnebo kontaktujte hosting - Běží cron každou minutu? - Měli byste vidět:
* * * * * cd /path/to/autocrm && php cron.php - Má webserver práva na spouštění? - Zkontrolujte oprávnění (permissions) na
cron.php - Jsou úlohy aktivní? - Stav (Status) = Aktivní (Active) v nastavení úlohy
Pro ladění můžete spustit jednotlivou úlohu ručně z příkazové řádky:
php command.php run-job JobName
Například:
php command.php run-job Cleanup