customize search field in Contact Reference Field
First, it can't be done without coding and it may not be an easy task.

I can think of 2 possibilities :


Change search api


When you do a search, the api that should be called is Contact.getlist, so the first step is to see if the api is able to do what you want. It seems to be possible to change the search from "name or email" to "external_identifier" but i can't find a way to do "name or email or external_identifier".

$result = civicrm_api3('Contact', 'getlist', array(
  'sequential' =&gt; 1,
  'input' =&gt; 4398,   // the text searched
  'search_field' =&gt; "external_identifier",
));


The problem i see is, if you change the default api behavior, it will be changed everywhere. I don't think you have the context here.

If you find your way, you will then have to implement the hook_civicrm_apiWrappers to change the api call as needed.


Change the ui


Replace the default CiviCRM search by a custom one that will call a custom api