Answers.Body: <p>I do not think there is a (good) way to use duplictae external IDs in CiviCRM - if you want to use the external ID field to do so. You could however create a custom field, import your external ID in that one and then adapt your matching rules to find duplicates (/civicrm/contact/deduperules?reset=1).</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-12T18:00:14.917Z
Answers.Text: When I look at the dropdown for dedupe field selection, I do not see any custom fields. I was thinking of using the existing OpenID field or some other random existing field as a merge-id, but I wanted to know if there was a better way, so I posted the question.  Do you see custom fields in the dropdown?
Answers.UserDisplayName: Derek
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-13T05:30:51.610Z
Answers.Text: I can select custom fields when editing / adding a matching rule (tested in CiviCRM 4.7.23)
Answers.UserDisplayName: Fabian
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-12T14:01:26.517Z
Answers.LastActivityDate: 2017-10-12T14:01:26.517Z
Answers.UserDisplayName: Fabian
Answers.Body: <p>If you really do want to do it via the External ID, then subtly adjust your ID on each import eg 567-s for the student import, 567-t for teacher import, 567-v for volunteer import</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-12T21:28:24.057Z
Answers.Text: Hmmmm. So you're saying: salt the external id on import purposely and then use the dedupe rule to match on external identifiers for the first X digits of the field...there might be something here, depending I suppose on the range of external ID's I'm working with.
Answers.UserDisplayName: Derek
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-13T00:01:35.710Z
Answers.Text: well 'appending' or 'suffixing' i think but i am not super familiar with salt outside of passwords
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-12T18:02:11.393Z
Answers.LastActivityDate: 2017-10-12T18:02:11.393Z
Answers.UserDisplayName: petednz - fuzion
Body: <p>I have a large number of contacts across different contact sub-types, imported via CiviMigrate. </p>
  
  <p>The particulars: </p>
  
  <p>I am pulling multiple contact types from the same, flat master table. This means that for example: </p>
  
  <p>Pass 1 : Grabs all students
  Pass 2: Grabs all teachers
  Pass 3: Grabs all volunteers</p>
  
  <p>There are naturally some students which became teachers, and were volunteers at some point, so there can be any combination of contact sub-types. </p>
  
  <p>In the "worst" case, I'd end up with 3 contacts, one of each sub-type, that would need to be flattened into a single contact. </p>
  
  <p>I have been matching on first and last name with some success, but there are multiple cases in which this causes the need for manual merge work (people with the same name). </p>
  
  <p>Is there any way to temporarily allow dupe external ID's for the purpose of a later merge? </p>
  
  <p>Now, this all stems from the fact that I can't find any documentation on how to pass multiple contact sub-types at once via CiviMigrate, perhaps there's an angle there? </p>
  
  <p>Thanks!
  -d</p>
  
Tags: <contacts><external-id>
Title: Allow Duplicate External IDs for later merge?
ThreadText: # Allow Duplicate External IDs for later merge?
  
  (Asked by: username_0 on 2017-10-12)
  
  I have a large number of contacts across different contact sub-types, imported via CiviMigrate.
  
  The particulars:
  
  I am pulling multiple contact types from the same, flat master table. This means that for example:
  
  Pass 1 : Grabs all students
  Pass 2: Grabs all teachers
  Pass 3: Grabs all volunteers
  
  There are naturally some students which became teachers, and were volunteers at some point, so there can be any combination of contact sub-types.
  
  In the "worst" case, I'd end up with 3 contacts, one of each sub-type, that would need to be flattened into a single contact.
  
  I have been matching on first and last name with some success, but there are multiple cases in which this causes the need for manual merge work (people with the same name).
  
  Is there any way to temporarily allow dupe external ID's for the purpose of a later merge?
  
  Now, this all stems from the fact that I can't find any documentation on how to pass multiple contact sub-types at once via CiviMigrate, perhaps there's an angle there?
  
  Thanks!
  -d
  
  **Tags:** contacts, external-id
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2017-10-12. Score: 1
  
  I do not think there is a (good) way to use duplictae external IDs in CiviCRM - if you want to use the external ID field to do so. You could however create a custom field, import your external ID in that one and then adapt your matching rules to find duplicates (/civicrm/contact/deduperules?reset=1).
  
  > **Comments:**
  > **username_0**: When I look at the dropdown for dedupe field selection, I do not see any custom fields. I was thinking of using the existing OpenID field or some other random existing field as a merge-id, but I wanted to know if there was a better way, so I posted the question.  Do you see custom fields in the dropdown?  
  > **username_1**: I can select custom fields when editing / adding a matching rule (tested in CiviCRM 4.7.23)  
  
  ---
  
  ### Answer by username_2 on 2017-10-12. Score: 0
  
  If you really do want to do it via the External ID, then subtly adjust your ID on each import eg 567-s for the student import, 567-t for teacher import, 567-v for volunteer import
  
  > **Comments:**
  > **username_0**: Hmmmm. So you're saying: salt the external id on import purposely and then use the dedupe rule to match on external identifiers for the first X digits of the field...there might be something here, depending I suppose on the range of external ID's I'm working with.  
  > **username_2**: well 'appending' or 'suffixing' i think but i am not super familiar with salt outside of passwords  
  
  ---
  
  