Docs/Using Plugins/Create Reminder Items

Create Reminder Items

A reminder item represents a single scheduled notification for one recipient. Each item specifies who to notify, what template to use, and when to deliver the message.

Navigate to Actions → Plugins, open the Reminder plugin, and go to the Items section to manage reminder items from the admin UI.


Reminder Item Fields

FieldDescription
Country CodeThe international dialing code for the recipient's phone number, e.g. +62 for Indonesia.
Phone NumberThe recipient's phone number without the country code.
Recipient NameOptional. The recipient's display name, used in logging and history.
Notification Template NameThe identifier of the notification template to use for the message. Must match a template configured in your messaging account.
Template ParametersA list of values that fill in the template placeholders, e.g. {{1}}, {{2}}. The order must match the template's parameter order.
Send TimesOne or more scheduled timestamps when the reminder should be delivered. At least one is required.
TimezoneThe timezone used to interpret Send Times, e.g. Asia/Jakarta, America/New_York. Defaults to UTC.

Send Times and Recurrence

The Send Times field accepts a list of timestamps. The processor delivers the message at each scheduled time in order:

  • When the first send time arrives, the message is sent and the item advances to the next send time.
  • When all send times are exhausted, the status changes to completed.
  • If a send time passes without successful delivery after five attempts, the processor skips it and moves to the next scheduled time.

Example — three-day follow-up sequence:

{
  "sendTimes": [
    "2025-06-01T09:00:00+07:00",
    "2025-06-02T09:00:00+07:00",
    "2025-06-03T09:00:00+07:00"
  ],
  "timezone": "Asia/Jakarta"
}

Reminder Status Lifecycle

StatusDescription
activeThe reminder is scheduled and waiting for its next send time.
completedAll send times have been successfully processed.
expiredThe reminder was not sent within the expected window and is no longer actionable.
cancelledThe reminder was manually cancelled before delivery.

Status transitions happen automatically during processing. You can also manually change status via bulk operations.


Creating a Reminder via the API

POST /api/reminder/item/create

Request body:

{
  "id": "unique-reminder-id",
  "countryCode": "+62",
  "phoneNumber": "81234567890",
  "recipientName": "Budi Santoso",
  "notificationTemplateName": "appointment_reminder",
  "templateParameters": ["Dr. Sari", "Senin, 2 Juni", "09:00"],
  "sendTimes": ["2025-06-01T18:00:00+07:00", "2025-06-02T07:00:00+07:00"],
  "timezone": "Asia/Jakarta"
}

The id field is set by the caller. Use a UUID or any unique string to identify the reminder later.


Updating a Reminder

PUT /api/reminder/item/update

You can update all fields including sendTimes and status. Updating a completed or cancelled reminder back to active will re-schedule it from the next undelivered send time.


Deleting a Reminder

DELETE /api/reminder/item/{reminderId}

Deleted reminders are permanently removed. For non-destructive cancellation, update the status to cancelled instead.


Retrieving a Reminder

GET /api/reminder/item/{reminderId}
GET /api/reminder/item/list?status=active&pageSize=20&skip=0

The list endpoint supports filters:

ParameterDescription
statusFilter by reminder status (active, completed, expired, cancelled).
phoneNumberFilter by recipient phone number.
dateFromInclude only reminders created on or after this date.
dateToInclude only reminders created on or before this date.
pageSizeNumber of results per page.
skipNumber of results to skip for pagination.

Reminder History

Every action on a reminder is logged in its history:

ActionTriggered when
CreatedThe reminder item is first saved.
SentThe message is successfully delivered.
SendFailedA delivery attempt fails. Increments the attempt counter.
SendErrorAn unexpected error occurs during delivery.

The history is visible in the item detail view and useful for diagnosing delivery issues.