Skip to content

Communications

Duty Pro sends notifications to consignees to inform them of shipment fees and provide a link to the payment page. Communications are sent automatically after shipment creation when the total amount is greater than zero.

  • When: Sent promptly after shipment creation.
  • From: noreply@dutypro.exelot.com
  • Subject: "{Brand Name} — Customs Payment Required"
  • Content: Consignee name, brand name, shipment reference, total amount, payment deadline, and a payment link.
  • When: Scheduled for the next daytime window in the consignee’s timezone (derived from the destination country). This prevents messages from being sent at inconvenient hours.
  • Content: A brief message with the brand name, total amount, and a shortened payment link.

Each brand controls which channels are enabled:

SettingDefaultEffect
email_enabledtrueWhen enabled and consignee_email is provided, an email is sent
sms_enabledtrueWhen enabled and consignee_phone is provided, an SMS is scheduled

Configure these settings in the dashboard under Brands > [Your Brand].

Both channels require the corresponding contact information in the shipment request. If consignee_email is missing, no email is sent regardless of the brand setting. The same applies to consignee_phone and SMS.

Each communication (email or SMS) has a status that tracks its delivery lifecycle:

StatusDescription
SCHEDULEDQueued for delivery
SIMULATEDTest mode — not actually sent (content viewable in dashboard)
SENTDelivered to the email/SMS provider
DELIVEREDConfirmed delivered to the recipient
FAILEDDelivery failed (error message recorded)

Pending email and SMS communications are processed every 5 minutes:

  • Emails: All SCHEDULED emails are picked up and sent (up to 500 per batch).
  • SMS: All SCHEDULED SMS messages are picked up. SMS delivery is additionally gated by working-day checks for the consignee’s country — messages are held until the next working day if the current day is a weekend or holiday.

Failed deliveries are retried up to 3 times.

Consignees can opt out of future communications on a per-channel, per-brand basis. For example, a consignee may opt out of SMS for one brand while continuing to receive emails.

  • Opt-out preferences are checked before every communication send.
  • Opt-outs are scoped per brand — opting out of one brand’s communications does not affect other brands.
  • Opt-out records can be viewed and managed in the dashboard under Brands > [Your Brand] > Opt-Outs.

If a consignee requests to be re-subscribed, you can delete their opt-out record from the dashboard. This will allow future communications to be sent to them.

When a shipment is created with a test API key:

  • Emails are not sent. They are logged in the dashboard as SIMULATED with the full rendered content available for review.
  • SMS messages are not sent. They are logged as SIMULATED with the message content and scheduling metadata visible.
  • Opt-out records created by test shipments are isolated from live opt-outs and do not affect live communications.

This lets you verify the communication flow without sending real messages or affecting production opt-out preferences.

Communication history is visible in the shipment detail view in the dashboard. Each communication shows:

  • Channel (email or SMS)
  • Recipient (email address or phone number)
  • Status and timestamp
  • Template content (for simulated/sent communications)
  • Error message (for failed deliveries)