Workflow

How to Schedule a CRM Communication

Verified end to end. A disposable email communication draft with no recipients was scheduled for a future date, verified as queued with status=QUE and a saved date_to_send, then deleted.

Evidence Summary

Workflow run
crm-communication-schedule-20260520T015323Z
Communication
39
Schedule UI value
21/05/2026 10:30
Stored schedule
2026-05-21 10:30:00
Final state
status=QUE, totalcontactos=0, total_sent=0, total_unsent=0
Schedule request
communications / postEditComm

Before You Start

Schedule the Draft

  1. Open the communication detail page.
  2. Review the email content, subject, sender, attachments, and recipient list.
  3. Click Schedule.
  4. In the scheduling modal, enter the date in DD/MM/YYYY format.
  5. Enter the time in HH:MM 24-hour format.
  6. Confirm the schedule action.

The verified modal fields were #DataInicioEnvio with value 21/05/2026 and #HoraInicioEnvio with value 10:30. The confirmation button was #submit_comm.

Verified Request

FieldVerified valueMeaning
endpointPOST /ajaxserverCentral AJAX endpoint.
actioncommunicationsCommunication module action group.
optionpostEditCommUpdates and queues the communication.
id39Communication id.
email1Email channel enabled.
enviar1Queue/send action flag used by the Schedule confirmation.
date_to_send21/05/2026 10:30Scheduled send date/time from the modal.

The response returned {"success":true,"send":true,"communication_id":"39"} with attachments_ok=0 and attachments_not_ok=0.

Confirm the Queue State

  1. Return to the communications list.
  2. Search for the communication or filter by id.
  3. Confirm the row is queued and has the intended scheduled date.

The verified DT_Select_Communications row had status=QUE, date_to_send=2026-05-21 10:30:00, date_send empty, totalcontactos=0, total_sent=0, and total_unsent=0. DT_Select_LCommunications returned no recipient rows.

Cleanup Used in Probe

The verification run deleted disposable communication 39 with communications / DELETE_communication. The delete returned bare JSON true, and the final communication lookup returned recordsFiltered=0.

Artifacts