Skip to main content
Skip table of contents

Emplifi Ratings & Reviews UGC Feed

User-generated content (sometimes known as UGC or customer-generated content) in Emplifi Ratings & Reviews consists of questions, answers, replies, comments, and reviews on the items in your catalog.

Adding the unique content that Emplifi Ratings & Reviews generates helps with search engine optimization.

In the Emplifi Ratings & Reviews UGC Feed, reviews, review responses, answers and replies written by staff or staff experts include badge information when available.

You can insert this content into your pages. There may be SEO benefits from displaying this content on your item pages.

Getting user-generated content

Emplifi Ratings & Reviews offers XML or JSON feeds to get the user-generated content for your items. Contact your Emplifi Customer Success Manager to activate the XML or JSON feed.

  • siteKey
    The public identifier for your site. It is used on your webpage to display the Ratings & Reviews widget. It is also used anywhere that Emplifi Ratings & Reviews needs to identify that the request is from your site.

  • authKey
    The private key that you will use for communicating with the TurnTo API for Emplifi Ratings & Reviews to transfer feeds.

When a call is made to the API to transfer a feed, both the siteKey and the authKey are required.

Including order information

Emplifi Ratings & Reviews can provide order details, like the order ID and the date that the Review Solicitation Email (RSE) was sent, in the UGC Feed. Contact Emplifi Support to include order data for the Emplifi Ratings & Reviews UGC feed.

Including order details in the Emplifi Ratings & Reviews UGC feed can cause the processing of the feed to take longer.

URLs for XML and JSON feeds containing user-generated content

The server call URL is: https://static.www.turnto.com

For content for just one item based on SKU, the URL syntax is:

  • XML: https://static.www.turnto.com/sitedata/YOUR SITE KEY/YOUR ITEM SKU/d/exportxml/YOUR AUTH KEY

  • JSON: https://static.www.turnto.com/sitedata/YOUR SITE KEY/YOUR ITEM SKU/d/exportjson/YOUR AUTH KEY

For all content for your site (which can be a very large file), the URL syntax is:

  • XML: https://export.turnto.com/YOUR SITE KEY/YOUR AUTH KEY/turnto-ugc.xml

  • JSON: https://export.turnto.com/YOUR SITE KEY/YOUR AUTH KEY/turnto-ugc.js

Example of using PHP to insert content on your item page

The following example uses PHP to insert content on your item page:

PHP
<?php

$content = getPage("https://static.www.turnto.com/sitedata/YOUR SITE KEY/YOUR ITEM SKU/d/exportxml/YOUR AUTH KEY");

$xml = new SimpleXMLElement($content);

/* display questions, answers and replies */
foreach ($xml->questions->question as $question) {
    echo 'Question:', $question->text, '<br/>', PHP_EOL;

    foreach ($question->answer as $answer) {
        echo ' -- Answer:', $answer->text, '<br/>', PHP_EOL;

        foreach ($answer->reply as $reply) {
            echo ' ---- Reply:', $reply->text, '<br/>', PHP_EOL;
        }
    }
}

/* display comments */
foreach ($xml->comments->comment as $comment) {
    echo 'Comment:', $comment->text, '<br/>', PHP_EOL;
}

function getPage($url = "https://www.example.com/")
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $html = curl_exec($ch);
    if ($html == false) {
        $m = curl_error(($ch));
        error_log($m);
    }
    curl_close($ch);
    return $html;
}

?>

Sample files

For your reference, the following is a sample of the Emplifi Ratings & Reviews UGC feed in XML and JSON format. There are also XSD and JSON files that define the format.

Emplifi Ratings & Reviews UGC feed in XML format (sample)

userContentSampleXml.xml
XML
<userContent xmlns="http://www.turnto.com/userContent" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.turnto.com/userContent http://www.turnto.com/schema/userContent.xsd" site="Seattle Sunglass - v4.3 test" dateCreated="2018-03-22T12:49:46+00:00" incremental="false">
	<questions>
		<question id="SEYMY0gf">
			<!-- string version of the question ID in TT DB -->
			<id>268900</id>
			<!-- Raw Numeric version of the question ID in TT DB -->
			<userAuthToken>JRg0onYOnB-ZIl0L1OiURAI5eQqBk3ZT</userAuthToken>
			<!-- Auth token for user if the site is using SSO -->
			<firstName>Jehan</firstName>
			<lastName>Jaleel</lastName>
			<nickName/>
			<ageRange>35-40</ageRange>
			<location>
				<city>Hebron</city>
				<state>MD</state>
				<country>US</country>
			</location>
			<item>
				<sku>088989198529</sku>
				<title>Jennifer Lawrence Mug</title>
				<brand/>
				<questionCount>99</questionCount>
				<answerCount>136</answerCount>
				<reviewCount>207</reviewCount>
				<commentCount>77</commentCount>
				<averageRating>3.89</averageRating>
			</item>
			<text>Would Jennifer go out with me if I bought this mug?</text>
			<tags/>
			<dateTime>2018-03-05T18:58:11+0000</dateTime>
			<answer>
				<id>468932</id>
				<user>
					<firstName>Jennifer</firstName>
					<lastName>Lawrence</lastName>
					<nickName>JLaw</nickName>
					<expert>true</expert>
					<ageRange>25-30</ageRange>
					<location>
						<city>Los Angeles</city>
						<state>CA</state>
						<country>US</country>
					</location>
				</user>
				<text>For you Jehan, I think it will.</text>
				<tags/>
				<dateTime>2018-03-05T20:23:26+0000</dateTime>
				<reply>
					<id>2343</id>
					<user>
						<firstName>Natalie</firstName>
						<lastName>Rushman</lastName>
						<staff>true</staff>
						<nickName/>
						<ageRange/>
						<location>
							<city/>
							<state/>
							<country/>
						</location>
					</user>
					<text>Thank you Jennifer for your answer to our community</text>
					<dateTime>2018-03-05T18:58:11+0000</dateTime>
				</reply>
			</answer>
			<answer>
				<id>468931</id>
				<user>
					<firstName>isgnpq</firstName>
					<lastName>isgnpqLast</lastName>
					<nickName/>
					<ageRange/>
					<location>
						<city/>
						<state/>
						<country/>
					</location>
				</user>
				<text>In your dreams.</text>
				<tags/>
				<dateTime>2018-03-05T19:03:59+0000</dateTime>
			</answer>
		</question>
		<question id="SEYMYkEW">
			<id>268899</id>
			<item>
				<sku>700285064895</sku>
				<title>Oakley Juliet Accessory Kit - Black</title>
				<brand/>
				<questionCount>1</questionCount>
				<answerCount>0</answerCount>
				<reviewCount>4</reviewCount>
				<commentCount>0</commentCount>
				<averageRating>5</averageRating>
			</item>
			<text>I have to ask a question for this page?</text>
			<tags/>
			<dateTime>2018-03-01T21:12:36+0000</dateTime>
		</question>
		<question id="SEYMYkEX">
			<id>268898</id>
			<firstName>Moderator</firstName>
			<lastName>Moderator</lastName>
			<nickName>Moderator</nickName>
			<ageRange/>
			<location>
				<city/>
				<state/>
				<country/>
			</location>
			<item>
				<sku>maui-jim-brown-sport-case</sku>
				<title>Maui Jim Sport Case - Brown</title>
				<brand/>
				<questionCount>1</questionCount>
				<answerCount>0</answerCount>
				<reviewCount>1</reviewCount>
				<commentCount>0</commentCount>
				<averageRating>2</averageRating>
			</item>
			<text>Does this work before i authenticate this user?</text>
			<tags/>
			<dateTime>2018-02-27T18:32:31+0000</dateTime>
		</question>
	</questions>
	<comments>
		<comment>
			<id>877737</id>
			<user>
				<firstName>qdrgbnxn</firstName>
				<lastName>qdrgbnxnLast</lastName>
				<nickName/>
				<ageRange/>
				<location>
					<city/>
					<state/>
					<country/>
				</location>
			</user>
			<item>
				<sku>088989198529</sku>
				<title>Croakies Sport Eyewear Retainer</title>
				<brand/>
				<questionCount>99</questionCount>
				<answerCount>136</answerCount>
				<reviewCount>207</reviewCount>
				<commentCount>77</commentCount>
				<averageRating>3.89</averageRating>
			</item>
			<text>Id like to see lots of review solicitation emails come from this transaction.</text>
			<tags>
				<tag>
					<code>SOT</code>
				</tag>
			</tags>
			<dateTime>2018-03-12T17:50:27+0000</dateTime>
		</comment>
	</comments>
	<reviews>
		<review id="QkEMaEA">
			<id>81828</id>
			<user>
				<firstName>jehan</firstName>
				<lastName>jaleel</lastName>
				<nickName>emmawatsonfan</nickName>
				<ageRange/>
				<location>
					<city>Hebron</city>
					<state>MD</state>
					<country>US</country>
				</location>
				<customProfileDimensions>
					<customProfileDimension>
						<type>Range</type>
						<name>Width</name>
						<label>Width</label>
						<id>3453454</id>
						<valueLabel>Spot on</valueLabel>
					</customProfileDimension>
					<customProfileDimension>
						<type>Freeform Text</type>
						<name>CoffeeDrinkTimes</name>
						<label>CoffeeDrinkTimes</label>
						<freeformText>All the time</freeformText>
					</customProfileDimension>
				</customProfileDimensions>
			</user>
			<item>
				<sku>elcnel1014a</sku>
				<title>Emma Watson Smile Ceramic Coffee Mug</title>
				<brand>EmmaQuality</brand>
				<questionCount>6</questionCount>
				<answerCount>9</answerCount>
				<reviewCount>34</reviewCount>
				<commentCount>0</commentCount>
				<averageRating>4.15</averageRating>
			</item>
			<title>Great mug</title>
			<text>This is a great coffee mug, it is strong and sturdy, and I always feed my coffee taste better from a ceremaic mug rather than a plastic cup, please it is more green. The photo of Emma which surrounds the mug is also great, now I can see her lovely smile and beauitufl eyes while I enjoy my morning coffee.</text>
			<rating>5</rating>
			<upVotes>3</upVotes>
			<downVotes>0</downVotes>
			<externalOrderId>12976195651</externalOrderId>
			<locale>en_US</locale>
			<published>true</published>
			<publishedDate>2018-03-21T22:01:02+0000</publishedDate>
			<tags/>
			<dateTime>2015-05-03T00:00:00+0000</dateTime>
			<customDimensions>
				<customDimension>
					<type>Range</type>
					<name>Fit5</name>
					<label>Fit</label>
					<customDimensionValue>
						<id>11</id>
						<sortOrder>2</sortOrder>
						<label>True to Size</label>
					</customDimensionValue>
				</customDimension>
			</customDimensions>
			<syndication>
				<name>caseteesmug</name>
				<logo>https://wac.edgecastcdn.net/001A39/prod/site/syndicationlogos/662_LH48.png</logo>
				<url>https://caseteesmug.com</url>
			</syndication>
			<incentivized>false</incentivized>
			<media type="photo">
				<url>https://www.thefamouspeople.com/profiles/thumbs/emma-watson-3.jpg</url>
				<caption>Oh yeah!</caption>
			</media>
			<responses>
				<response>
					<text>Thank you for your review, we love Emma too.</text>
					<locale>en_US</locale>
					<dateCreated>2018-04-03T16:06:12</dateCreated>
					<user>
						<firstName>Joe</firstName>
						<lastName>Smith</lastName>
						<nickName>Joey</nickName>
						<ageRange>23-31</ageRange>
						<location>
							<city>Salisbury</city>
							<state>MD</state>
							<country>USA</country>
						</location>
					</user>
				</response>
			</responses>
		</review>
		<review id="QkMF">
			<id>831</id>
			<user>
				<firstName>Pat</firstName>
				<lastName>Sample</lastName>
				<nickName/>
				<ageRange/>
				<location>
					<city/>
					<state/>
					<country/>
				</location>
				<customProfileDimensions/>
			</user>
			<item>
				<sku>100320</sku>
				<title>\Jockey\ By Sportiqe Long Sleeve Raglan\</title>
				<brand>Jockey</brand>
				<questionCount>0</questionCount>
				<answerCount>0</answerCount>
				<reviewCount>2</reviewCount>
				<commentCount>0</commentCount>
				<averageRating>4</averageRating>
			</item>
			<title>Will this get auto moderated?</title>
			<text>Will this get auto moderated? Will this get auto moderated? Will this get auto moderated? Will this get auto moderated? It should be hidden with a tag.</text>
			<rating>4</rating>
			<upVotes>0</upVotes>
			<downVotes>0</downVotes>
			<locale>en_US</locale>
			<published>true</published>
			<publishedDate>2018-03-21T22:01:02+0000</publishedDate>
			<tags/>
			<dateTime>2018-03-21T18:01:02+0000</dateTime>
			<customDimensions/>
			<incentivized>false</incentivized>
		</review>
	</reviews>
</userContent>

Emplifi Ratings & Reviews UGC feed in JSON format (sample)

userContentSampleJSON.txt
JSON
{
  "exportStart": "complete",
  "site": "Seattle Sunglass - v4.3 test",
  "dateCreated": "2018-03-22T14:22:57+00:00",
  "questions": [{
    "id": 268900,
    "firstName": "Jehan",
    "lastName": "Jaleel",
    "nickName": "JJ",
    "ageRange": "23-40",
    "location": {
      "city": "Hebron",
      "state": "MD",
      "country": "US"
    },
    "item": {
      "sku": "088989198529",
      "brand": "",
      "title": "Jennifer Lawrence Mug",
      "questionCount": 99,
      "answerCount": 136,
      "reviewCount": 207,
      "commentCount": 77,
      "averageRating": 3.89
    },
    "text": "Would Jennifer go out with me if I bought this mug?",
    "tags": null,
    "dateTime": "2018-03-05T18:58:11+0000",
    "answers": [{
      "id": 468932,
      "user": {
        "firstName": "Jennifer",
        "lastName": "Lawrence",
        "nickName": "Jlaw",
        "ageRange": null,
        "expert": true,
        "location": {
          "city": "Beverly Hills",
          "state": "CA",
          "country": "USA"
        }
      },
      "text": "For you Jehan, I think it will",
      "tags": null,
      "dateTime": "2018-03-05T20:23:26+0000",
      "replies": [{
        "id": 23434,
        "user": {
          "firstName": "Natalie",
          "lastName": "Rushman",
          "nickName": null,
          "location": "Salisbury,MD,USA",
          "staff": true
        },
        "text": "Thank you Jennifer for your answer to our community",
        "dateTime": "2018-03-05T18:58:11+0000"
      }]
    }]
  }],
  "comments": [{
      "id": 877737,
      "user": {
        "firstName": "Jehan",
        "lastName": "Jaleel",
        "nickName": null
      },
      "item": {
        "sku": "088989198529",
        "brand": "",
        "title": "Croakies Sport Eyewear",
        "questionCount": 99,
        "answerCount": 136,
        "reviewCount": 207,
        "commentCount": 77,
        "averageRating": 3.89
      },
      "text": "Needed some sunglasses for driving",
      "tags": [
        "SOT"
      ],
      "dateTime": "2018-03-12T17:50:27+0000"
    },
    {
      "id": 877736,
      "user": {
        "firstName": "Jenny",
        "lastName": "McArthy",
        "nickName": null
      },
      "item": {
        "sku": "700285064826",
        "brand": "",
        "title": "Oakley XX Frame Accessory Kit - Black",
        "questionCount": 1,
        "answerCount": 1,
        "reviewCount": 1,
        "commentCount": 4,
        "averageRating": 5
      },
      "text": "I think I will use this in the future.",
      "tags": null,
      "dateTime": "2018-03-12T17:49:10+0000"
    }
  ],
  "reviews": [{
    "id": 832,
    "user": {
      "firstName": "jehan",
      "lastName": "jaleel",
      "nickName": null,
      "ageRange": null,
      "location": {
        "city": "Hebron",
        "state": "MD",
        "country": "USA"
      },
      "customProfileDimensions": [{
        "type": "Range",
        "name": "CoffeDrinker",
        "label": "CoffeDrinker",
        "valueLabel": "Avid"
      }]
    },
    "item": {
      "sku": "elcnel1014a",
      "brand": "EmmaQuality",
      "title": "Emma Watson Smile Ceramic Coffee Mug",
      "questionCount": 0,
      "answerCount": 0,
      "reviewCount": 1,
      "commentCount": 0,
      "averageRating": 5
    },
    "title": "Great mug",
    "text": "This is a great coffee mug, it is strong and sturdy, and I always feed my coffee taste better from a ceremaic mug rather than a plastic cup, please it is more green. The photo of Emma which surrounds the mug is also great, now I can see her lovely smile and beauitufl eyes while I enjoy my morning coffee.",
    "rating": 5,
    "upVotes": 0,
    "downVotes": 0,
    "locale": "en_US",
    "published": "true",
    "publishedDate": "2018-03-21T22:57:04+0000",
    "tags": null,
    "solicitationEmailDate": "",
    "externalOrderId": "990005025",
    "dateTime": "2018-03-21T18:57:05+0000",
    "customDimensions": [{
      "type": "Range",
      "name": "Fit",
      "label": "Fit",
      "customDimensionValue": {
        "sortOrder": 2,
        "label": "True to Size"
      }
    }],
    "incentivized": false,
    "media": [{
        "type": "photo",
        "url": "https://www.thefamouspeople.com/profiles/thumbs/emma-watson-3.jpg",
        "caption": "Yeah!"
      },
      {
        "type": "video",
        "url": "https://www.youtube.com/watch?v=bxMiLwA3qQ4",
        "caption": "Yeah!"
      }
    ]
  }]
}

Feed definition: JSON file

userContent.schema.json
JSON
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://www.turnto.com/userContent.schema.json",
  "title": "User Generated Content",
  "type": "object",
  "additionalProperties": false,
  "definitions": {
    "dateTime": {
      "$id": "#/definitions/dateTime",
      "description": "accepts either a yyyy-MM-dd'T'HH:mm:ssZ date format or an empty string",
      "type": "string",
      "oneOf": [
        {
          "pattern": "[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]"
        },
        {
          "pattern": "^$"
        }
      ]
    },
    "question": {
      "$id": "#/definitions/question",
      "type": "object",
      "required": [
        "id"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "$id": "#/definitions/question/properties/id",
          "type": "integer",
          "minimum": 0
        },
        "firstName": {
          "$id": "#/definitions/question/properties/firstName",
          "type": "string"
        },
        "lastName": {
          "$id": "#/definitions/question/properties/lastName",
          "type": "string"
        },
        "nickName": {
          "$id": "#/definitions/question/properties/nickName",
          "oneOf": [
            {
                "type": "null"
            },
            {
                "type": "string"
            }
          ]
        },
        "ageRange": {
          "$id": "#/definitions/question/properties/ageRange",
          "oneOf": [
            {
                "type": "null"
            },
            {
                "type": "string"
            }
          ]
        },
        "location": {
          "$ref": "#/definitions/location"
        },
        "item": {
          "$ref": "#/definitions/item"
        },
        "text": {
          "$id": "#/definitions/question/properties/text",
          "type": "string"
        },
        "tags": {
          "$ref": "#/definitions/tags"
        },
        "dateTime": {
          "$ref": "#/definitions/dateTime"
        },
        "answers": {
          "$id": "#/properties/questions/answers",
          "type": "array",
          "minItems": 0,
          "items": {
            "$ref": "#/definitions/answer"
          }
        }
      }
    },
    "answer": {
      "$id": "#/definitions/answer",
      "type": "object",
      "required": [
        "id",
        "text"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "$id": "#/definitions/answer/properties/id",
          "type": "integer",
          "minimum": 0
        },
        "user": {
          "$ref": "#/definitions/user"
        },
        "text": {
          "$id": "#/definitions/answer/properties/text",
          "type": "string"
        },
        "tags": {
          "$ref": "#/definitions/tags"
        },
        "dateTime": {
          "$ref": "#/definitions/dateTime"
        },
        "replies": {
          "$id": "#/definitions/answer/properties/replies",
          "type": "array",
          "minItems": 0,
          "items": {
            "$ref": "#/definitions/reply"
          }
        }
      }
    },
    "reply": {
      "$id": "#/definitions/reply",
      "type": "object",
      "required": [
        "id"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "$id": "#/definitions/reply/properties/id",
          "type": "integer",
          "minimum": 0
        },
        "user": {
          "$ref": "#/definitions/user"
        },
        "text": {
          "$id": "#/definitions/reply/properties/text",
          "type": "string"
        },
        "dateTime": {
          "$ref": "#/definitions/dateTime"
        }
      }
    },
    "comment": {
      "$id": "#/definitions/comment",
      "type": "object",
      "required": [
        "id",
        "text"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "$id": "#/definitions/comment/properties/id",
          "type": "integer",
          "minimum": 0
        },
        "user": {
          "$ref": "#/definitions/user"
        },
        "item": {
          "$ref": "#/definitions/item"
        },
        "text": {
          "$id": "#/definitions/comment/properties/text",
          "type": "string"
        },
        "tags": {
          "$ref": "#/definitions/tags"
        },
        "dateTime": {
          "$ref": "#/definitions/dateTime"
        }
      }
    },
    "review": {
      "$id": "#/definitions/review",
      "type": "object",
      "required": [
        "id",
        "text"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "$id": "#/definitions/review/properties/id",
          "type": "integer",
          "minimum": 0
        },
        "user": {
          "$ref": "#/definitions/user"
        },
        "item": {
          "$ref": "#/definitions/item"
        },
        "rating": {
          "$id": "#/definitions/review/properties/rating",
          "type": "integer",
          "minimum": 1,
          "maximum": 5
        },
        "title": {
          "$id": "#/definitions/review/properties/title",
          "oneOf": [
            {
                "type": "null"
            },
            {
                "type": "string"
            }
          ]
        },
        "text": {
          "$id": "#/definitions/review/properties/text",
          "oneOf": [
            {
                "type": "null"
            },
            {
                "type": "string"
            }
          ]
        },
        "tags": {
          "$ref": "#/definitions/tags"
        },
        "upVotes": {
          "$id": "#/definitions/review/properties/upVotes",
          "type": "integer",
          "minimum": 0
        },
        "downVotes": {
          "$id": "#/definitions/review/properties/downVotes",
          "type": "integer",
          "minimum": 0
        },
        "locale": {
          "$id": "#/definitions/review/properties/locale",
          "type": "string"
        },
        "published": {
          "$id": "#/definitions/review/properties/published",
          "enum": [
            "true",
            "false"
          ]
        },
        "publishedDate": {
          "$ref": "#/definitions/dateTime"
        },
        "solicitationEmailDate": {
          "$ref": "#/definitions/dateTime"
        },
        "externalOrderId": {
          "$id": "#/definitions/review/properties/externalOrderId",
          "type": "string"
        },
        "customDimensions": {
          "$id": "#/definitions/review/properties/customDimensions",
          "type": "array",
          "items": {
            "$id": "#/definitions/review/properties/customDimensions/items",
            "type": "object",
            "required": [
              "type",
              "name",
              "label",
              "customDimensionValue"
            ],
            "additionalProperties": false,
            "properties": {
              "type": {
                "$id": "#/definitions/review/properties/customDimensions/items/properties/type",
                "type": "string",
                "enum": [
                  "Rating",
                  "Range"
                ]
              },
              "name": {
                "$id": "#/definitions/review/properties/customDimensions/items/properties/name",
                "type": "string"
              },
              "label": {
                "$id": "#/definitions/review/properties/customDimensions/items/properties/label",
                "type": "string"
              },
              "customDimensionValue": {
                "$id": "#/definitions/review/properties/customDimensions/items/customDimensionValue",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "sortOrder": {
                    "$id": "#/definitions/review/properties/customDimensions/items/properties/customDimensionValue/properties/sortOrder",
                    "type": "number",
                    "minimum": 0
                  },
                  "value": {
                    "$id": "#/definitions/review/properties/customDimensions/items/properties/customDimensionValue/properties/value",
                    "type": "integer"
                  },
                  "label": {
                    "$id": "#/definitions/review/properties/customDimensions/items/properties/customDimensionValue/properties/label",
                    "oneOf": [
                      {
                        "type": "array"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "incentivized": {
          "$id": "#/definitions/review/properties/incentivized",
          "type": "boolean"
        },
        "media": {
          "$id": "#/definitions/review/properties/media",
          "type": "array",
          "items": {
            "$id": "#/definitions/review/properties/media/items",
            "type": "object",
            "required": [
              "type",
              "url"
            ],
            "additionalProperties": false,
            "properties": {
              "type": {
                "$id": "#/definitions/review/properties/media/items/properties/type",
                "type": "string",
                "enum": [
                  "photo",
                  "video"
                ]
              },
              "url": {
                "$id": "#/definitions/review/properties/media/items/properties/url",
                "type": "string"
              },
              "caption": {
                "$id": "#/definitions/review/properties/media/items/properties/caption",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "$id": "#/definitions/review/properties/responses",
          "type": "array",
          "items": {
            "$id": "#/definitions/review/properties/responses/items",
            "type": "object",
            "required": [
              "text",
              "user"
            ],
            "additionalProperties": false,
            "properties": {
              "text": {
                "id": "/definitions/review/properties/responses/properties/text",
                "type": "string"
              },
              "locale": {
                "id": "/definitions/review/properties/responses/properties/locale",
                "type": "string"
              },
              "dateCreated": {
                "$ref": "#/definitions/dateTime"
              },
              "user": {
                "$ref": "#/definitions/user"
              }
            }
          }
        },
        "dateTime": {
          "$ref": "#/definitions/dateTime"
        }
      }
    },
    "location": {
      "$id": "#/definitions/location",
      "type": "object",
      "required": [
        "city",
        "state",
        "country"
      ],
      "additionalProperties": false,
      "properties": {
        "city": {
          "$id": "#/definitions/location/properties/city",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "state": {
          "$id": "#/definitions/location/properties/state",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "country": {
          "$id": "#/definitions/location/properties/country",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        }
      }
    },
    "item": {
      "$id": "#/definitions/item",
      "type": "object",
      "required": [
        "sku",
        "brand",
        "title",
        "questionCount",
        "answerCount",
        "reviewCount",
        "commentCount",
        "averageRating"
      ],
      "additionalProperties": false,
      "properties": {
        "sku": {
          "$id": "#/definitions/item/properties/sku",
          "type": "string"
        },
        "brand": {
          "$id": "#/definitions/item/properties/brand",
          "type": "string"
        },
        "title": {
          "$id": "#/definitions/item/properties/title",
          "type": "string"
        },
        "questionCount": {
          "$id": "#/definitions/item/properties/questionCount",
          "type": "integer",
          "minimum": 0
        },
        "answerCount": {
          "$id": "#/definitions/item/properties/answerCount",
          "type": "integer",
          "minimum": 0
        },
        "reviewCount": {
          "$id": "#/definitions/item/properties/reviewCount",
          "type": "integer",
          "minimum": 0
        },
        "commentCount": {
          "$id": "#/definitions/item/properties/commentCount",
          "type": "integer",
          "minimum": 0
        },
        "averageRating": {
          "$id": "#/definitions/item/properties/averageRating",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "tags": {
      "$id": "#/definitions/question/properties/tags",
      "oneOf": [
        {
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "user": {
      "$id": "#/definitions/user",
      "type": "object",
      "required": [
        "firstName",
        "lastName"
      ],
      "additionalProperties": false,
      "properties": {
        "userAuthToken": {
          "$id": "#/definitions/user/properties/userAuthToken",
          "type": "string"
        },
        "firstName": {
          "$id": "#/definitions/user/properties/firstName",
          "type": "string"
        },
        "lastName": {
          "$id": "#/definitions/user/properties/lastName",
          "type": "string"
        },
        "staff": {
          "$id": "#/definitions/user/properties/staff",
          "type": "boolean"
        },
        "expert": {
          "$id": "#/definitions/user/properties/expert",
          "type": "boolean"
        },
        "brand": {
          "$id": "#/definitions/user/properties/brand",
          "type": "string"
        },
        "nickName": {
          "$id": "#/definitions/user/properties/nickName",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "ageRange": {
          "$id": "#/definitions/user/properties/ageRange",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "location": {
          "oneOf": [
            {
              "$ref": "#/definitions/location"
            },
            {
              "type": "string"
            }
          ]
        },
        "customProfileDimensions": {
          "$id": "#/definitions/user/properties/customProfileDimensions",
          "type": "array",
          "minItems": 0,
          "items": {
            "$id": "#/definitions/user/properties/items/customProfileDimensions",
            "type": "object",
            "properties": {
              "type": {
                "$id": "#/definitions/user/properties/items/customProfileDimensions/properties/type",
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "valueLabel": {
                "type": "string"
              },
              "sortOrder": {
                "type": "integer"
              },
              "freeformText": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "properties": {
    "exportStart": {
      "$id": "#/properties/exportStart",
      "type": "string",
      "enum": [
        "complete"
      ]
    },
    "site": {
      "$id": "#/properties/site",
      "type": "string"
    },
    "dateCreated": {
      "$ref": "#/definitions/dateTime"
    },
    "questions": {
      "$id": "#/properties/questions",
      "type": "array",
      "minItems": 0,
      "items": {
        "$ref": "#/definitions/question"
      }
    },
    "comments": {
      "$id": "#/properties/comments",
      "type": "array",
      "minItems": 0,
      "items": {
        "$ref": "#/definitions/comment"
      }
    },
    "reviews": {
      "$id": "#/properties/reviews",
      "type": "array",
      "minItems": 0,
      "items": {
        "$ref": "#/definitions/review"
      }
    },
    "exportEnd": {
      "$id": "#/properties/exportEnd",
      "type": "string",
      "enum": [
        "complete"
      ]
    }
  },
  "required": [
    "exportStart",
    "questions",
    "comments",
    "exportEnd"
  ]
}

Feed definition: XSD file

userContent.xsd
CODE
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace='http://www.turnto.com/userContent'
           xmlns="http://www.turnto.com/userContent"
           elementFormDefault="qualified"
>
    <xs:element name="userContent">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="questions">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="question" type="question" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="comments">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="comment" type="comment" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="reviews" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="review" type="review" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="site" type="xs:string"/>
            <xs:attribute name="dateCreated" type="xs:dateTime"/>
            <xs:attribute name="incremental" type="xs:boolean"/>
        </xs:complexType>
    </xs:element>

    <!-- define the complex types here: -->
    <xs:complexType name="question">
        <xs:choice>
            <xs:sequence>
                <xs:element name="id" type="xs:integer"/>
                <xs:sequence minOccurs="0" maxOccurs="1">
                    <xs:element name="userAuthToken" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="firstName" type="xs:string" />
                    <xs:element name="lastName" type="xs:string"/>
                    <xs:element name="nickName" type="xs:string"/>
                    <xs:element name="ageRange" type="xs:string" minOccurs="0"/>
                    <xs:element name="location" type="location" minOccurs="0"/>
                </xs:sequence>
                <xs:element name="item" type="item"/>
                <xs:element name="text" type="xs:string"/>
                <xs:element name="tags" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="dateTime" type="xs:string"/>
                <xs:element name="answer" type="answer" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:choice>
        <xs:attribute name="id" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="answer">
        <xs:sequence>
            <xs:element name="id" type="xs:integer"/>
            <xs:element name="user" type="user" minOccurs="0"/>
            <xs:element name="text" type="xs:string"/>
            <xs:element name="tags" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="dateTime" type="xs:string"/>
            <xs:element name="reply" type="reply" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="reply">
        <xs:sequence>
            <xs:element name="id" type="xs:integer"/>
            <xs:element name="user" type="user" minOccurs="0"/>
            <xs:element name="text" type="xs:string"/>
            <xs:element name="dateTime" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="comment">
        <xs:sequence>
            <xs:element name="id" type="xs:integer"/>
            <xs:element name="user" type="user" minOccurs="0"/>
            <xs:element name="item" type="item"/>
            <xs:element name="text" type="xs:string"/>
            <xs:element name="tags" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>            
            <xs:element name="dateTime" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="item">
        <xs:sequence>
            <xs:element name="sku" type="xs:string"/>
            <xs:element name="title" type="xs:string"/>
            <xs:element name="brand" type="xs:string"/>
            <xs:element name="questionCount" type="xs:integer" />
            <xs:element name="answerCount" type="xs:integer" />
            <xs:element name="reviewCount" type="xs:integer" />
            <xs:element name="commentCount" type="xs:integer" />
            <xs:element name="averageRating" type="xs:decimal" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="user">
        <xs:all>
            <xs:element name="userAuthToken" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="firstName" type="xs:string"/>
            <xs:element name="lastName" type="xs:string"/>
            <xs:element name="nickName" type="xs:string"/>
            <xs:element name="brand" type="xs:string" minOccurs="0"/>
            <xs:element name="expert" type="xs:boolean" minOccurs="0"/>
            <xs:element name="staff" type="xs:boolean" minOccurs="0"/>
            <xs:element name="ageRange" type="xs:string" minOccurs="0"/>
            <xs:element name="location" type="location" minOccurs="0" maxOccurs="1"/>
            <xs:element name="customProfileDimensions" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="customProfileDimension" type="customProfileDimension" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="review">
        <xs:sequence>
            <xs:element name="id" type="xs:integer"/>
            <xs:element name="user" type="user"/>
            <xs:element name="item" type="item"/>
            <xs:element name="title" type="xs:string"/>
            <xs:element name="text" type="xs:string"/>
            <xs:element name="rating" type="xs:integer"/>
            <xs:element name="upVotes" type="xs:integer"/>
            <xs:element name="downVotes" type="xs:integer"/>
            <xs:element name="externalOrderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
            <xs:element name="locale" type="xs:string"/>
            <xs:element name="published" type="xs:boolean"/>
            <xs:element name="publishedDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
            <xs:element name="solicitationEmailDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
            <xs:element name="tags" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="dateTime" type="xs:string"/>
            <xs:element name="customDimensions">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="customDimension" type="customDimension" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="syndication" maxOccurs="1" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element type="xs:string" name="name"/>
                        <xs:element type="xs:string" name="logo" nillable="true"/>
                        <xs:element type="xs:string" name="url"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="incentivized" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
            <xs:element name="media" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="url" type="xs:string" />
                        <xs:element name="caption" nillable="true" type="xs:string" />                        
                    </xs:sequence>
                    <xs:attribute name="type">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="photo" />
                                <xs:enumeration value="video" />
                                <xs:enumeration value="audio" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                </xs:complexType>                    
            </xs:element>
            <xs:element name="responses" minOccurs="0" maxOccurs="1" nillable="true">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="response" type="response" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="id" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="response">
        <xs:sequence>
            <xs:element name="text" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true"/>
            <xs:element name="locale" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true"/>
            <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0" maxOccurs="1" nillable="true"/>
            <xs:element name="user" type="user" minOccurs="0" maxOccurs="1" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="customDimension">
        <xs:all>
            <xs:element name="type" type="xs:string"/>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="label" type="xs:string"/>
            <xs:element name="customDimensionValue" type="customDimensionValue" minOccurs="0" maxOccurs="1"/>
            <xs:element name="customDimensionValues" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="customDimensionValue" type="customDimensionValue" minOccurs="1" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="customDimensionValue">
        <xs:all>
            <xs:element name="id" type="xs:integer" minOccurs="0"/>
            <xs:element name="sortOrder" type="xs:integer" minOccurs="0"/>
            <xs:element name="value" type="xs:integer" minOccurs="0"/>
            <xs:element name="label" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="customProfileDimension">
        <xs:sequence>
            <xs:element name="type" type="xs:string"/>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="label" type="xs:string"/>
            <xs:choice>
                <xs:element name="freeformText" type="xs:string"/>
                <xs:sequence>
                    <xs:element name="id" type="xs:integer"/>
                    <xs:element name="valueLabel" type="xs:string"/>
                    <xs:element name="sortOrder" type="xs:integer" minOccurs="0"/>
                </xs:sequence>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="location">
        <xs:all>
            <xs:element name="city" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="state" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="country" type="xs:string" minOccurs="0" maxOccurs="1" />
        </xs:all>
    </xs:complexType>
    <xs:complexType name="tag">
        <xs:sequence>
            <xs:element type="xs:string" name="code"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.