Answers.Body: <p>The "normal" import tools tend to focus on a single entity (contact, contribution membership, participants...) indeed, so as you identified, it needs several separate imports and trying to find some common keys so civi knows how to link them</p>
  
  <p>If you have complex/composite structures to import, it might be easier to write a simple php script that calls all the needed apis to create the entities. If you are familiar with php and the civicrm apis, it might be simplier (and it makes it way easier to "replay" the import)</p>
  
  <p>good luck!</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-04-09T08:05:17.037Z
Answers.Text: thanks Xavier! The TBS (tears, blood and sweat) extension will do the job!
Answers.UserDisplayName: Guillaume Sorel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-04-08T14:12:19.690Z
Answers.LastActivityDate: 2020-04-08T14:12:19.690Z
Answers.UserDisplayName: Xavier
Answers.Body: <p>Just noting that in 2024 the contribution import DOES support creating / updating contacts (as long as you have the core civi-import extension enabled)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-04-24T06:54:22.027Z
Answers.Text: such a long way already!
Answers.UserDisplayName: Guillaume Sorel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-04-22T22:28:22.127Z
Answers.LastActivityDate: 2024-04-22T22:28:22.127Z
Answers.UserDisplayName: eileen
Body: <p>I need to import from an external database 1500 contacts with their memberships and contributions. </p>
  
  <p>Everything I read about it in Stackexchange was written between 2015 and 2017. </p>
  
  <p>Is the following still up-to-date?</p>
  
  <ul>
  <li>I can't import everything within a single .csv file, CiviCRM is not build this way</li>
  <li>It takes 3 steps:
  
  <ol>
  <li>import contacts with external id connection prevents to look up for contact ID within Civicrm</li>
  <li>import memberships with external id field</li>
  <li>import contributions with the proper membership_type</li>
  </ol></li>
  <li>Using CSVimporter is the proper tool</li>
  </ul>
  
  <p>Should I do this way or do is there a quicker way?</p>
  
  <p>best regards,</p>
  
  <p>Guillaume</p>
  
Tags: <import>
Title: (UPDATE 2024) Importing Contacts, Memberships and Contributions in 2020
ThreadText: # (UPDATE 2024) Importing Contacts, Memberships and Contributions in 2020
  
  (Asked by: username_0 on 2020-04-08)
  
  I need to import from an external database 1500 contacts with their memberships and contributions.
  
  Everything I read about it in Stackexchange was written between 2015 and 2017.
  
  Is the following still up-to-date?
  
  * I can't import everything within a single .csv file, CiviCRM is not build this way
  * It takes 3 steps:
    1. import contacts with external id connection prevents to look up for contact ID within Civicrm
    2. import memberships with external id field
    3. import contributions with the proper membership\_type
  * Using CSVimporter is the proper tool
  
  Should I do this way or do is there a quicker way?
  
  best regards,
  
  Guillaume
  
  **Tags:** import
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2024-04-22. Score: 3 | Accepted answer
  
  Just noting that in 2024 the contribution import DOES support creating / updating contacts (as long as you have the core civi-import extension enabled)
  
  > **Comments:**
  > **username_0**: such a long way already!  
  
  ---
  
  ### Answer by username_1 on 2020-04-08. Score: 2
  
  The "normal" import tools tend to focus on a single entity (contact, contribution membership, participants...) indeed, so as you identified, it needs several separate imports and trying to find some common keys so civi knows how to link them
  
  If you have complex/composite structures to import, it might be easier to write a simple php script that calls all the needed apis to create the entities. If you are familiar with php and the civicrm apis, it might be simplier (and it makes it way easier to "replay" the import)
  
  good luck!
  
  > **Comments:**
  > **username_0**: thanks username_1! The TBS (tears, blood and sweat) extension will do the job!  
  
  ---
  
  