Teaching record system - Events emitted per `ProcessType`
This document lists the events that can be created for each ProcessType.
How to read this document
Every change that goes through the event system runs inside a ProcessContext created with a
single ProcessType (see EventPublisher).
Any events published while that context is open (via PublishEventAsync /
PublishSingleEventAsync) are attached to the resulting Process. These events are the IEvent
types in Events/ and are what the tables below document.
The Emitted column uses:
-
Always — emitted on every successful run of the process.
-
Sometimes — only under the condition described in Scenario.
An "update"-style operation returns early (and emits nothing) when the submitted values are
identical to the stored record. These are marked Sometimes for correctness even though the UI
that drives them normally guarantees a change.
Persons
PersonCreating (24)
Support UI Add person.
| Event |
Emitted |
Scenario |
PersonCreatedEvent |
Always |
— |
EmailSentEvent |
Sometimes |
Back-filled only, onto the 45 overseas NPQ TRN allocations described below. Add person sends no email. |
45 of these processes did not come from Add person. They are the person creations from the since-removed
AllocateTrnsToOverseasNpqApplicantsJob, re-typed here from TeacherPensionsRecordImporting (28) by
RepairOverseasNpqPersonCreationProcessesJob;
that job's note explains why. They carry no ChangeReason, so the "Reason for creating record" block on their
change history entry is empty.
BackfillOverseasNpqTrnEmailSentEventsJob
attaches that run's 'TRN generated for NPQ' emails to them, since the allocation put the TRN on the record at
the moment the record was created. The back-filled EmailSentEvent points at the emails row the send
actually used — matched exactly on the TRN in the email's personalization, not on template and address — so it
carries the real address, personalization and SentOn.
PersonDetailsUpdating (25)
API SetPii; Support UI Edit details.
| Event |
Emitted |
Scenario |
PersonDetailsUpdatedEvent |
Sometimes |
Only when at least one detail actually changes. |
PersonDeactivating (26)
Support UI Set status → deactivate; CapitaImportJob
when the imported Teachers' Pensions row carries a date of death.
| Event |
Emitted |
Scenario |
PersonDeactivatedEvent |
Always |
— |
PersonReactivating (27)
Support UI Set status → reactivate.
| Event |
Emitted |
Scenario |
PersonReactivatedEvent |
Always |
— |
Status changes from before these journeys moved onto PersonService were back-filled from the legacy
PersonStatusUpdatedEvents by
BackfillPersonStatusProcessesJob, which
picks the process type from the status the legacy event recorded. Those processes carry the reason, reason details,
additional information and evidence on the process ChangeReason. A back-filled PersonReactivatedEvent only ever
flags PersonStatus, because the legacy event never recorded the date of death the reactivation cleared.
PersonInductionUpdating (98)
Support UI Edit induction. The two systems that drive induction themselves get their own types below, so this one is a support user changing the record by hand.
| Event |
Emitted |
Scenario |
PersonInductionUpdatedEvent |
Always |
The operation returns early when nothing moves, and no process is created at all. |
PersonCpdInductionUpdating (99)
API SetCpdInductionStatus.
| Event |
Emitted |
Scenario |
PersonInductionUpdatedEvent |
Always |
The operation returns early when nothing moves, and no process is created at all. |
PersonWelshInductionUpdating (100)
API SetWelshInductionStatus; the EWC Wales induction import. Both are EWC Wales telling us the outcome of an induction served in Wales, so they share a type. Back-filled events reach it through the import's integration transaction rather than the system user it runs as, which the DQT outbox handlers also wrote as; an induction change with no matching import row keeps PersonInductionUpdating (98).
| Event |
Emitted |
Scenario |
PersonInductionUpdatedEvent |
Always |
The operation returns early when nothing moves, and no process is created at all. |
PersonDeceased (42)
API SetDeceased.
| Event |
Emitted |
Scenario |
PersonDeactivatedEvent |
Always |
— |
PersonMerging (29)
Support UI Merge person.
| Event |
Emitted |
Scenario |
PersonDeactivatedEvent |
Always |
The secondary record is deactivated and linked to the retained record. |
PersonDetailsUpdatedEvent |
Sometimes |
The retained record's attributes are changed to values taken from the secondary record. |
OneLoginUserUpdatedEvent |
Sometimes |
The deactivated record had linked One Login users, which are re-pointed to the retained record. |
Merges from before the journey moved onto PersonService were back-filled from the legacy PersonsMergedEvents by
BackfillPersonMergeProcessesJob. Those
processes carry the two person events but no OneLoginUserUpdatedEvent, which the legacy event never recorded.
PersonUnmerging (102)
trscli person unmerge.
| Event |
Emitted |
Scenario |
PersonUnmergedEvent |
Always |
— |
The command only reverses the deactivation and the link back to the retained record. The details the merge copied onto
the retained record and any One Login users it re-pointed are deliberately left alone, so no PersonDetailsUpdatedEvent
or OneLoginUserUpdatedEvent is emitted.
TeacherPensionsRecordImporting (28)
CapitaImportJob (Teachers' Pensions import).
| Event |
Emitted |
Scenario |
PersonCreatedEvent |
Sometimes |
The imported TPS record does not already exist in TRS, so a new person is created. |
SupportTaskCreatedEvent |
Sometimes |
The newly created person potentially matches an existing record (a TeacherPensionsPotentialDuplicate task). |
45 processes of this type were not Teachers' Pensions imports at all. They were created by the since-removed
AllocateTrnsToOverseasNpqApplicantsJob on 2025-11-06, which allocated TRNs to overseas NPQ applicants and
recorded a legacy PersonCreatedEvent with no process; something later back-filled those events onto
per-person processes and typed them TeacherPensionsRecordImporting, so the people involved showed a
"Record imported from Teachers' Pensions" entry for a record that arrived by a different route.
RepairOverseasNpqPersonCreationProcessesJob
re-types them to PersonCreating (24), keyed on a signature a real import cannot produce: raised by the
system user rather than the Capita Teachers' Pensions user, holding a PersonCreatedEvent alone, for a
person not stamped created_by_tps.
TpsEmploymentCreating (103)
TpsCsvExtractProcessor
(the monthly Teachers' Pensions workforce data extract), one process per employment record it creates.
| Event |
Emitted |
Scenario |
TpsEmploymentCreatedEvent |
Always |
— |
TpsEmploymentUpdating (104)
TpsCsvExtractProcessor,
one process per employment record it changes — from the extract itself, from an establishment or end date being
re-derived, or from the employer email address back-fill.
| Event |
Emitted |
Scenario |
TpsEmploymentUpdatedEvent |
Always |
— |
Employment records changed before the extract processor moved onto processes were back-filled from the legacy
TpsEmploymentCreatedEvents and TpsEmploymentUpdatedEvents by
BackfillTpsEmploymentProcessesJob.
TRN requests
TrnRequestCreating (14)
API CreateTrnRequest.
| Event |
Emitted |
Scenario |
TrnRequestCreatedEvent |
Always |
— |
PersonCreatedEvent |
Sometimes |
The request is auto-resolved and no existing record matches, so a new record is created. |
SupportTaskCreatedEvent |
Sometimes |
Auto-resolution finds potential duplicates (a TrnRequest task) or the matched record needs further checks (a TrnRequestManualChecksNeeded task). |
OneLoginUserUpdatedEvent |
Sometimes |
The request carries a verified One Login user that is connected to the resolved person. |
The API wrote its support task creations straight to the legacy events table until December 2025.
BackfillTrnRequestSupportTaskProcessesJob
back-fills those as processes of this type, holding the SupportTaskCreatedEvent alone: TRN request creation
itself never had a legacy event, so there is nothing else left to recover.
TrnRequestActivating (43)
API ActivateTrnRequest.
| Event |
Emitted |
Scenario |
TrnRequestUpdatedEvent |
Always |
The dormant request is moved to pending (and resolved where possible). |
PersonCreatedEvent |
Sometimes |
Activation triggers resolution with no match, so a new record is created. |
SupportTaskCreatedEvent |
Sometimes |
Activation triggers resolution that finds potential duplicates or needs further checks. |
OneLoginUserUpdatedEvent |
Sometimes |
A verified One Login user on the request is connected to the resolved person. |
TrnRequestResolving (16)
Support UI Resolve TRN request.
| Event |
Emitted |
Scenario |
TrnRequestUpdatedEvent |
Always |
— |
SupportTaskUpdatedEvent |
Always |
The support task is closed. |
PersonCreatedEvent |
Sometimes |
The support user chooses to create a new record. |
PersonDetailsUpdatedEvent |
Sometimes |
The support user merges into an existing record and updates its attributes. |
SupportTaskCreatedEvent |
Sometimes |
The matched record needs further checks (a TrnRequestManualChecksNeeded task). |
OneLoginUserUpdatedEvent |
Sometimes |
A verified One Login user on the request is connected to the resolved person. |
Resolutions from before December 2025 recorded only the legacy ApiTrnRequestSupportTaskUpdatedEvent, which is
still to be converted. Where one of them created a manual checks needed task,
BackfillTrnRequestSupportTaskProcessesJob
back-fills a process of this type holding that SupportTaskCreatedEvent alone.
TrnRequestManualChecksNeededTaskCompleting (20)
Support UI TRN request manual checks needed → confirm.
| Event |
Emitted |
Scenario |
TrnRequestUpdatedEvent |
Always |
The resolved request is completed. |
SupportTaskUpdatedEvent |
Always |
The support task is closed. |
TrnRequestResetting (9)
CLI reset-trn-request.
| Event |
Emitted |
Scenario |
SupportTaskCreatedEvent |
Always |
A new TrnRequest support task is created. |
TrnRequestUpdatedEvent |
Always |
The request is reset to pending. |
Teachers' Pensions duplicates
TeacherPensionsDuplicateSupportTaskResolvingWithMerge (21)
Support UI Teachers' Pensions duplicate → merge.
| Event |
Emitted |
Scenario |
PersonDeactivatedEvent |
Always |
The imported record is deactivated via merge into the existing record. |
TrnRequestUpdatedEvent |
Always |
The request is resolved to the retained record. |
SupportTaskUpdatedEvent |
Always |
The support task is closed. |
PersonDetailsUpdatedEvent |
Sometimes |
The retained record's attributes are updated from the imported record. |
OneLoginUserUpdatedEvent |
Sometimes |
Linked One Login users are re-pointed to the retained record, or a verified One Login user on the request is connected. |
SupportTaskCreatedEvent |
Sometimes |
The retained record needs further checks (a TrnRequestManualChecksNeeded task). |
TeacherPensionsDuplicateSupportTaskResolvingWithoutMerge (22)
Support UI Teachers' Pensions duplicate → keep records separate.
| Event |
Emitted |
Scenario |
TrnRequestUpdatedEvent |
Always |
The request is resolved to the kept record. |
SupportTaskUpdatedEvent |
Always |
The support task is closed. |
OneLoginUserUpdatedEvent |
Sometimes |
A verified One Login user on the request is connected to the resolved person. |
SupportTaskCreatedEvent |
Sometimes |
The kept record needs further checks (a TrnRequestManualChecksNeeded task). |
One Login user matching
The Support UI resolution pages choose the process type from the task type, and the events depend on
the outcome the support user selects.
OneLoginUserIdVerificationSupportTaskCompleting (23)
Resolve an ID-verification task.
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed. |
OneLoginUserUpdatedEvent |
Sometimes |
Any outcome that verifies the user (i.e. all outcomes except "not verified"). |
EmailSentEvent |
Sometimes |
An outcome email is sent to the user (not-verified, record-not-found or record-matched; or not-connected under a deferred matching policy). |
OneLoginUserRecordMatchingSupportTaskCompleting (34)
Resolve a record-matching task.
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed. |
OneLoginUserUpdatedEvent |
Sometimes |
The "connected" outcome matches the One Login user to a record. |
TrnRequestUpdatedEvent |
Sometimes |
The task is linked to a TRN request that gets resolved. |
PersonCreatedEvent |
Sometimes |
A linked TRN request is auto-resolved with no match, so a new record is created. |
SupportTaskCreatedEvent |
Sometimes |
A linked TRN request has potential duplicates or needs further checks. |
EmailSentEvent |
Sometimes |
An outcome email is sent to the user (record-matched, record-not-found or not-connected, depending on outcome and matching policy). |
OneLoginUserIdVerificationSupportTaskSaving (32)
OneLoginUserRecordMatchingSupportTaskSaving (33)
Save and return on the matching page (partial progress).
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The task is set to in progress and the journey state is saved. |
One Login connect / disconnect (Support UI)
PersonOneLoginUserConnecting (37)
OneLoginUserPersonConnecting (44)
| Event |
Emitted |
Scenario |
OneLoginUserUpdatedEvent |
Always |
The One Login user is matched (and verified, if it was not already). |
PersonOneLoginUserDisconnecting (38)
OneLoginUserPersonDisconnecting (45)
| Event |
Emitted |
Scenario |
OneLoginUserUpdatedEvent |
Always |
The One Login user is unmatched (and unverified, unless the user chose to stay verified). |
Teacher sign-in (Authorize access)
TeacherSigningIn (36)
OAuth2Controller /
SignInJourneyCoordinator.
A single process spans the whole sign-in journey.
| Event |
Emitted |
Scenario |
AuthorizeAccessRequestStartedEvent |
Always |
The sign-in journey is started. |
OneLoginUserSignedInEvent |
Always |
The user authenticates with One Login. |
OneLoginUserCreatedEvent |
Sometimes |
The first time this One Login subject signs in. |
OneLoginUserUpdatedEvent |
Sometimes |
A returning user's email/verification/match state changes (email change, identity verification, or interactive matching). |
TrnRequestCreatedEvent |
Sometimes |
Under a deferred matching policy, a dormant TRN request is created. |
SupportTaskCreatedEvent |
Sometimes |
The user submits a record-matching or ID-verification support request. |
AuthorizeAccessRequestCompletedEvent |
Sometimes |
The sign-in completes with the user authenticated and matched to a record. |
Notifications
NotifyingTrnRecipient (10)
SendTrnRecipientEmailJob.
| Event |
Emitted |
Scenario |
EmailSentEvent |
Always |
The TRN recipient email is sent. |
The four award process types below all come from
SendAytqInviteEmailJob, which picks between
them on the template of the email
BatchSendProfessionalStatusEmailsJob
queued. Older ones were back-filled by
BackfillNotificationEmailProcessesJob —
see what that job covers below.
NotifyingQtsAwardee (92)
| Event |
Emitted |
Scenario |
EmailSentEvent |
Always |
The QTS awarded email is sent. |
NotifyingInternationalQtsAwardee (93)
| Event |
Emitted |
Scenario |
EmailSentEvent |
Always |
The international QTS awarded email is sent. |
NotifyingEytsAwardee (94)
| Event |
Emitted |
Scenario |
EmailSentEvent |
Always |
The EYTS awarded email is sent. |
NotifyingQtlsAwardee (95)
The QTLS post-launch email, which goes to people who gained QTS through the QTLS and SET membership route.
| Event |
Emitted |
Scenario |
EmailSentEvent |
Always |
The QTLS post-launch email is sent. |
NotifyingInductionCompletee (96)
SendInductionCompletedEmailJob. Older
ones were back-filled from the legacy InductionCompletedEmailSentEvent by
BackfillNotificationEmailProcessesJob;
this job always wrote that event, so it has no second era.
| Event |
Emitted |
Scenario |
EmailSentEvent |
Always |
The induction completed email is sent. |
NotifyingLapsedQtlsHolder (97)
SendQtlsLapsedEmailJob, for the emails
BatchSendProfessionalStatusEmailsJob
queues when a person's QTLS expires.
| Event |
Emitted |
Scenario |
EmailSentEvent |
Always |
The QTLS lapsed email is sent. |
What the notification back-fill covers
BackfillNotificationEmailProcessesJob
creates the processes for the emails of all six types above that were sent before those types existed. It handles
two eras, which left behind different things:
| Era |
Sender |
Recorded |
How the person is recovered |
| Up to the AYTQ rewire |
the original per-status batch jobs |
a typed legacy event (QtsAwardedEmailSentEvent and friends); no emails row |
it's on the event; the emails row is recreated from the batch job item |
| Rewire onwards |
SendEmailJob |
a real emails row and the generic legacy EmailSentEvent; no process |
the TRN in the email's metadata |
The QTLS lapsed email is the exception in the second era: it carries neither a TRN nor any personalization, so
the person comes from the QTLS expiry that caused it — the PersonProfessionalStatusAttributesUpdatedEvent that
moved their QtlsStatus from Active to Expired shortly before the send, narrowed by the address it went to.
Anything that doesn't come back to exactly one person is skipped rather than guessed at.
Change requests (created via the API)
ChangeOfNameRequestCreating (13)
API CreateNameChangeRequest.
| Event |
Emitted |
Scenario |
SupportTaskCreatedEvent |
Always |
A ChangeNameRequest support task is created. |
EmailSentEvent |
Sometimes |
A confirmation email is sent when an email address is available. |
ChangeOfDateOfBirthRequestCreating (12)
API CreateDateOfBirthChangeRequest.
| Event |
Emitted |
Scenario |
SupportTaskCreatedEvent |
Always |
A ChangeDateOfBirthRequest support task is created. |
EmailSentEvent |
Sometimes |
A confirmation email is sent when an email address is available. |
Change requests (resolved in the Support UI)
ChangeOfNameRequestApproving (30)
Support UI Change requests → accept (name change).
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed as approved. |
PersonDetailsUpdatedEvent |
Sometimes |
Only when the approved name differs from the current record. |
EmailSentEvent |
Sometimes |
A confirmation email is sent when an email address is available. |
ChangeOfDateOfBirthRequestApproving (31)
Support UI Change requests → accept (date-of-birth change).
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed as approved. |
PersonDetailsUpdatedEvent |
Sometimes |
Only when the approved date of birth differs from the current record. |
EmailSentEvent |
Sometimes |
A confirmation email is sent when an email address is available. |
ChangeOfNameRequestRejecting (57)
Support UI Change requests → reject (name change).
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed as rejected. |
EmailSentEvent |
Sometimes |
A rejection email is sent when an email address is available. |
ChangeOfDateOfBirthRequestRejecting (58)
Support UI Change requests → reject (date-of-birth change).
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed as rejected. |
EmailSentEvent |
Sometimes |
A rejection email is sent when an email address is available. |
ChangeOfNameRequestCancelling (59)
Support UI Change requests → reject with reason Change no longer required (name change).
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed as cancelled. |
ChangeOfDateOfBirthRequestCancelling (60)
Support UI Change requests → reject with reason Change no longer required (date-of-birth change).
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
The support task is closed as cancelled. |
Support tasks (generic)
SupportTaskDeleting (8)
CLI delete-support-task.
| Event |
Emitted |
Scenario |
SupportTaskDeletedEvent |
Always |
— |
SupportTaskNoteCreating (61)
Support UI Add note (support task).
| Event |
Emitted |
Scenario |
SupportTaskNoteCreatedEvent |
Always |
— |
SupportTaskAllocating (62)
Support UI Allocate (support task) — sets the status and assigned user.
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
— |
SupportTasksAssigning (63)
Support UI Assign tasks (bulk assignment) — sets the assigned user on multiple support tasks.
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Conditional |
One per task whose assigned user changed. |
Notes
NoteCreating (11)
Support UI Add note.
| Event |
Emitted |
Scenario |
NoteCreatedEvent |
Always |
— |
Alerts
AlertCreating (39)
| Event |
Emitted |
Scenario |
AlertCreatedEvent |
Always |
— |
AlertUpdating (40)
Edit / close / reopen alert.
| Event |
Emitted |
Scenario |
AlertUpdatedEvent |
Sometimes |
Only when a field (details, link, start/end date) actually changes. |
AlertDeleting (41)
| Event |
Emitted |
Scenario |
AlertDeletedEvent |
Always |
— |
Mandatory qualifications
MandatoryQualificationCreating (54)
| Event |
Emitted |
Scenario |
MandatoryQualificationCreatedEvent |
Always |
— |
MandatoryQualificationUpdating (55)
| Event |
Emitted |
Scenario |
MandatoryQualificationUpdatedEvent |
Sometimes |
Only when a field (provider, specialism, status, start/end date) actually changes. |
MandatoryQualificationDeleting (56)
| Event |
Emitted |
Scenario |
MandatoryQualificationDeletedEvent |
Always |
— |
Users, application users and API keys
UserAdding (46)
| Event |
Emitted |
Scenario |
UserAddedEvent |
Always |
— |
UserUpdating (47)
| Event |
Emitted |
Scenario |
UserUpdatedEvent |
Sometimes |
Only when the name or roles change. |
UserActivating (48)
| Event |
Emitted |
Scenario |
UserActivatedEvent |
Always |
— |
UserDeactivating (49)
| Event |
Emitted |
Scenario |
UserDeactivatedEvent |
Always |
— |
ApplicationUserCreating (50)
| Event |
Emitted |
Scenario |
ApplicationUserCreatedEvent |
Always |
— |
ApplicationUserUpdating (51)
Support UI Edit application user; CLI app-content.
| Event |
Emitted |
Scenario |
ApplicationUserUpdatedEvent |
Sometimes |
Only when a field actually changes. |
ApiKeyCreating (52)
| Event |
Emitted |
Scenario |
ApiKeyCreatedEvent |
Always |
— |
ApiKeyUpdating (53)
| Event |
Emitted |
Scenario |
ApiKeyUpdatedEvent |
Sometimes |
Only when the expiry date changes. |
Webhook endpoints
WebhookEndpointCreating (67)
CLI webhook-endpoint create.
| Event |
Emitted |
Scenario |
WebhookEndpointCreatedEvent |
Always |
— |
WebhookEndpointUpdating (68)
CLI webhook-endpoint update.
| Event |
Emitted |
Scenario |
WebhookEndpointUpdatedEvent |
Sometimes |
Only when at least one field actually changes. |
WebhookEndpointDeleting (69)
CLI webhook-endpoint delete.
| Event |
Emitted |
Scenario |
WebhookEndpointDeletedEvent |
Always |
— |
NPQ TRN requests (legacy)
The NPQ TRN request journey was removed from the Support UI, so nothing produces these process types any
more. They cover the requests that were handled while it existed, plus the older ones back-filled from the
legacy events:
BackfillNpqTrnRequestProcessesJob
from NpqTrnRequestSupportTaskResolvedEvent / NpqTrnRequestSupportTaskRejectedEvent, and
BackfillTrnRequestSupportTaskProcessesJob
from the SupportTaskCreatedEvents the 'request a TRN' pages wrote before they moved onto the event pipeline.
The tables below describe what those processes hold.
NpqTrnRequestTaskCreating (15)
| Event |
Emitted |
Scenario |
SupportTaskCreatedEvent |
Always |
— |
TrnRequestCreatedEvent |
Always |
Only on a process the pages created — TRN request creation never had a legacy event, so the back-filled ones hold the SupportTaskCreatedEvent alone. |
NpqTrnRequestApproving (18)
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
— |
TrnRequestUpdatedEvent |
Always |
— |
PersonCreatedEvent |
Sometimes |
The support user chooses to create a new record. |
PersonDetailsUpdatedEvent |
Sometimes |
The support user merges into an existing record and updates its attributes. |
EmailSentEvent |
Sometimes |
A 'TRN Generated for NPQ' email was sent to the person. Only ever on a process the journey created — the email was introduced after the journey was already running as a process, so the back-filled ones never have one. The same template was also sent by the bulk overseas NPQ TRN allocation; those sends belong to a person creation elsewhere, and are covered under PersonCreating (24). |
NpqTrnRequestRejecting (19)
| Event |
Emitted |
Scenario |
SupportTaskUpdatedEvent |
Always |
— |
TrnRequestUpdatedEvent |
Always |
— |
TRN allocation (historical)
TrnAllocating (91)
Nothing produces this process type any more. It covers the TRNs handed out by the one-off jobs that allocated
them to persons with EYPS and to overseas NPQ applicants, back-filled from the legacy TrnAllocatedEvents by
BackfillTrnAllocationProcessesJob.
| Event |
Emitted |
Scenario |
TrnAllocatedEvent |
Always |
— |
Historical / migration-only
These "…InDqt" / "…FromDqt" process types are not produced by current application code. They were
assigned during data migration to wrap pre-existing DQT-era records into the process model, and are
only used for display grouping (e.g. in ChangeHistoryService).
PersonCreatingInDqt (2)
| Event |
Emitted |
Scenario |
PersonCreatedEvent |
Always |
— |
PersonImportingIntoDqt (3)
| Event |
Emitted |
Scenario |
PersonImportedIntoDqtEvent |
Always |
— |
PersonUpdatingInDqt (4) |
| Event |
Emitted |
Scenario |
PersonUpdatedInDqtEvent |
Always |
— |
PersonDeactivatingInDqt (5)
| Event |
Emitted |
Scenario |
PersonDeactivatedEvent |
Always |
— |
PersonReactivatingInDqt (6)
| Event |
Emitted |
Scenario |
PersonReactivatedEvent |
Always |
— |
PersonMergingInDqt (7)
| Event |
Emitted |
Scenario |
PersonDeactivatedEvent |
Always |
— |
PersonDeactivatedEvent |
Sometimes |
The retained record's attributes are changed to values taken from the secondary record. |
AlertDeactivatingInDqt (70)
| Event |
Emitted |
Scenario |
AlertDqtDeactivatedEvent |
Always |
— |
AlertImportingIntoDqt (71)
| Event |
Emitted |
Scenario |
AlertDqtImportedEvent |
Always |
— |
AlertReactivatingInDqt (72)
| Event |
Emitted |
Scenario |
AlertDqtReactivatedEvent |
Always |
— |
AlertMigratingFromDqt (73)
| Event |
Emitted |
Scenario |
AlertMigratedEvent |
Always |
— |
InductionCreatingInDqt (74)
| Event |
Emitted |
Scenario |
DqtInductionCreatedEvent |
Always |
— |
InductionUpdatingInDqt (75)
| Event |
Emitted |
Scenario |
DqtInductionUpdatedEvent |
Always |
— |
InductionImportingIntoDqt (76)
| Event |
Emitted |
Scenario |
DqtInductionImportedEvent |
Always |
— |
InductionDeactivatingInDqt (77)
| Event |
Emitted |
Scenario |
DqtInductionDeactivatedEvent |
Always |
— |
InductionReactivatingInDqt (78)
| Event |
Emitted |
Scenario |
DqtInductionReactivatedEvent |
Always |
— |
PersonInductionStatusChangingInDqt (79)
| Event |
Emitted |
Scenario |
DqtContactInductionStatusChangedEvent |
Always |
— |
PersonMigratingFromDqt (1)
The one-off migration of person records from DQT into TRS. Back-filled from the legacy PersonMigratedEvent; nothing writes this type any more. The events were written straight into the events table by CreatePersonMigratedEventsJob and carried no RaisedBy, so the back-filled processes are attributed to the system user.
| Event |
Emitted |
Scenario |
PersonMigratedEvent |
Always |
— |
InductionMigratingFromDqt (101)
The one-off migration of induction from DQT onto the person record. Back-filled from the legacy InductionMigratedEvent; nothing writes this type any more.
| Event |
Emitted |
Scenario |
InductionMigratedEvent |
Always |
— |
InitialTeacherTrainingCreatingInDqt (80)
| Event |
Emitted |
Scenario |
DqtInitialTeacherTrainingCreatedEvent |
Always |
— |
InitialTeacherTrainingUpdatingInDqt (81)
| Event |
Emitted |
Scenario |
DqtInitialTeacherTrainingUpdatedEvent |
Always |
— |
QtsRegistrationCreatingInDqt (82)
| Event |
Emitted |
Scenario |
DqtQtsRegistrationCreatedEvent |
Always |
— |
QtsRegistrationUpdatingInDqt (83)
| Event |
Emitted |
Scenario |
DqtQtsRegistrationUpdatedEvent |
Always |
— |
MandatoryQualificationDeactivatingInDqt (84)
| Event |
Emitted |
Scenario |
MandatoryQualificationDqtDeactivatedEvent |
Always |
— |
MandatoryQualificationImportingIntoDqt (85)
| Event |
Emitted |
Scenario |
MandatoryQualificationDqtImportedEvent |
Always |
— |
MandatoryQualificationMigratingFromDqt (86)
| Event |
Emitted |
Scenario |
MandatoryQualificationMigratedEvent |
Always |
— |
RouteToProfessionalStatusCreating (87)
API SetRouteToProfessionalStatus and SetQtls; Support UI Add route; the EWC Wales QTS import.
| Event |
Emitted |
Scenario |
RouteToProfessionalStatusCreatedEvent |
Always |
— |
PersonProfessionalStatusAttributesUpdatedEvent |
Sometimes |
Only when adding the route moves the person's QTS/EYTS/PQTS date, their EYPS flag or their QTLS status. |
PersonInductionUpdatedEvent |
Sometimes |
Only when adding the route moves the person's induction. |
RouteToProfessionalStatusUpdating (88)
API SetRouteToProfessionalStatus and SetQtls; Support UI Edit route; SetMissingHasEypsOnPersonsJob.
| Event |
Emitted |
Scenario |
RouteToProfessionalStatusUpdatedEvent |
Sometimes |
Only when a field on the route itself actually changes. |
PersonProfessionalStatusAttributesUpdatedEvent |
Sometimes |
Only when the change moves the person's QTS/EYTS/PQTS date, their EYPS flag or their QTLS status. |
PersonInductionUpdatedEvent |
Sometimes |
Only when the change moves the person's induction. |
RouteToProfessionalStatusDeleting (89)
API SetQtls; Support UI Delete route.
| Event |
Emitted |
Scenario |
RouteToProfessionalStatusDeletedEvent |
Always |
— |
PersonProfessionalStatusAttributesUpdatedEvent |
Sometimes |
Only when deleting the route moves the person's QTS/EYTS/PQTS date, their EYPS flag or their QTLS status. |
PersonInductionUpdatedEvent |
Sometimes |
Only when deleting the route moves the person's induction. |
RouteToProfessionalStatusMigratingFromDqt (90)
| Event |
Emitted |
Scenario |
RouteToProfessionalStatusMigratedEvent |
Always |
— |
PersonProfessionalStatusAttributesUpdatedEvent |
Sometimes |
Only when the migration moved the person's QTS/EYTS/PQTS date, their EYPS flag or their QTLS status. |