Sending hours
Each email goes out in its lead's local time, during working hours.
The default
8:00 to 17:00, Monday to Friday, in the lead's local time. Change it per campaign with update_campaign: hours (for example 9-18) and weekdays (false to send on weekends too).
How Kata finds the time zone
- 01
The lead's country.
A
countryfield on the lead: an ISO code (IE,FR,US…) or a country name. - 02
The email domain.
A two-letter country ending like
.ieor.fr. - 03
The campaign's country.
Set with
countryonupdate_campaign.
Each country maps to one business time zone, the main one when there are several (the US uses New York time). A lead with none of the three can get the email at any hour.
The scheduler
A cron runs every minute. Each run:
- 01
Checks the next addresses.
The full email check, for leads due soon.
- 02
Plans.
Follow-ups first, then first emails. Campaigns take turns so one never eats another's capacity. Priority 1 goes first. Each email gets a slot inside its lead's hours.
- 03
Sends what is due.
Every planned email whose time has come.
Other jobs: domain checks every 5 minutes, AgentMail sync every 15 minutes, evolve every hour.
Why is nothing sending?
scheduler_dry_run answers it. It checks, in this order:
- campaign status (only active campaigns send);
- mailbox status and its domain's status;
- the campaign's chosen mailboxes;
- the daily cap of each mailbox;
- the lead's local sending hours;
- contacts suppressed, stopped or not due yet.
run_scheduler really sends. It does what the cron would do a minute later. To look without sending, use scheduler_dry_run.