David,
QRecall already unmounts the volume containing the archive, but only if it wasn't mounted when the action started. QRecall automatically tries to mount the archive volume before the action starts. If the volume previously offline and is successfully mounted, it will also attempt to unmount it again when the action finishes. If the volume was already mounted, it does nothing before or after.
So one solution would simply be to leave the volume unmounted. QRecall will mount it before the 0300 action runs, and unmount it again when it's finished.
If that's not practical (because most external drive auto-mount when connected, or maybe you're just using it for other documents), there's another approach.
You could create an epilog script to unmount the archive volume at the end of the action. A bash script to accomplish this would look like this:
#!/bin/bash
diskutil unmount "${QR_ARCHIVE_VOLUME_MOUNTPOINT}"
QRecall provides the script with the mount point of the volume containing the archive; all this script does is pass that to the
diskutil tool requesting that the volume be unmounted.
You can create this script in any plain ASCII text editor (I would suggest BBEdit, which is free to use). Save the file with 7-bit ASCII or UTF-8 encoding (no BOM) and name the file with a .sh extension. If you're not using a smart editor like BBEdit, you'll need to use the
chmod a+x ... command to assign execution privileges to the script file.
Then go into capture action and add the script as the action's epilog.
Note: in all cases (this script, QRecall, dragging the volume to the trash), the volume will not be unmounted if other software has files open on it.