Docs Home Log in

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

  1. 01

    The lead's country.

    A country field on the lead: an ISO code (IE, FR, US…) or a country name.

  2. 02

    The email domain.

    A two-letter country ending like .ie or .fr.

  3. 03

    The campaign's country.

    Set with country on update_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:

  1. 01

    Checks the next addresses.

    The full email check, for leads due soon.

  2. 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.

  3. 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:

  1. campaign status (only active campaigns send);
  2. mailbox status and its domain's status;
  3. the campaign's chosen mailboxes;
  4. the daily cap of each mailbox;
  5. the lead's local sending hours;
  6. 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.