Requesting metadata from users should not be in part of the Workflow, instead in the Properties of your list item or if the list is based on Content type, part of the Content type.
If you still need to collect some data important to your workflow good processing, there are 2 mechanisms:
- Association Forms - build particularly for Administrator's of the
Workflow to passing data as Defaults to the workflow when connecting
the workflow with the list.
- Initiation Forms - when the WF starts (manual or automatic - your
options) that particular user will be prompted with a screen to
complete certain values and then WF could really start. I believe
that is where you should collect your metadata.
- Modification forms & Task Edit forms - more during the workflow, while you need more
data, etc.
The way these forms work are dependent on the Variables and Parameters configured in your Workflow (via Designer or Visual Studio, or Nintex/K2, etc.). Most cases forms are generated automatically either as InfoPath forms or ASp.NET forms, but of course could be changed via either of the tools.
As the workflow gets access to the Context in which is running, you get full access to the whole site information, so you could use that data to perform even List Item updates, which literally will alleviate your need for data collection, while adding more business logic to the whole thing.