Damoon,
As usual, Rob is right.
As you can use the API to initiate a workflow from just about anything (we, for example, initate one as a result of a scanning event to distribute incoming scanned invoices), so how you create the datafile depends on your situation.
In the simplest form, all you need is a simple xml file that populates the fields you need populated, if any - one of the fastest ways to create the 'base'XML file is to run the form you are using for this task in test mode (F5 in the designer), enter the default data into it, and save the file (right click anywhere on the form and select Save Data...).
Then you can use XMLDom in your initiation script or application to load the base xml file and modify data prior to submitting it, if you need to.
Hope this helps. As Rob mentioned, the documentation does explain each of the objects available.
Cheers,
Sanna