Real-World Example
Maya uploads creditor profiles in the morning, schedules a campaign in the afternoon, and leaves a weekly report active for Monday. The browser should not stay open for any of that work. Jobs and scheduled commands process the CSV import, campaign delivery, provider tracking, and report email delivery in the background.Visual Flow
Background Work
How It Should Work
- It should keep long-running import, campaign, and report work outside page requests.
- It should keep each history/tracker/scheduled export scoped to the owning EcoMail Hub user.
- It should make failure visible through upload history, tracker counts, or missing report send state.
- It should avoid duplicate scheduled report sends inside the same frequency window.
How It Should Not Work
- It should not require a user to keep the browser open while rows or campaign recipients process.
- It should not mix EcoMail Hub tracking with creditor campaign tracking.
- It should not leave temporary scheduled export files around after email delivery.
Developer Notes
- EcoMail Hub campaigns run daily at 17:30.
- CRM scheduled exports run at 11:00 daily, 11:15 weekly on Monday, and 11:30 monthly.
- Import jobs run on the
importsqueue.
Related App Areas
app/Jobs/ImportCreditorProfilesJob.phpapp/Console/Commands/RunEcoMailHubCampaignCommand.phpapp/Jobs/ProcessEcoMailHubCampaignCreditorProfilesJob.phpapp/Console/Commands/DailyCRMScheduleExportCommand.phpapp/Console/Commands/WeeklyCRMScheduleExportCommand.phpapp/Console/Commands/MonthlyCRMScheduleExportCommand.phpapp/Jobs/SendCRMScheduleExportEmailJob.php

