This doesn't work unfortunately. It only works if the original Contact record's Original Source Type = salesforce.com because all values are copied into the new record. So if the original record's Original Source Type = Web Page Visit, for example, the workflow won't fire. So, it looks as though a workflow won't do it, so it might require an APEX trigger because of that limitation.