By doing it the other way around (an invoice generates a check out) you can avoid having to add columns to the template, which I believe looks cleaner.
Not to mention it might be important to use the Append function here. To keep historical tracking of when a particular invoice was generated and sent. Otherwise, if you refresh the connection using controllers you will have a mismatch of information.