DataBridge XML File import

Last update:
Created :
Written by Thomas Speekenbrink

Overview:

With Nebula DataBridge it is possible to import XML files into SuperOffice CRM Online.
Want to know what other types of files are supported, please visit our System Requirements page

How to:

In the Configure Profile page in your profile you can upload your XML file. In the Configure Source page you can set what text encoding is used in your file. A preview is also shown at the bottom of the screen.

What does a well formated XML look like (this example is also attached to this article)

<?xml version="1.0" encoding="UTF-8"?>
<contacts>
      <contact>
            <firstname>John</firstname>
            <lastname>Doe</lastname>
            <phone>0123456789</phone>
            <email>johndoe@mail.com</email>
      </contact>
      <contact>
            <firstname>John</firstname>
            <lastname>Doe</lastname>
            <phone>9876543210</phone>
            <email>janedoe@mail.com</email>
      </contact>
</contacts>

 

The rules for a succesful XML import are:

Rule 1: The file must have a valid XML format (including DTD (Document Type Definition)).
XML validity can be checked here for instance : https://www.xmlvalidation.com/

Rule 2: The records to be imported must be a collection of nodes directly included in the root node.

<?xml version="1.0" encoding="UTF-8"?>
<company>
      <contacts>
            <contact> <!-- not a direct node of root node company, won’t be imported -->
                  <name>John Doe</name>
                  <phone>0123456789</phone>
                  <email>johndoe@mail.com</email>
            </contact>
      </contacts>
</company>

 

Rule 3: The name of the root node doesn’t matter, neither does the name of the record nodes but a node on the same level with a different name from the first record node will be ignored.

 <contacts>
      <contact>
            <name>John Doe</name>
            <phone>0123456789</phone>
            <email>johndoe@mail.com</email>
      </contact>
      <company> <!-- name is different from the first node, won’t be imported -->
            <name>Example Inc.</name>
      </company>
</contacts>

 

Rule 4: The properties of each record are retrieved from the nodes directly included in each record node, with the name of the node as the name of the property and the content of the node as its value. The content of the node must be directly text, inner nodes will be ignored.

<contacts>
      <contact id="123"> <!-- attributes are ignored -->
            <name>John Doe</name>
            <address>
                  <!-- node has no direct text content, address property will be empty -->
                  <street>123 Example Street</street>
                  <city>Cityville</city>
            </address>
      </contact>
</contacts>

 

Rule 5: All the properties that need to be imported must appear in the first record node, even if they have no value for this record. Any additional property in subsequent record nodes would be ignored. 

<contacts>
      <contact>
            <name>John Doe</name>
            <email />
      </contact>
      <contact>
            <name>Jane Doe</name>
            <email>janedoe@mail.com</email>
            <birthdate>1990-01-01</birthdate> <!-- no birthdate node in first contact node, property cannot be mapped -->
      </contact>
</contacts>

 

Rule 6: Each property must appear only once per record node. Only the first property node among multiple nodes with identical names will be considered.

<contacts>
      <contact>
            <name>John Doe</name>
            <phone>0123456789</phone>
            <phone>0102030405</phone> <!-- node named phone already appeared, only first phone number will be imported -->
            <email>johndoe@mail.com</email>
      </contact>
</contacts>