SyncForce Digital Asset XML structure
Via Connect.SyncForce.IO API
<DigitalAsset UDAI=”...” ReferenceNr=”12345” ChangeDate=”...” TypeId="1" SubTypeId="23">
<Translations>...</Translations>
<Keywords>...</Keywords>
<Files>...</Files>
<Segmentation>...</Segmentation>
<Attributes>...</Attributes>
</DigitalAsset>
<Translations>
<Translation Language="de" Label="Digital asset name in German" />
<Translation Language="en" Label="Digital asset name in English" />
</Translations>
The digital asset has a name which can have a translation in every content language configured for the customer.
<Keywords>
<Translations>
<Translation Language="de" Label="Keywords in German" />
<Translation Language="en" Label="Keywords in English" />
</Translations>
</Keywords>
The digital asset can have keywords which are entered in 1 keywords field. The person filling in these keywords can decide if the keywords are separated by a character (, or | for example) or not.
<Files>
<File Char="A" FileName="A0005604.jpg" SourceFileName="..." InitialSourceFileName="..." CID="a75af84c-eff5-482b-9fd0-8b50766c9284" Type="THUMBNAIL" ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="B" FileName="B0005604.jpg" SourceFileName="..." InitialSourceFileName="..." CID="d6de78ab-6e06-416a-93f5-d2d7177f12fc" Type="PREVIEW" ExpiryUrl =“...” BREF="gdsnLowres" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="C" FileName="C0005604.tif" SourceFileName="..." InitialSourceFileName="..." CID="cab23cea-570e-44d0-936a-404ad0679e38" Type="HIGHRESOLUTION" Url=”...” ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="D" FileName="D0005604.tif" SourceFileName="..." InitialSourceFileName="..." CID="beb1597d-bb78-47ac-a8c6-dbea2fa1a733" Type="OTHER" Url=”...” ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="E" FileName="E0005604.jpg" SourceFileName="..." InitialSourceFileName="..." CID="c81cc36b-7626-456c-a6f4-9db883788df3" Type="OTHER" Url="https://dataport.byzos.com/file/b65c0e73-1bd1-4e22-af7a-30783bf2c74b" ExpiryUrl =“...” BREF="gdsnHighres" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="X" FileName="X0005604.png" SourceFileName="..." InitialSourceFileName="..." CID="be595871-0dd4-42b4-8d42-ac8044f32275" Type="OTHER" Url=”...” ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="UL" FileName="Google Drive link" CID="b677b592-544e-434e-9d22-932c5c121470" Type="OTHER" Url="..." RevisionNr="1" BREF="..." ChangeDate="2025-01-12T14:45:00" />
</Files>
The ExpiryUrl always directs to the file on the Live environment, even when the Digital asset REST API endpoint is used on the Cloud environment. This is because the file itself is not synchronized to the Cloud environment and is only available on the Live environment.
However, when the digital asset is ONLY created on the Cloud environment and does not exist on the Live environment, the ExpiryURL is created with the identifier of the file from the Cloud database and referring to the file on the Live server. However, this digital asset is not available on the live server and thus will return a 404.
Or in the situation that on the Cloud environment, a digital asset has been created and in the meanwhile another digital asset has been created on the Live environment with the same identifier, the ExpiryUrl will give the file from the Live environment. This can be a different file than expected (because on Cloud it’s a different digital asset).
<Files>
<File Char="A" FileName="A0019567.png" SourceFileName="..." InitialSourceFileName="..." CID="..." Type="..." Url=”...” ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="B" FileName="B0019567.png" SourceFileName="..." InitialSourceFileName="..." CID="..." Type="..." Url=”...” ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”/>
<File Char="F" FileName="F0019567_0003.mp4" SourceFileName="..." InitialSourceFileName="..." CID="..." Type="..." Url=”...” ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”>
<Video Url="https://youtu.be/LrpovYbUM_I" EmbedCode="<iframe width="560" height="315" src="https://www.youtube.com/embed/LrpovYbUM_I" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>" />
<Languages>
<LanguageCode="en"/>
</Languages>
<Countries>
<CountryCode="NL"/>
</Countries>
</File>
<File Char="F" FileName="F0019567_0001.pdf" SourceFileName="..." InitialSourceFileName="..." CID="..." Type="..." Url=”...” ExpiryUrl =“...” BREF="" ChangeDate=”2022-04-12T14:45:00” RevisionNr=”2”>
<Video Url="..." EmbedCode="..." />
<Languages>
<LanguageCode="nl"/>
</Languages>
<Countries>
<CountryCode="NL"/>
</Countries>
</File>
<File Char="UL" FileName="Google Drive link" CID="b677b592-544e-434e-9d22-932c5c121470" Type="OTHER" Url="..." RevisionNr="1" BREF="..." ChangeDate="2025-01-12T14:45:00" />
</Files>
The ‘SourceFileName’ is the filename of the file which is uploaded for this file revision. The ‘InitialSourceFileName’ is the filename of the file which was the first file revision for this file type and localization (if applicable).
The same text regarding the ExpiryUrl as available in this paragraph applies here as well.
All digital asset files, ordered in the ‘file type’ sort index configured for the SyncForce customer.
A digital asset can have multiple files. For example the thumbnail (max 128 x 128 px) and preview files (max 350 x 350 px), the full size high resolution file and a website specific PNG file.
A digital asset file is revisioned. So everytime a new file is uploaded, the file gets a new revision. The digital asset endpoint always outputs the latest file revision. Use the digital asset ChangeDate to know if the digital asset metadata has been updated or the files have been updated.
Every individual file also has a ChangeDate which indicates a new file revision and that the file needs to be downloaded again from SyncForce.
Per digital asset file:
<Segmentation>
<TargetGroups>
<TargetGroup Id="2021" Name="User group A" FromDate="1901-01-01T00:00:00" UntilDate="9999-09-09T00:00:00" />
<TargetGroup Id="..." Name="..." FromDate="..." UntilDate="..." />
</TargetGroups>
<Brands>
<Brand BrandName="Brand X" GBIN="1234567890" OwnerName="SyncForce" OwnerGLN="2345678901" Reference="" />
</Brands>
<Markets>
<Market Id=”3” Name="Netherlands" Reference="528">
<Languages>
<Language LanguageCode="en" />
<Language LanguageCode="nl" />
</Languages>
</Market>
<Market Id=”2”Name="United Kingdom" Reference="826">
<Languages>
<Language LanguageCode="en" />
</Languages>
</Market>
</Markets>
</Segmentation>
The availability of an item specified per:
<Attributes>
<Units>
<Unit Id=”3” UnitBefore=”False”>
<Translations>
<Translation Language=”en” Label=”mm” />
<Translation Language=”nl” Label=”mm” />
</Translations>
</Unit>
</Units>
<Attribute Id=”5” Type=”String”>
<Translations>
<Translation Language=”en” Label=”GTIN” />
<Translation Language=”nl” Label=”GTIN” />
</Translations>
<Values>
<Value Content=”4020500988888”>
<Translations>
<Translation Language=”en” Label=”4020500988888” />
<Translation Language=”nl” Label=”4020500988888” />
</Translations>
</Value>
</Values>
</Attribute>
<Attribute Id=”6” Type=”Integer”>
<Translations>
<Translation Language="en" Label="Offset" />
<Translation Language="nl" Label="Afstand" />
</Translations>
<Values>
<Value UnitId="3" Content="22" />
</Values>
</Attribute>
</Attributes>
Digital assets can have attributes assigned. Which attributes are available for a digital asset is defined per digital asset type. The REST API output contains all digital asset attributes which are available for the digital asset based on its digital asset type. This is regardless of whether there is a value for this attribute.
-