Read resource inquiry and allocation history

Use resourceActivity in the authenticated KORONA Event GraphQL API to reconstruct resource activity for an event. This query requires an authenticated user with permission to read events and the event's tenant context. It is separate from the public Booking API.

Retrieve an event's activity

Pass the event ID and paginate with first and after. You can narrow the results with requirementId or resourceId. Results are ordered by activity ID.

graphql
query ResourceHistory($event: ID!, $after: String) {
  resourceActivity(eventId: $event, first: 100, after: $after) {
    nodes {
      id
      createdAt
      kind
      attemptId
      requirementId
      slotId
      resourceId
      actorType
      actorId
      actorEntityType
      source
      reason
      response
      lifecycle
      allocation
      suitability
      communication
      communicationId
      feeId
      feeStatus
      eventRevision
      eventAuditId
      legacy
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Use endCursor for the next page while hasNextPage is true. Retain activity IDs when combining pages so a repeated fetch does not duplicate entries in your application.

Interpret the records

Group inquiry records by attemptId. A new inquiry after a decline or closure starts a separate attempt. The existing inquiry ID remains the current-state reference used by existing integrations.

FieldMeaning
actorType, actorEntityType, actorIdThe actor role, entity type and ID. actorType is staff, resource, system or unknown. A signed-in resource user has entity type User; an inquiry email-token response has entity type Resource. Resolve an ID only together with its entity type.
responseThe resource's answer: unanswered, accepted, rejected, withdrawn, or unknown.
lifecycleWhether the inquiry is open, closed, or removed. Closure does not itself mean rejection.
reasonThe recorded reason, when known. not_selected closes recruitment without changing an earlier acceptance.
allocationAssignment evidence such as preselected, allocated, unallocated, or released. Acceptance alone does not prove assignment.
suitabilityIndependent suitability evidence. unknown means no suitability assessment was recorded.
communicationCommunication evidence. recorded means the communication was prepared, without evidence of successful delivery. delivered records the application's successful email delivery handoff; it does not prove the recipient read the message.
feeId, communicationIdReferences to existing fee and communication records. Their content is not copied into this response.
eventRevision, eventAuditIdThe event revision observed with the activity, where available.
legacyA snapshot of a record that predates attempt history. It is not a reconstruction of missing earlier answers.

For example, response: "accepted", lifecycle: "closed", and reason: "not_selected" means the resource accepted but recruitment closed because another resource was selected. Keep these fields separate in your own displays.

For older records, actorEntityType may be null; do not infer an entity type from the actor role or numeric ID.

A null field means that dimension does not apply to the activity or no evidence is available. Do not convert it into a rejection, failure, or successful assignment. createdAt is the activity recording time; for a legacy_snapshot entry, it is the observation time, not the time of an earlier response.

Access and retention

Staff with event-read permission can retrieve the event's recorded resource activity. Users restricted to their own resource see only their own inquiry, allocation and communication activity. They do not receive colleagues' responses, internal reasons, actor identifiers, actor entity types or fee activity through this query. Inquiry email tokens do not grant access to the history query.

Activity remains readable by event ID after ordinary resource archiving or removal of a requirement or assignment. Referenced operational records may no longer exist. Tenant deletion and the existing retention policy still apply.

Ready to Get Started?

Book a free demo or reach out — we’d love to hear from you.