Email Templates
Manage the branded email templates ISPbills sends for customer lifecycle events
Manage the branded email templates ISPbills sends for customer lifecycle events
On this page
Settings → Email Templates stores the reusable messages ISPbills sends for customer email events. Templates are scoped to the current group administrator, so each tenant maintains its own set.
Create or edit a template
Choose an event type, then enter a subject and HTML body. Plain-text content can also be stored in the optional text field. Enable Active when the template should be eligible for sending.
The supported event types are:
| Event type | Sent when |
|---|---|
| Welcome | A new customer account is created |
| Payment Received | A customer payment is recorded (receipt) |
| Bill Due | A customer’s invoice is due soon (reminder) |
| Suspension | A customer’s service is suspended for non-payment |
| Activation | A customer’s service is activated or restored |
| Custom | Any other message you compose yourself |
The list supports editing and deletion. ISPbills sends the first active template it finds for the matching event type, so keep only the intended version active to avoid ambiguity.
Ready-to-use defaults
New tenants do not start with an empty table. ISPbills ships five enterprise-grade default templates — Welcome, Payment Received, Bill Due, Suspension, and Activation — as polished, on-brand starting points. Each uses the house transactional layout (dark header, cyan accent, a 600px white card) as fully self-contained inline-CSS HTML, and the operator’s company name is baked in as the brand at seed time.
Defaults are populated by the email-templates:seed-defaults console command:
| Option | Effect |
|---|---|
| (none) | Seed defaults for every group admin that is missing them |
--operator=<id> |
Limit to specific tenant id(s) (repeatable) |
--force |
Overwrite existing rows for the shipped event types (destroys operator edits) |
--dry-run |
Report what would change without writing |
Seeding is idempotent: a tenant that already has a template for a given event type is left untouched unless --force is passed, so your customisations are never clobbered.
Placeholders
Placeholders use double braces, for example {{customerName}}. At send time each {{token}} is replaced with the real value supplied by the event; any token the event does not supply is left unchanged. Tokens are camelCase — the company/brand is not a token because it is baked into the template when it is seeded.
The tokens each shipped default understands:
| Event type | Available placeholders |
|---|---|
| Welcome | {{customerName}}, {{username}}, {{password}}, {{packageName}}, {{loginUrl}} |
| Payment Received | {{customerName}}, {{customerId}}, {{gateway}}, {{amount}}, {{currency}}, {{fee}}, {{txnId}}, {{paymentDate}}, {{dashboardUrl}} |
| Bill Due | {{customerName}}, {{invoiceNumber}}, {{packageName}}, {{billingPeriod}}, {{amount}}, {{currency}}, {{dueDate}}, {{paymentUrl}} |
| Suspension | {{customerName}}, {{customerId}}, {{username}}, {{packageName}}, {{amount}}, {{currency}}, {{paymentUrl}} |
| Activation | {{customerName}}, {{customerId}}, {{username}}, {{packageName}}, {{speed}}, {{validUntil}}, {{loginUrl}} |
Which events send automatically
Customer-facing lifecycle emails are queued automatically for three events, provided the customer has an email address and the group admin has an active email gateway:
- Welcome — when a customer account is created
- Suspension — when a customer is suspended
- Activation — when a customer is activated or restored
The Payment Received and Bill Due defaults ship ready to use and can be edited here, but they are not tied to the automatic customer-lifecycle hooks above.
Lifecycle emails are delivered through the group admin’s own configured email gateway, not a shared system mailer. If Settings → Email Settings has no active SMTP configuration for the tenant, nothing is sent — the queued job simply logs a warning. Configure Email Settings first.
Use the branded preview or test-send controls where available, and confirm Settings → Email Settings before diagnosing delivery.