Reminders
Reminders automatically email the primary signer, on an escalating schedule, until they complete the form. You configure them per request, or set a default on the form that every request inherits.
A reminder configuration requires a primary signer on the request. Without one, the request is rejected with 400.
Configuration
Attach a reminder object to the create-request body:
POST /v2/forms/{formId}/requests
Content-Type: application/json
{
"answers": { ... },
"primarySigner": { "fullName": "Jane Smith", "email": "[email protected]" },
"reminder": {
"enabled": true,
"config": {
"intervalHours": [24, 48, 72],
"maxReminders": 4,
"sendImmediately": true
}
}
}reminder:
| Property | Type | Required | Description |
|---|---|---|---|
enabled | boolean | yes | true turns reminders on and validates config; false turns them off. |
config | object | When enabled | The reminder settings (see below). Required when enabled is true; omit it when enabled is false. |
reminder.config:
| Property | Type | Required | Description |
|---|---|---|---|
intervalHours | integer[] | yes | The gaps, in hours, between reminders. Non-empty, and each value at least 24 hours more than the one before it. |
maxReminders | integer | yes | The maximum total number of reminders to send. Must be at least 1. |
sendImmediately | boolean | no | Whether to send the first reminder at creation. Defaults to true. When true, intervalHours[0] must be ≥ 24. |
Reminder emails use Penneo's built-in templates. The subject and body cannot be customised for now.
The schedule
intervalHours are the gaps between reminders, and maxReminders caps the total (including the first). sendImmediately decides when the first one goes out:
sendImmediately: true(default) — the first reminder is sent at creation; each subsequent one follows the next gap inintervalHours.sendImmediately: false— nothing is sent at creation; the first reminder is delayed byintervalHours[0], then the rest follow.
If maxReminders is larger than the number of gaps, the last gap repeats. Only the primary signer is reminded — additional signers get nothing from Collect.
With intervalHours: [24, 48, 72] and maxReminders: 4:
| Reminder | sendImmediately: true | sendImmediately: false |
|---|---|---|
| 1 | immediately | 24 hours after creation |
| 2 | 24 hours later | 48 hours later |
| 3 | 48 hours later | 72 hours later |
| 4 | 72 hours later | 72 hours later |
Reminders stop once the form is submitted.
Form-level default
Set a reminder default on the form itself so every request inherits it without repeating the config — see Form Options.
Resolution and overrides
The configuration a request ends up with is resolved from these inputs:
| Input on the request | Effect |
|---|---|
reminder.enabled: false | Reminders off for this request, even if the form has a default. |
reminder.enabled: true | reminder.config is used as-is (overrides the form default). |
(no reminder) | Inherits the form's reminder default, if any. No default → no reminders. |
To turn a form's default off for a single request, send enabled: false and omit config:
{
"answers": { ... },
"reminder": {
"enabled": false
}
}Updated about 2 months ago
