Importing and merging with MyHeritage


I’m using MyHeritage and gramps. I’d like to use gramps as my main storage of information. The ability to merge from others on MyHeritage is quite cool though. This led me to differing datasets in MyHeritage and gramps. I’m looking for ways to synchronize these.

I found that I can 1) export from MyHeritage and 2) import to gramps. This leads to a new gramps file. I can then 3) export the imported tree to a .gramps file. From the latter I can 4) import using the import and merge tool. This enables me to import persons, events etc.

When there is a person in the file to import I will have a duplicate person as it is not possible to connect it to an existing person of the same name (as far as I have seen).

With the 5) duplicate person finder I can then merge the two persons. The merge will combine all elements.

Then I would manually delete the duplicate events or other data in the merged persons.

It seems helpful to be able to

  1. match similar existing persons/items in 4.
    • show the persons/items subitems
    • be able to select the ones to import/keep

or as an inbetween step:

  1. In the duplicate person finder be able to select the data to merge, the remaining data could either be lost or stay with the person that would then not be deleted.

Regarding approach 1)

  • Matching of objects is done through their handle during import of the file. I don’t see matching in relation to names or other properties as done by the duplicate person finder. As far as I can see the handle of an item can not be changed inside gramps.

I suppose there are already some threads discussing similar issues. I’ll collect some here:


Trust level upgraded to ‘basic user’. You should be able to link as desired now. (Editing of original posting is allowed.)

1 Like

Hello Christoph,

First, a welcome message from The Netherlands. I see that you’re in Germany, so we’re sort of neighbours.

At this moment, we have no automatic merge, and you are right that handles can’t be modified. We have a merge utility that can compare two files that as one, like when you send a .gramps file to a relative, and then receive that file with modifications, but that doesn’t work with sites like Ancestry or My Heritage, which have their own handles. Synchronizing data with those is still a lot of work if you have a large tree.

Things may become a lot easier if you store the handles that these programs generate in attributes, like we already can do for the handles generated by programs like PAF, and persons downloaded from FramilySearch. And if you want, it is quite easy to import other handles too, assuming that My Heritage uses those. You could then create something similar to the current import & merge tool, based on those attributes instead of Gramp’ own handles.

Until then, it may be easier to use My Heritage as your main program, instead of Gramps. You will not have some of Gramps’ special features then, but it’s the fastest when you use My Heritage to collect lots of new persons.

1 Like

Hello @ennoborg !

Thank you for your kind reply. I have been working today on changing the ImportMerge Addon to try to see if I can get it do work as I want. So far I have added the functionality to look for a person with a similar name and a different handle to merge the data with (using some snippets from Seems to roughly work. I’ll try it for a bit and share when it’s worthy to share.


Hallo Christoph,

Me again. I ran a small test on My Heritage, and found that any person that I created there, by using the free matches, like the ones with WikiTree, got a _UID tag in the GEDCOM, and that tag is imported by Gramps.

This means that, like I know for other programs, you can use that as a handle to see whether a person has been imported earlier, and might have new data from My Heritage. And doing that may make the merge way easier, especially for persons that don’t have many other data to compate by.

I’m assuming that you will share things on GitHub, when ready.


1 Like

Hallo Enno,

thank you for the information!

I’m absolutely going to share my work on github when it makes sense. I need to take some further steps (until now I have matched persons and events) and clean up the code. That will take some days, I haven’t really worked with gtk/glade yet so it’s some trial and error, as well understanding gramps data model. Even if in the end it does not turn our usable I will have a better understanding of the program.

1 Like

@ennoborg in was für einem Feld würde man solche Extradaten speichern wie die UID in einem externen Programm (oder einen handle einer anderen gramps-Datenbank)? (oops, switched to german :slight_smile: )

There is a pull request for better UID support in Gramps with proposed UID class from @prculley

You could use an attribute with key “_UID” and the value is the UID.


When you import a GEDCOM from My Heritage, or a well known desktop program, the _UID will appear as an attribute in the Person object, just like Matthias suggested. There is no UID class in the current code, but you can retrieve the attribute by its key “_UID”.

Note that, when you merge persons with different _UID values, all values will be stored in the new person, so you can not count on the “_UID” key to be unique. Most other programs throw away one _UID on merging though.

Attributes (key value pairs) are stored as lists in the objects that they belong to, so you may need to build a UID dictionary for fast access.

1 Like