Dispatch processes messages in several discrete steps. The flow of message processing is slightly different for a scheduled batch than it is for a batch handled by the Communications/AdHocs API.

Processing Steps

Scheduled Batch AdHoc Batch
SCHEDULED GENERATING_ADHOC
GENERATION_QUEUED SEND_CONFIGURE
GENERATING SENDING
PENDING_APPROVAL SEND_FINALIZE
SEND_CONFIGURE COMPLETED
SENDING
SEND_FINALIZE
COMPLETED
  • SCHEDULED - the batch has been scheduled.
  • GENERATING_ADHOC - the Communications/AdHocs API is in the process of generating the batch. The next step is SEND_CONFIGURE.
  • GENERATION_QUEUED - the batch has been picked up by the BatchScheduler job and pushed into the generation queue.
  • GENERATING - a worker has picked up the batch from the generation queue and is the process of rendering the batch. If the population yields no members, the batch will go to a NO_MESSAGES status.
  • PENDING_APPROVAL - the batch has finished generating and is awaiting approval. You can enable the bypass of this step in the communication setup.
  • SEND_CONFIGURE - the batch has been picked up by a worker from the sendconfigure queue and the messages in the batch are being assembled into bundles of 50 messages.
  • SENDING - the batch has been picked by one of the send workers and is sending the messages to the destinations defined in the communication.
  • SEND_FINALIZE - Dispatch is checking to make sure all messages have been sent as well as performing any cleanup actions.
  • COMPLETED - the batch has completed.
  • NO_MESSAGES - the population yielded no messages so there was nothing to do.
  • ERROR - the batch has encountered an error it that is unrecoverable.

Send Workers

Workers tasked with sending messages are spun up by Dispatch. These workers consume bundles of messages placed onto send queues. There are five types of send queues: Normal, Bulk, Trickle, Printer, and Dedicated. Each client is assigned to one of those queue types. A send worker consumes messages from its designated queue type in a round robin fashion in FIFO (first in, first out) order. This insures that messages from all clients on the same queue type get sent in a timely fashion.

The type of queue your client is placed upon is up to the discretion of Dispatch Support depending upon what type of messages your client is expected to send.

Dispatch offers the following types of send queues:

Queue Description Number of workers
Normal Normal priority messages. This is the default queue for messages and take priority over Bulk and Trickle messages. 4 per server
Bulk Bulk priority messages. This is the appropriate queue for marketing messages. Messages in this queue are throttled based on the number of message awaiting sending in the Normal queue. 3 per server
Trickle Low priority messages. This is the queue for lowest priority messages. The messages in this queue are sent at a governed rate. 1 per server
Printer This queue is tied to a particular server that is configured to print to a printer in Calvin Hall. This queue is reserved for clients that need to print to that printer. Not for general use. 1 tied to a specially configured server
Dedicated Dedicated queues are offered to clients who need extra low-latency delivery. These queues are reserved for special use cases and are processed by a specific server. 1 per assigned client

Approving a batch

By default, scheduled communications require an approval before they begin to send. You can disable this function by enabling the Bypass Approval checkbox.

If the Bypass Approval feature has not been enabled, then a communication batch will transition to a PENDING_APPROVAL status. If any email addresses are provided in the notifications field on the communication setup, then those email addresses will receive a notification indicating the batch is ready for approval. In addition, the batch history section of the communication will reflect that a batch is awaiting approval.

Clicking on the date of the batch awaiting approval will bring up a panel showing the first 100 messages and a button to Approve and Send Communication as well as a button to Cancel This Communication.

Clicking the green Approve the Send Communication will change the panel to confirm that you want to proceed with sending the communication.

Finally, clicking the orange Approve the Send Communication will place the batch into the send queue and it will begin sending.

Pausing a batch

During the GENERATING, WAITING, and SENDING steps of message processing it is possible to pause activity. You can resume activity by clicking the resume button. If you pause a batch while it is GENERATING, once you resume activity all existing messages that have been generated/rendered will be purged and the generation process will begin anew.

Cancelling a batch

If you need to cancel a batch you have a couple of opportunities to do so. You can cancel the batch while it is PENDING_APPROVAL by clicking the red Cancel This Communication button when in the communication approval panel. You can also cancel a paused batch. You must first pause the batch in order for the cancel button to be made visible.