Contact XML export
The export of contacts is primarily done when Voyado Engage is not the master or when the integrating system needs to have a fallback contact registry. These are the important points to remember about exporting contacts:
Only contacts of type Member can be exported
Each file can contain information for either one or many contacts
If there is no new information, no file will be exported
If an export contains more than 10 000 contacts it will be divided into several files
The schedule of the export can be configured as required
Contacts are exported incrementally as either new, updated and deleted
Note
If a contact is created and then modified within the same export interval then Engage will combine these steps and export it just once as a new contact but with the updated data.
Please read about file based integration before going any further!
Triggered exports
Any import that changes a contact's fields will automatically trigger an export. This can be suppressed by adding an attribute to your import XML. See the section about importing contacts by XML for more information.
Naming the export file
Exported files follow this naming convention: [timestamp]_[filenumber]_[filename].xml
timestamp is automatically formatted as: YYYYMMDDHHmmss
filenumber begins at 0. When that file contains 10 000 contacts, the next file is opened and filenumber increases by 1
filename is a string that can be changed per tenant, in the Engage back-end
Examples of exported files:
20190723144514_0_customers.xml
20190723144525_1_customers.xml
20230507181112_16_members.xml
FTP location for file exports
Contact exports are placed on the Voyado Engage FTP, which can be found here:
[base-ftp-url]/integration/customerExport
File example
The file topology follows the structure below but it is possible to do client-specific XSLT transformations. The specific fields used will be decided based on the needs of the project.
<contacts xmlns="http://eClub.Schemas.ExportMember"> <new> <member source="External system"> <firstName>Example</firstName> <lastName>Examplesson</lastName> <street>Examplegatan</street> <zipCode>12345</zipCode> <city>Examplestan</city> <email>example@example.com</email> <mobilePhone>+46739111111</mobilePhone> <countryCode>SE</countryCode> <socialSecurityNumber>198101010101</socialSecurityNumber> <nps.grade /> <nps.datetime /> <nps.averagegrade /> <gender /> <country>Sverige</country> <birthDay>1981-01-01</birthDay> <externalId>1000</externalId> <id>0f8e4b81-d07f-4740-91fd-214a497b1b13</id> <registrationDate>2021-05-17T11:55:45.0000000+02:00</registrationDate> <bonusPoints>0</bonusPoints> <contactPreferencesAcceptsEmail>true</contactPreferencesAcceptsEmail> <contactPreferencesAcceptsSms>true</contactPreferencesAcceptsSms> <contactPreferencesAcceptsPostal>true</contactPreferencesAcceptsPostal> <recruitedByStore> <storeId>00000000-0000-0000-0000-000000000000</storeId> <storeName>affär</storeName> <storeExternalId>1234</storeExternalId> </recruitedByStore> <currentStore> <storeId>00000000-0000-0000-0000-000000000000</storeId> <storeName>affär</storeName> <storeExternalId>1234</storeExternalId> </currentStore> </member> </new>
<modified> <member source="External system"> <firstName>Example</firstName> <lastName>Examplesson</lastName> <street>Examplegatan</street> <zipCode>12345</zipCode> <city>Examplestan</city> <email>example@example.com</email> <mobilePhone>+46739111111</mobilePhone> <countryCode>SE</countryCode> <socialSecurityNumber>198101010101</socialSecurityNumber> .......... </member> </modified>
............ <deleted> <member deletionReason="" source="External system"> <externalId>1001</externalId> <registrationDate>2016-09-28T00:00:00</registrationDate> <deletedOn /> <lastModifiedTime>2019-07-23T15:01:26.5371417+02:00</lastModifiedTime> <currentStore> <storeId>00000000-0000-0000-0000-000000000000</storeId> <storeName>affär</storeName> <storeExternalId>1234</storeExternalId> </currentStore> </member> </deleted> </contacts>
For the standard fields used, see the page Contact field definitions.