An endorsement is any qualification with an expiry: a licence, a medical, a line
check, dangerous goods. Joya holds the definition once for the airline, each
crew member holds their own dates, and a scheduled job warns you before
anything lapses.
Where: Admin → Crew → Crew endorsements · Permission: admin (EDIT
to change definitions)
Select New endorsement, or edit an existing one.
- Endorsement name — what crew and expiry emails will call it. Keep it the
name people actually use (LINE CHECK, MEDICAL).
- Record type — Endorsement, Licence or Visa. Presentation only; the
expiry logic is identical.
- Never expires — for qualifications with no expiry. Turning it on disables
everything below, because none of it applies.
- Validity time + Unit (Days / Months) — how long it is valid from issue.
This is what pre-fills an expiry date when someone enters an issue date.
- Revalidation window — how many days before expiry it may be renewed
without losing the original expiry date. Renew inside the window and the new
expiry is counted from the old expiry; renew outside it and it counts from the
day it was done.
- Round to end of month — applied when revalidating outside the window.
- Action required when expiring — free text shown to whoever handles it
(e.g. Book simulator slot and notify the training desk).
- Endorsement for — the positions that need it, grouped into Cockpit, Cabin,
Ground and Maintenance. Use the tabs, the search box, or Select all.
The footer keeps a running count so you can see the total before saving.
- Aircraft type — restrict it to specific types, or leave it applying to all.
An endorsement needs a name and at least one position before it can be saved.
Individual dates live on the person, not here — see
Users → Personal endorsements. Each
crew member gets their own number, country of issue, issue date and expiry.
Remaining is derived from the expiry date. An endorsement whose expiry is
earlier than its issue date is treated as expired whatever today's date is,
and is excluded from "expiring soon" reminders — that date combination is not
valid.
Joya can warn ahead of expiry, on a schedule you define.
Where: Admin → Crew → endorsement notification rules
A rule answers four questions:
- Which endorsements (and optionally which aircraft types and functional
groups) it watches.
- When to warn — the intervals, in days before expiry.
59, 29 sends
one warning 59 days out and another 29 days out.
- How to send — the channels: email, SMS, and where enabled
internal message and push. Each channel uses its own template, so the
wording is editable without code.
- Who to tell — recipients per channel: the crew member themselves, chosen
users, or extra addresses.
Also available:
- Quiet hours — a window (with timezone) in which SMS is held back, so a
reminder does not arrive at 3am. Overnight windows such as 22:00→07:00 are
valid.
- Retry — how many times, and how far apart, to retry a failed send.
A job ticks every minute and sends only when the current time matches a rule's
schedule, so timings can be changed without a redeploy. If reminders stop
arriving, look at the Endorsement notifications queue in
Background jobs — a failed tick is visible and
retryable there.
- Entered vs derived. You enter validity, window and the personal dates;
Joya derives remaining days, who is due a warning, and when.
- Never expires disables the whole revalidation block — deliberately, so a
validity value cannot silently sit behind an endorsement that never expires.
- Changing a definition does not rewrite crew members' existing dates; it
applies from the next revalidation.
- Rule changes are recorded in Audit logs under
END. NOTIFICATION, including recipient changes.
| Symptom |
Cause |
Fix |
| No reminders arriving |
Rule inactive, no matching endorsements, or the tick is failing |
Check the rule is active, then the Endorsement notifications queue |
| Reminders at the wrong hour |
Timezone on the rule, or quiet hours |
Check the rule's quiet-hours timezone |
| Crew member not warned |
Their position is not in Endorsement for, or they are not a recipient |
Add the position, or add them to the channel's recipients |
| Shows expired with a future expiry |
Expiry earlier than issue date |
Correct one of the two dates |
| The revalidation window field looks cut off |
Fixed — update to the current release |
— |