On the CiviCRM Webform Integration, I setup the External ID to appear as a textfield. Once the form is submitted, the External ID is captured in Webform, but not in the CiviCRM contacts. Is this a bug or is my settings incorrect?
so your aim is to let the end user change the external id directly?
It has several constraints (eg. it has to be unique) that made me wonder if you wouldn't be safer to create a custom field to store whatever you intend to put into the external id.
External id is a fairly technical field that I would not expose directly to the user, both to avoid consistency problems and privacy leakage.
Eg. if you are using it to store the id from another system (say a membership id), it would be fairly easy to check if a specific member id is already registered in the database: try to create or update the webform with that id. If you have an error, it means the id is already registered in the database.
With a custom field, you wouldn't have that constraint of being unique.
I just ran into this very same issue today. I need to create/generate External IDs: First two digits of First Name + First two digits of Last Name + Date of Birth -> so e.g. COCR16091970