Requests - Considerations for Migration

Basic information on the requests app can be found here: https://docs.folio.org/docs/access/requests/requests/

Migrating using business logic

One migration path is to use FOLIO's business logic APIs to migrate your requests. The advantage of doing so is that the business logic APIs will handle things like creating notices

You can create requests by doing a POST to circulation/requests in mod-circulation: https://s3.amazonaws.com/foliodocs/api/mod-circulation/circulation.html

Title-Level Requesting and Migration

FOLIO supports title-level requesting, though it is in development with each release; your library should review the current functionality of title-level requesting for your planned FOLIO release and decide if you want to start with title-level requesting on or off.

The main consideration is that the first time title-level requesting is turned, FOLIO should have no open requests in the Requests app. 

The reason for this requirement is that title-level requesting requires managing queues of requests, and if there are open requests previously placed at the item level, there is no way for FOLIO to be able to determine how to manage the ranking and queues for title-level requesting on that associated instance.

So, if your library wants to use title-level requesting, it is much easier to use it from the beginning of when you first implement FOLIO in your production environment, because you can start that environment fresh and not have to figure out how to close out the request queue to implement title-level.

Migration to the correct request types 

FOLIO has three request types.

  • Hold. The item has been requested and is not currently available.
  • Page. The item has been requested and has a status of Available.
  • Recall. The item has been recalled (shortening the loan period of the patron who currently has the item.)

Request types are part of the request POST and depend on the item status and the allowed request types in the applicable request policy. That means that if you are using business logic to migrate, you need to determine the associated request type in order to form the API request.

If the request policy doesn't allow any requests to be placed, the request will be denied.

This chart below outlines how the mapping works:

 Item Status and Request Policy Mapping to Request Type


FOLIO item statusRequest PolicyItem Status and Request PolicyNotes

Recall Allowed?Holds Allowed?Page Allowed?

Aged to lostEitherEitherEitherDeny requestItem status type does not allow requesting
AvailableEitherEitherNoDeny requestAvailable items can only be paged.
AvailableEitherEitherYesPage
Awaiting deliveryNoNoYesDeny requestYou cannot page an "Awaiting delivery" item
Awaiting deliveryNoYesEitherHold
Awaiting deliveryYesEitherEitherRecall
Awaiting PickupNoNoYesDeny requestYou cannot page an awaiting pickup item
Awaiting PickupNoYesEitherHold
Awaiting PickupYesEitherEitherRecall
Checked OutNoNoYesDeny requestYou cannot page a checked out item.
Checked OutNoYesEitherHold
Checked OutYesEitherEitherRecall
Claim returnedEitherEitherEitherDeny requestItem status type does not allow requesting
Declared lostEitherEitherEitherDeny requestItem status type does not allow requesting
In processNo NoYesDeny requestYou cannot page an in process item.
In processNoYesEitherHold
In processYesEitherEitherRecall
In process (non-requestable)EitherEitherEitherDeny requestItem status type does not allow requesting
In transitNoNoYesDeny requestYou cannot page an in transit item.
In transitNoYesEitherHold
In transitYesEitherEitherRecall
Intellectual itemEitherEitherEitherDeny requestItem status type does not allow requesting
Long missingEitherEitherEitherDeny requestItem status type does not allow requesting
Lost and paidEitherEitherEitherDeny requestItem status type does not allow requesting
MissingEither NoEitherDeny requestYou cannot place a page or recall on a missing item.
MissingEitherYesEitherHoldYou are allowed to place a hold on a missing item.
On orderNoNoYesDeny requestYou cannot page an on order item
On orderNoYesEitherHold
On orderYesEitherEitherRecall
Order closedEitherEitherEitherDeny requestItem status type does not allow requesting
PagedNoNoYesDeny requestYou cannot page a paged item.
PagedEitherYesEitherHold
PagedYesEitherEitherRecall
Recently returnedEitherEitherNoDeny requestRecently returned items can only be paged.
Recently returnedEitherEitherYesPage
RestrictedNoNoYesDeny requestYou cannot page a restricted item.
RestrictedNoYesEitherHold
RestrictedYesEitherEitherRecall
UnavailableEitherEitherEitherDeny requestItem status type does not allow requesting
UnknownEitherEitherEitherDeny requestItem status type does not allow requesting
WithdrawnEitherEitherEitherDeny requestItem status type does not allow requesting



Migrating directly to storage

If your institution has migrated requests directly to storage, please add notes here as to your experience / tips for the process.