I googled this in the past, but im sure more experienced node runners will have a more in depth answer.
In order for a node to receive a transaction, it has to issue an invoice, so if you want to send anyone a transaction, you need to communicate with that node live to ask it to issue an invoice. That communication happens over a lightning url.
Bolt12 allows the lightning url to pack more data, so one can send a transaction to a node even if it is offline.
This is helpful because wallet nodes cant stay online, as soon as you close the app, the node is technically offline.