Koha How-To

Reopening Your Library: Notices


A lot of the notices that Koha sends are sent through what is called the Process Message Queue Cron. If your library requested Item Due, Hold, Pre-due, Overdue or Membership Expiry notices to not be sent, your process message queue cron may have been stopped by our Systems Team.

If your process message queue cron was halted, a few things must be done prior to turning this back on. Once these things have been addressed, your library will be ready to have your cron re-activated. A final check of everything prior to starting your process message queue will be at the end of this blog post.

First, let’s review what other changes connected to Notices that occurred in addition to the Message Queue having been stopped.

Item Due / Advance Notices

Did your library make any adjustments to the content of these notices? If so, then these changes will need to be updated to reflect what they previously had contained.

Did your library change the messaging preferences by patron category? If so, then the changes need to be updated on those patron categories to reflect what they previously had contained and then please submit a ticket to us to have a Data Specialist to update your borrowers.

For libraries that bulk updated your patron’s due dates to a specific date, we would strongly recommend that your library hold off on running these notices until that date has passed. If these Advance Notices were to go out prior to this hard due date, it could generate a high volume of notices which could likely get your library’s email on a blacklist (spam list). A good suggestion would be to use an email marketing service such as MailChimp or Constant Contact to send out a reminder that the due date is coming and you are reopening (yay)!

If you would like to see how many advance notices might be sent the following query will show you the days that the bulk of your items are due. Advance notices would be sent a couple of days prior to this due date. Check your patron category messaging preferences to see what the bulk of you patrons have set for advance notices. i.e. notices sent out 2 days prior to being due.

Select date_due,count(*) from issues group by date_due having count(*) > 1000

Note: this query will show you days where 1000+ items are due. If you want a lower threshold - change the 1000 to the number of your choosing. If you want to see all of them dates, remove the 'having count(*) > 1000 ' from the query and run it.

Hold Notices

If your library stopped all messages to be sent during this time:

Did your library edit your Hold notice? If so, please edit this notice to enter the information your library was previously using prior to this closure.

Did you continue to check-in items and trigger holds without Hold notices going out?

Did your library shut down completely and the holds are still waiting to be picked up (waiting on your Holds awaiting pickup shelf?).

In both cases, your library may want to re-send notification to the patrons that they have item/s on the hold shelf. Koha can’t re-generate Hold notices nor do we want to turn on the Process Message Queue and run that as this will contain a lot of notices!

Note: For smaller libraries or libraries with a manageable number of triggered holds, you do have the ability to go into the Patron’s account and “resend” the notice if they have email notifications set up. For larger libraries or for libraries with a lot of holds to resend notifications, this process may be a bit tedious.

QUERY to find all Holds on the shelf awaiting pickup:

SELECT p.surname, p.firstname, p.email, p.cardnumber,
h.waitingdate AS 'hold date', i.barcode, b.title
FROM reserves h
LEFT JOIN borrowers p USING (borrowernumber)
LEFT JOIN items i USING (itemnumber)
LEFT JOIN biblio b ON (i.biblionumber=b.biblionumber)

Verify that this query contains all the items that are on your “Holds Awaiting Pickup Tab” and you would like to send an email notification to the patron about the hold.

Once this report has been created on your system and you have verified that these items are waiting for the patrons, your library can send a notice through Koha using the Patron Emailer or use an email marketing service such as Mail Chimp or Constant Contact. A word of caution: if this report is very extensive and you have a large number of emails to send, we would strongly recommend using an email marketing service instead of Koha to reduce the opportunity to be added to a blacklist (spam list).

If your library continued to check-in items but “ignored” the hold, wait to trigger these holds after you activate the Process Message Queue. These items will then show on your Holds Queue or Holds to Pull, whichever one you use.

Patron Emailer

Here are two blog posts to assist your library in emailing notices to your patrons.

Monday Minutes: Emailing Customized Patron Notices

This process allows libraries to create multiple notices and also schedule out these customized notices.

Using the Patron Emailer Plugin in Koha

This process will allow a library to create one notice at a time but also allow the library to send the notices themselves.

IMPORTANT NOTE: the use of the patron emailer plugin/cron utilizes the message queue. YOU MUST COMPLETE MESSAGE QUEUE CLEANUP BEFORE USING THE PATRON EMAILER.

Overdue Notices

If your library adjusted Overdue Notices or the Triggers itself, please adjust them back as your library had them.

Your library may have also opted to stop sending Overdue notices out or adjusted the Overdue Notice status and Triggers.

The Overdue Notice cron will be re-activated when your library re-starts the Process Message Queue**. This process will strictly follow your library’s triggers and will not capture anything that falls outside of these triggers. For example, if you have Triggers set a 7, 14, and 21 days, the only Overdue notices that will be sent are for items that are 7, 14, or 21 days overdue.

If your library would like to send a notice to all patrons who show as having overdue, here is a report that can gather all the information and again, you can use the patron emailer to send a notice to these patrons.

SELECT borrowernumber, cardnumber, email, firstname, surname, group_concat(items_content separator '|') as items_content_list

FROM borrowers LEFT JOIN

(SELECT borrowernumber, concat('"',b.title,'" by ',author,', Due: ',date(date_due),' Barcode: ',Barcode) as items_content

FROM issues left join items using (itemnumber) left join biblio b using (biblionumber) left join borrowers using (borrowernumber)

WHERE date(date_due) < curdate()

GROUP BY issue_id) ic

USING (borrowernumber)

WHERE items_content is not null

GROUP BY borrowernumber

IMPORTANT: Your library will need to first clean out your Process Message Queue** and have it activated before this report can be sent through the patron emailer.

Membership Expiry Notices

Expiration Notices also would have been stopped if your library stopped the Process Message Queue**. Did you adjust the content of the Membership Expiry notice? If so, please make the necessary changes. Once the Process Message Queue has been enabled, this will start sending notices again. Much like the Overdue notices, it will only send out a notice to patrons whose expiry dates matches the number in your system preferences. For instance, if you have the system preference set to 30 days, only patrons whose expiration date is 30 days from today will receive the notice. Anyone whose expiration date is less than 30 days will not get a notice.

SELECT letter_code, borrowernumber

FROM message_queue

WHERE status='pending' and message_transport_type='email' AND letter_code='MEMBERSHIP_EXPIRY'

If your library would like to send out these older Membership Expiry notices, you can do so using the Patron Emailer.

**Before activating the Process Message Queue con: ByWater needs to clean out the message queue! We recommend doing this a couple of days prior to opening, so your library is ready to start sending regular notices again soon after you open.

Cleaning out the Message Queue

Before you can start your Process Message Queue cron**, we will need to clean out the message queue. To do this, please send a ticket to ByWater Solutions to do this.

We will change all your notice statuses from Pending to Failed, with a note that the notice was failed due to Covid-19 closure. We are adding the note in case there are questions in the future about why a notice was not sent.

Once your message queue has been cleaned out, you can run this report to see which current notices are being sent out:

SELECT message_transport_type, letter_code, count(message_id), min(time_queued), max(time_queued)

FROM message_queue

WHERE status=’pending’ and message_transport_type in ('sms',’email’)

GROUP BY letter_code

Talking Tech

If your library is using the service Talking Tech, you will need to make sure TalkingTech has new reports with the updated information. These scheduled reports will need to be re-activated first, and then you can notify Talking Tech to start making calls again.


Now, are you sure you ready to turn on the message queue? Remember, this does not do anything except send the messages that are created from the above actions. Please make sure your library has done the steps above to ensure the accuracy of the information you are sending to your patron.

More Resources for Reopening

Circulation & Fine Rule Changes