Skip to main content

Real-World Example

ABC Collections schedules an email reminder for the “Payments Due Next Week” group. The campaign is scheduled for Monday at 9:00 AM. The campaign should wait until Monday at 9:00 AM, then send only to the consumers in that group who are allowed to receive the selected communication. Consumers who opted out or do not match the audience should not receive it.

Visual Flow

How It Should Work

  • It should let the creditor select the audience, message/template, and schedule.
  • It should send campaigns only according to the selected settings.
  • It should respect consumer communication controls and opt-out rules.
  • Scheduled campaign processing may happen in the background.

How It Should Not Work

  • It should not send a campaign before the scheduled time.
  • It should not send to consumers outside the selected audience.
  • It should not ignore communication restrictions.
  • It should not send duplicate campaign messages for the same scheduled campaign.

Developer Notes

  • Always check audience, creditor ownership, template selection, and opt-out/communication rules before sending.
  • Background campaign work should record enough status for the tracker to explain sent, pending, and failed activity.
  • Provider delivery, email open, SMS delivery, and opt-out activity can arrive later through SendGrid and Twilio callbacks. See Communication Delivery & Webhooks.
  • routes/creditor/index.php
  • app/Livewire/Creditor/Communications
  • app/Console/Commands/RunCampaignCommand.php
  • app/Jobs/SendCampaignEmailSmsOrELetterJob.php
Last modified on May 26, 2026