Immigration Expiry Alert
The Immigration Expiry Alert feature helps organizations track time-sensitive immigration documents such as visas, work permits, and residency approvals. By setting expiry dates and alerts in advance, teams can avoid last-minute stress, compliance risks, and work disruptions.
? How the Feature Works
Section titled “? How the Feature Works”When adding or updating an immigration record, users can define:
-
Issue Date (required)
The date when the immigration document was issued. -
Expiry Date (required)
The date when the document becomes invalid. -
Alert Before (Months)
Choose how many months before expiry you want to receive a reminder.
Example options:- 1 month before
- 3 months before
- 6 months before
- No Alert
⏰ Smart Expiry Alerts
Section titled “⏰ Smart Expiry Alerts”-
Alerts are automatically triggered based on the selected monthly interval.
-
Notifications help HR and admins:
- Plan renewals early
- Collect required documents in time
- Avoid visa overstay or legal issues
If No Alert is selected, the system will store the expiry date but no reminder will be sent.
✅ Why This Feature Matters
Section titled “✅ Why This Feature Matters”- ⚖️ Regulatory Compliance – Avoid immigration and labor law violations
- ? Proactive Planning – Renew documents well before expiry
- ? Automated Notifications – No manual tracking needed
- ? Centralized Records – All immigration details in one place
? Common Use Cases
Section titled “? Common Use Cases”- Tracking employee visa expiries
- Monitoring work permits and residency cards
- Managing foreign employee compliance
- Preparing documentation for renewals in advance
✅ Best Practice Tips
Section titled “✅ Best Practice Tips”- Set alerts 2–3 months before expiry for critical documents
- Avoid using No Alert unless expiry tracking is handled elsewhere
- Review upcoming expiries regularly from the dashboard
document.querySelectorAll(‘.portal-attachment-thumbnail-img’).forEach(function(img) {
img.addEventListener(‘error’, function () {
attachment_error_image(this);
});
});
const attachment_error_image = (attachment) => {
const parentElement = attachment.parentElement;
const defaultIcon = <span class="icon-file-empty"></span><span class="fw-attachment-ext">${escapeHtml(attachment.dataset.extension)}</span>;
parentElement.innerHTML = defaultIcon;
};