Answers.Body: <p>Step 1 - Use a program to make your data consistent.  There are lots of possibilities out there - try OpenRefine (open refine.org).</p>
  
  <p>Step 2 - once consistent, try to assign the contact.id (aka contact id, internal contact id) to a column.  This will remove de-duplication issues</p>
  
  <p>Step 3 - Import</p>
  
  <p>Its really hard to have a script that finds inconsistencies, and they vary so much across data sets: some have all sorts of titles, others have improper address (street vs st vs str), etc.  I find its almost always less time to invest in work before the import instead of counting/hoping on finding duplicates later.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-06-17T01:50:06.903Z
Answers.LastActivityDate: 2015-06-17T01:50:06.903Z
Answers.UserDisplayName: Eliot Mason
Body: <p>I'd like to import an <strong>inconsistent list of contact names with associated donations</strong> and match the names to contacts.  IMO there are 3 options:</p>
  
  <ol>
  <li>Clean the csv in advance by displaying contact alternatives (ideally showing contact ID for matching)</li>
  <li>Run an import script and use interactive matching logic.</li>
  <li>Use forms for batch entry and interactively match contacts.</li>
  </ol>
  
  <p>The problem is that the person who understands the matching is not the same person who can do the interactive import.</p>
  
  <p>I was wondering if someone has used an excel function / drush or extension of some sort to process a list of names and retrieve  likely matches that I could present (with contact ID) in excel so the user would not have to use the autocomplete widget. Would like to avoid a developer.</p>
  
  <p>The </p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-06-09T14:17:43.540Z
Comments.Text: Also, my first attempt is using drush and api: $result = civicrm_api3('Contact', 'get', array(
    'sequential' => 1,
    'return' => "id,first_name,last_name,display_name",
    'display_name' => "john smith",)  I'm not clear on the matching logic though as it seems to be fuzzy.
Comments.UserDisplayName: Sonicthoughts
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-06-09T15:20:32.320Z
Comments.Text: What are the inconsistencies?  Is it a matter of sometimes someone uses a nickname?  Are there any other fields besides first name, last name, and contribution amount?
Comments.UserDisplayName: Andie Hunt
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-06-10T03:12:39.120Z
Comments.Text: It's filled with issues (spellings, etc.)  I thought it might be good to generate a list of suggestions similar to the auto-complete widget so someone could quickly identify likely matches without having to use import forms/process. so, "Andy Hunt" would return "Andrew Hunt", "Mr. and Mrs. Andrew Hunt", etc. and the contact ID.
Comments.UserDisplayName: Sonicthoughts
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-06-17T01:03:42.960Z
Comments.Text: Another approach would be to import remembering to tag the new contacts appropriately, then use the dupe merging facilities
Comments.UserDisplayName: Joe Murray
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-06-17T01:07:15.660Z
Comments.Text: @JoeMurray - yes, but I think that would still require the subject matter expert to use the UI interactively - no?  Was hoping to present "likely" matches in a separate list.  I suppose this is an edge case anyway but thought someone may have tackled it before.
Comments.UserDisplayName: Sonicthoughts
Tags: <contacts><duplicate-contacts>
Title: contact match script?
ThreadText: # contact match script?
  
  (Asked by: username_0 on 2015-06-09)
  
  I'd like to import an **inconsistent list of contact names with associated donations** and match the names to contacts. IMO there are 3 options:
  
  1. Clean the csv in advance by displaying contact alternatives (ideally showing contact ID for matching)
  2. Run an import script and use interactive matching logic.
  3. Use forms for batch entry and interactively match contacts.
  
  The problem is that the person who understands the matching is not the same person who can do the interactive import.
  
  I was wondering if someone has used an excel function / drush or extension of some sort to process a list of names and retrieve likely matches that I could present (with contact ID) in excel so the user would not have to use the autocomplete widget. Would like to avoid a developer.
  
  The
  
  **Tags:** contacts, duplicate-contacts
  
  > **Comments:**
  > **username_0**: Also, my first attempt is using drush and api: $result = civicrm_api3('Contact', 'get', array(   'sequential' => 1,   'return' => "id,first_name,last_name,display_name",   'display_name' => "john smith",)  I'm not clear on the matching logic though as it seems to be fuzzy.  
  > **username_1**: What are the inconsistencies?  Is it a matter of sometimes someone uses a nickname?  Are there any other fields besides first name, last name, and contribution amount?  
  > **username_0**: It's filled with issues (spellings, etc.)  I thought it might be good to generate a list of suggestions similar to the auto-complete widget so someone could quickly identify likely matches without having to use import forms/process. so, "Andy username_1" would return "Andrew username_1", "Mr. and Mrs. Andrew username_1", etc. and the contact ID.  
  > **username_2**: Another approach would be to import remembering to tag the new contacts appropriately, then use the dupe merging facilities  
  > **username_0**: @username_2 - yes, but I think that would still require the subject matter expert to use the UI interactively - no?  Was hoping to present "likely" matches in a separate list.  I suppose this is an edge case anyway but thought someone may have tackled it before.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_3 on 2015-06-17. Score: 1
  
  Step 1 - Use a program to make your data consistent. There are lots of possibilities out there - try OpenRefine (open refine.org).
  
  Step 2 - once consistent, try to assign the contact.id (aka contact id, internal contact id) to a column. This will remove de-duplication issues
  
  Step 3 - Import
  
  Its really hard to have a script that finds inconsistencies, and they vary so much across data sets: some have all sorts of titles, others have improper address (street vs st vs str), etc. I find its almost always less time to invest in work before the import instead of counting/hoping on finding duplicates later.
  
  
  ---
  
  