Don't try to make things too complicated. You don't possibly need any events, etc. And as far as I see this has not much to do with workflow.
1) Use change pointers or
2) use some customer exit to trigger the IDOC
3) Google "site:sap.com customer IDOC" - you hardly are doing something that is not discussed before