Understanding: Export API
Overview
The Marigold Grow Export REST API provides a mechanism for retrieving entry data from Experiences. It allows you to export entries from a single campaign or across all campaigns at the same time. You may retrieve all entries as a one-off export or specify a time-window so that you can re-run the export on a regular basis (e.g. daily). Finally, you can choose to retrieve a high-level export including only common entry fields or a full export, with all custom or Experience-specific fields included.
Alternate options
We provide 4 options for accessing entry data:
-
Webhook (recommended)
This method of integration is highly recommended, as it allows entries to be pushed to you immediately. You simply need to register your own HTTPS endpoint with Marigold Grow, and the platform will push entry data to your endpoint in real-time as users enter, in a JSON format. -
Cloud Bucket (scheduled exports)
If your system requires batch files, the Marigold Grow platform can push an export to a cloud bucket in AWS or Google Cloud. The export format is the same as the REST API, and can be pushed daily during the campaign or once when the campaign ends. Please note only secure cloud buckets are supported, scp/sftp/ftp are not supported for security reasons. -
Console Exports (manual download)
Users can simply navigate to the Experience and download a CSV export from the user interface. Please note a user must have PII data exporter privileges due to privacy legislation. The download is provided as a protected zip file with a one time password. -
Export Rest API (XAPI)
This document describes the Marigold Grow REST API. You'll need to obtain your Marigold Grow account region and private token from your account manager or global.support@cheetahdigital.com.
Webhook (recommended)
This method sends data to the HTTPS endpoint you select in a JSON format. There is a default format we send the data in. If you’d like to customize the format for your specific needs, you can request this change through your Customer Success Manager or directly with the Studio Team.
Here’s an example of the default format:
{
"entryId": "0f17b612-c30d-41fc-9a2c-38cfd2220eec",
"accountId": 9014,
"accountName": "testAccountService",
"campaignId": 23894,
"campaignName": "CustomerID Giveaway",
"externalRef": "20210119110833_customerid_giveaway",
"userId": "x1ca89a9dc029c30a148cdc448ea4c7cb",
"sourceUserId": "",
"firstname": "Jane",
"lastname": "Doe",
"email": "",
"dateEntered": "2021-01-19 06:32:48",
"dateCreated": "2021-01-19 06:32:48",
"timeZone": "America/New_York",
"source": "web",
"medium": "direct",
"channel": "website",
"network": "web",
"optIn": true,
"eventType": "registration",
"entryType": "standard",
"mode": "stage",
"entitlements": "",
"customerId": "jane2doe25555",
"data": {
"firstname": "Jane",
"lastname": "Doe",
"email": "",
"sourceUserId": "",
"sourceUserName": "",
"sourceUserAvatar": "",
"sourceUserLink": "",
"ugcOriginLink": "",
"ugcImage": "",
"ugcThumbnail": "",
"ugcComment": "",
"quizScore": "",
"quizCategory": "",
"couponCode": "",
"brandOptIn": false,
"groupOptIn": false,
"thirdPartyOptIn": false,
"termsAndConditions": true,
"activity": "",
"apikey": "5a51edce-d070-4f95-a5d2-b75c7a62b567",
"brand_opt_in": "",
"campaignId": "23894",
"cbh": "https://local.ngxdev.io:8443",
"channel": "website",
"channelId": "",
"container_guid": "f5ff2090-7df2-4b60-9df9-9414998a9c7c",
"containerId": "",
"content": "",
"formId": "54620",
"isXHR": "true",
"medium": "direct",
"ngx_ext_id": "jane2doe25555",
"ngx_t_token": "nX3FrgZUyqtFHFKX6wZQWsURwwD53m/1TSgH1S69lnk=",
"ngxInvitedFriends": "",
"Phone": "0987654322",
"promotionId": "",
"ptk": "bc632861a039ad44d4d3bb6baffbc6ee",
"r": "",
"source": "web",
"stageMode": "true",
"terms_and_conditions": "I accept the [Link:Terms and Conditions].",
"Twitter_": "@onetwtestJane2"
},
"request": {
"ip": "127.0.0.1",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:84.0) Gecko/20100101 Firefox/84.0"
},
"": "",
"custom": {
"name": "CustomerID Giveaway"
}
}
Take into account that the fields inside the data section vary based on the fields added to the form. Some fields may be empty or not have a value depending on the Experience type.
Cloud Bucket (scheduled exports)
Scheduled exports, also known as Cloud Bucket export option, are exports where the Marigold Grow platform pushes the data to a cloud bucket in AWS or Google cloud. The export format is the same as the REST API, and can be pushed daily during the campaign or once when the Experience ends. The exports can be PGP encrypted, if you provide a PGP public key, and uploaded to either AWS S3 or Google Cloud Storage. Other storage options are not supported for security reasons.
Export frequency you can select from:
- Daily: It runs each day, adding all the entries for all the active Experiences in the last whole day (adjusted to the account timezone) to a new file.
- Weekly: Each week, by default on Monday, it adds all the entries for the active Experiences in the whole last week (adjusted to the account timezone) to a new file.
- Monthly: Each month, by default the 1st of each month, it adds all the entries for the active Experiences in the last whole month (adjusted to the account timezone) to a new file.
Please note, that in this context, active means it was published in the given time period.
The files are exported as a CSV (comma separated values) file. This means each value, separated by a comma, represents a column of data. It has a header as the first row for each column name.
Here’s an example of the result:
EntryID,AccountID,AccountName,CampaignID,CampaignName,Action,DateEntered,Timezone,UserID,Shares,Referrals,Referrer,BrandOptIn,GroupOptIn,ThirdPartyOptIn,TermsAndConditions,Source,Medium,Channel,Network,SourceUserID,SourceUserLink,UGCOriginLink,UGCImage,UGCThumbnail,UGCComment,UGCVotes,Challenge,QuizResult,WinnerCategory,ExternalRef,CampaignPublishDate,CampaignExpiryDate,Email,Firstname,Lastname,Username,CustomerID,Twitter_,Phone
0ca83dc4-34ad-4773-b656-cec914c27ecb,9014,testAccountService,23894,CustomerIDGiveaway,entered,2021-01-19T09:46:11,America/New_York,x0b51f6ea9661e732abfff49d6fce3f98,0,0,,false,false,false,true,web,direct,website,web,,,,,,,0,,,,20210119110833_customerid_giveaway,,,,JaneThree,DoeThree,,janeDoeThree0987,@onetwtestJane3,0987654322
For better readability, save it as file.csv and open it with Numbers or Excel.
Versions
Currently we have the following versions available:
- version 4
- version 5: The difference to v4 is the presence of the column CustomerID just after Username.
- version 6: The fields email, firstname and lastname have been added to the redemptions API.
- version 7: We've added the brand opt in list, group opt in list and third party opt in list to a fixed position in the XAPI for entries and redemptions.
Please note that all the fields after CustomerID are the form fields, and depend on the specific form fields used. Some of the form fields are processed as system fields, so they already have their own column, like Firstname, Lastname, Email, Optins, Challenge, etc.
New columns
In some cases, new columns need to be added to the export format. Usually those columns are added just after the last columns representing form fields. As you should already cope well with the last variable columns in the file, as the forms can have different fields, it should not be a problem to cope with a new column.
Usually, new columns or variations in the format are done using a new version. If you need to keep the old format, it's possible to do so for a period of time.
Console Exports (manual download)
Console Exports, also known as Manual download, offer a manual option to generate an export directly from the Marigold Grow platform. It exports all the entries in the current Experience, in CSV (comma separated value) format.
The format is very similar to those in Scheduled or XAPI exports, but with some small differences:
- Some columns only appear on UGC Experiences:
- UGCOriginLink,UGCImage,UGCThumbnail,UGCComment,UGCVotes
- There is a column that only appears for quizzes:
- QuizResult
- There is a column that only is included if challenge field is present in the form:
- Challenge
- As there are no versions in this one, CustomerID is always included.
Please note that all the fields after CustomerID are the form fields, and depend on the specific form fields used. Some of the form fields are processed as system fields, so they already have their own column, like Firstname, Lastname, Email, Optins, Challenge, etc.
It is very easy to get an example export from the console. The file is password protected. Please remember to take a note of the generated password as it's only generated once. If you are rewarding user's participation with Rewards, you're also able to download Redemptions export which includes all the relevant fields about only the entrants who have won a reward.
Consult this article to see the different ways to export entry data.
New columns
In some cases, we add the columns or modify other details of Console Export file format. As this one is meant to be human readable and not processed by automatic means, we don't use a version strategy. If you need to continue to use a known format, please use one of the other export options, as those are better suited for that scenario.
Export Rest API (XAPI)
The Marigold Grow Export REST API provides a mechanism for retrieving entry data and redemption data from Experiences. It allows you to export entries from a single Experience or across all Experiences at the same time. It also allows you to only retrieve data about users who have won a reward.
You may retrieve all entries as a one-off export or specify a time-window so that you can re-run the export on a regular basis (e.g. to support daily retrieval). Finally, you can choose to retrieve a high-level export including only common entry fields or a full export, with all custom or Experience-specific fields included.
Environment & Access
Each Marigold Grow account resides in a particular region. Use the following table below to determine the base endpoint URL to use based on your region. Contact your account manager or global.support@cheetahdigital.com if you do not know which region your Marigold Grow account resides in.
| Region | Endpoint URL |
|---|---|
| US Production | https://us-xapi.wayin.com/ |
| EU Production | https://eu-xapi.wayin.com/ |
API versions
The Marigold Grow REST API is version controlled. Versioning ensures that REST API changes are backward compatible. By specifying a version in a REST request, you can get expected responses regardless of future changes to the API. The version number of the REST API appears in the endpoint URL. For example: /xapi/content/5/filter.
Rate limits
The provided API permits up to 1 request per minute. More aggressive use of the API may be rate-limited.
Authentication & Security
Authentication is based on a secret token which must be supplied for all API requests. A public API key is available for client-side public requests that can be used in the browser, and a private API key is available for all protected requests. API keys are tied to a specific Marigold Grow platform account. If you have multiple accounts for brand or market purposes you'll need a key per account.
Note: Please obtain your account region and API key from global.support@cheetahdigital.com.
| API key type | Private key required. This key is specific to your Marigold Grow platform account and can be requested through global.support@cheetahdigital.com with authorization from your account Admin. |
| Usage | Server-side only. The private API key is not intended for client-side use in the browser and must be kept secured. |
| Protocol | HTTPS only |
Endpoint for retrieving entries
GET /xapi/export/7/campaign/entries where 7 is the API version.
Endpoint for retrieving redemptions
GET /xapi/export/7/campaign/redemptions where 7 is the API version.
Parameters
| Parameter | Details |
|---|---|
| apikey
String (required) |
Private token required for authorization. The token is specific to a single Marigold Grow account. Admin users can find the private api key in the Account Settings section in Grow. |
| format
String |
The format of the response. Permitted values are:
|
| id
Integer |
Experience identifier. Include to request data for a single campaign, exclude to retrieve data across all campaigns. |
| includeHeader
Boolean |
If true, a header with field description is included. |
| max
Integer |
Maximum amount of items to return. A maximum number of 10000 rows per call can be supplied. This value defaults to 100 if not supplied. The paging parameter offset needs to be used if there are more than 10000 records. |
| start
Date |
The date from which data is returned. Must be used in conjunction with the end parameter. (yyyy-MM-dd HH:mm:ss) |
| end
Date |
The date until which data is returned. Must be used in conjunction with the start parameter. (yyyy-MM-dd HH:mm:ss) |
| days
Integer |
Indicates the number of days from today into the past during which results are returned. This is an alternative to start/end parameters (which have precedence). |
| offset
Integer |
This is used to get a page of data. It is the index of the first element to be returned and, in conjunction with the max parameter, can be used to return paginated results. i.e: to do pages of 1000, you would request &offset=0&max=1000 in the first call, then offset=1000&max=1000 for the second, offset=2000&max=1000 for the third... |
| dateLocale |
By default dateEntered field is returned in ISO 8601 format (i.e: 2020-06-25T08:30:53). Some examples:
Remember that the date is presented in the account timezone (timezone field is also in the export data). |
| dateStyle |
If you use the dateLocale field as described above, you can also specify a style for the date and time portion of the dateEntered parameter. The available values are S,M,L,F,- for each, so valid values could be SS, SM, LS, and any other combination, where the first character is for the date and the second for the time. Each of them adds more info to the date, where S is the minimum and F is the full version, while - just removes date or time completely. Let’s see some examples for 7/1/20 12:00 AM using locale en_US:
|
| version | It's in the URL between export/ and /campaign. Current allowed
versions are 4 and 5. Entries The only difference between v4 and v5 is the new field CustomerID, a column before Username and after the form fields. CustomerID is an alternative identifier for the user, instead of the email. Redemptions For redemption export, we only support v5. |
Examples
Entry export example:
Call:
https://eu-xapi.wayin.com/xapi/export/7/campaign/entries?apikey={token}&id={experienceid}&max=10000&&days=10&dateLocale=en_US&dateStyle=MM
Result in XML format:
<api>
<totalRecords>5</totalRecords>
<pageCount>5</pageCount>
<currentpage>1</currentpage>
<meta>
<field name="EntryID" store="System"/>
<field name="AccountID" store="System"/>
<field name="AccountName" store="System"/>
<field name="CampaignID" store="System"/>
<field name="CampaignName" store="System"/>
<field name="Action" store="System"/>
<field name="DateEntered" store="System"/>
<field name="Timezone" store="System"/>
<field name="UserID" store="System"/>
<field name="Shares" store="System"/>
<field name="Referrals" store="System"/>
<field name="Referrer" store="System"/>
<field name="BrandOptIn" store="System"/>
<field name="GroupOptIn" store="System"/>
<field name="ThirdPartyOptIn" store="System"/>
<field name="TermsAndConditions" store="System"/>
<field name="Source" store="System"/>
<field name="Medium" store="System"/>
<field name="Channel" store="System"/>
<field name="Network" store="System"/>
<field name="SourceUserID" store="System"/>
<field name="SourceUserLink" store="System"/>
<field name="UGCOriginLink" store="System"/>
<field name="UGCImage" store="System"/>
<field name="UGCThumbnail" store="System"/>
<field name="UGCComment" store="System"/>
<field name="UGCVotes" store="System"/>
<field name="Challenge" store="System"/>
<field name="QuizResult" store="System"/>
<field name="WinnerCategory" store="System"/>
<field name="ExternalRef" store="System"/>
<field name="CampaignPublishDate" store="System"/>
<field name="CampaignExpiryDate" store="System"/>
<field name="Email" store="System"/>
<field name="Firstname" store="System"/>
<field name="Lastname" store="System"/>
<field name="Username " store="System"/>
<field name="CustomerID" store="System"/>
<field name="BrandOptInList" store="System"/>
<field name="GroupOptInList" store="System"/>
<field name="ThirdPartyOptInList" store="System"/>
<field name="Twitter_" store="form"/>
<field name="Phone" store="form"/>
</meta>
<data>
<item>
<EntryID>0ca83dc4-34ad-4773-b656-cec914c27ecb</EntryID>
<AccountID>9014</AccountID>
<AccountName>testAccountService</AccountName>
<CampaignID>23894</CampaignID>
<CampaignName>CustomerID Giveaway</CampaignName>
<Action>entered</Action>
<DateEntered>1/19/21 9:46:11 AM</DateEntered>
<Timezone>America/New_York</Timezone>
<UserID>x0b51f6ea9661e732abfff49d6fce3f98</UserID>
<Shares>0</Shares>
<Referrals>0</Referrals>
<Referrer/>
<BrandOptIn>false</BrandOptIn>
<GroupOptIn>false</GroupOptIn>
<ThirdPartyOptIn>false</ThirdPartyOptIn>
<TermsAndConditions>true</TermsAndConditions>
<Source>web</Source>
<Medium>direct</Medium>
<Channel>website</Channel>
<Network>web</Network>
<SourceUserID/>
<SourceUserLink/>
<UGCOriginLink/>
<UGCImage/>
<UGCThumbnail/>
<UGCComment/>
<UGCVotes>0</UGCVotes>
<Challenge/>
<QuizResult/>
<WinnerCategory/>
<ExternalRef>20210119110833_customerid_giveaway</Externa
lRef>
<CampaignPublishDate/>
<CampaignExpiryDate/>
<Email>janedoe@email.com</Email>
<Firstname>Jane/Firstname>
<Lastname>Doe</Lastname>
<Username/>
<CustomerID/>
<BrandOptInList>option_1|option_2</BrandOptInList>
<GroupOptInList>option_1|option_2</GroupOptInList>
<ThirdPartyOptInList>option_1|option_2</ThirdPartyOptInL
ist>
<Twitter_>@onetwtestJane3</Twitter_>
<Phone>0987654322</Phone>
</item>
</data>
</api>
Result in CSV format:
EntryID,AccountID,AccountName,CampaignID,CampaignName,Action,DateEntered,Timezone,UserID,Shares,Referrals,Referrer,BrandOptIn,GroupOptIn,ThirdPartyOptIn,TermsAndConditions,Source,Medium,Channel,Network,SourceUserID,SourceUserLink,UGCOriginLink,UGCImage,UGCThumbnail,UGCComment,UGCVotes,Challenge,QuizResult,WinnerCategory,ExternalRef,CampaignPublishDate,CampaignExpiryDate,Email,Firstname,Lastname,"Username",CustomerID,BrandOptInList,GroupOptInList,ThirdPartyOptInList,Twitter_,Phone
0ca83dc4-34ad-4773-b656-cec914c27ecb,9014,testAccountService,23894,CustomerID Giveaway,entered,1/19/21 9:46:11AM,America/New_York,x0b51f6ea9661e732abfff49d6fce3f98,0,0,,false,false,false,true,web,direct,website,web,,,,,,,0,,,,20210119110833_customerid_giveaway,,janedoe@email.com,,Jane,Doe,,option_1|option_2,option_1|option_2,option_1|option_2,@onetwtestJane3,0987654322
This is more legible if saved as file.csv and previewed using Microsoft Excel or Numbers.
Redemption export example
Call:
https://eu-xapi.wayin.com/xapi/export/7/campaign/redemptions?apikey={token}&id={experienceid}&max=10000&&days=10&dateLocale=en_US&dateStyle=MM&includeHeader=true
Remember that for redemption export, id (Experience id) is mandatory.
Result in XML format:
<api>
<totalRecords>3</totalRecords>
<pageCount>1</pageCount>
<currentpage>1</currentpage>
<meta>
<field name="AccountID" store="system" />
<field name="AccountName" store="system" />
<field name="CampaignID" store="system" />
<field name="CampaignName" store="system" />
<field name="RedemptionID" store="system" />
<field name="UserID" store="system" />
<field name="Date" store="system" />
<field name="Code" store="system" />
<field name="Lead" store="system" />
<field name="ItemName" store="system" />
<field name="ItemId" store="system" />
<field name="Asset" store="system" />
<field name="RewardExternalId" store="system" />
<field name="TimeZone" store="system" />
<field name="CustomerID" store="system" />
<field name="BrandOptInList" store="System"/>
<field name="GroupOptInList" store="System"/>
<field name="ThirdPartyOptInList" store="System"/>
<field name="phone" store="form" />
<field name="date_of_birth" store="form" />
<field name="country" store="form" />
</meta>
<data>
<item>
<AccountID>9014</AccountID>
<AccountName>testAccountService</AccountName>
<CampaignID>23912</CampaignID>
<CampaignName>Coupon Code</CampaignName>
<RedemptionID>1fe67369-2653-4bce-bf11-2eb9156babc7</RedemptionID>
<UserID>x0e38b3b0bca455ead50690433d00318d</UserID>
<Date>Apr 22, 2021 9:58:23 AM</Date>
<Code>TEXT-M785-EMAF-3525</Code>
<Lead>f4eb3bdb-aaca-4ae9-bb49-00896958071b</Lead>
<ItemName>Coupon Code</ItemName>
<ItemId>12862</ItemId>
<Asset></Asset>
<RewardExternalId></RewardExternalId>
<TimeZone>America/New_York</TimeZone>
<CustomerID>joedoe3</CustomerID>
<data name="phone">0321456987</data>
<data name="date_of_birth">1983-03-23T00:00:00Z</data>
<data name="country">ALB</data>
</item>
<item>
<AccountID>9014</AccountID>
<AccountName>testAccountService</AccountName>
<CampaignID>23912</CampaignID>
<CampaignName>Coupon Code</CampaignName>
<RedemptionID>b8bb9376-508e-4b43-a9ef-ffc71b159ad1</RedemptionID>
<UserID>x73e6386134284f3000cb4c47cc425302</UserID>
<Date>Apr 22, 2021 9:57:47 AM</Date>
<Code>TEXT-2JR4-AZNE-3887</Code>
<Lead>b3fbfd86-12d6-4345-9e8f-8a50a0902074</Lead>
<ItemName>Coupon Code</ItemName>
<ItemId>12862</ItemId>
<Asset></Asset>
<RewardExternalId></RewardExternalId>
<TimeZone>America/New_York</TimeZone>
<CustomerID>joedoe2</CustomerID>
<BrandOptInList>option_1|option_2</BrandOptInList>
<GroupOptInList>option_1|option_2</GroupOptInList>
<ThirdPartyOptInList>option_1|option_2</ThirdPartyOptInList>
<data name="phone">0321456987</data>
<data name="date_of_birth">1982-02-22T00:00:00Z</data>
<data name="country">ALA</data>
</item>
<item>
<AccountID>9014</AccountID>
<AccountName>testAccountService</AccountName>
<CampaignID>23912</CampaignID>
<CampaignName>Coupon Code</CampaignName>
<RedemptionID>3cbb74d6-e5a7-45c1-a0d2-188eebb5f7a5</RedemptionID>
<UserID>x3b37effc582ba2f6e713da0eed837d42</UserID>
<Date>Apr 22, 2021 9:57:12 AM</Date>
<Code>TEXT-888M-VHSF-6324</Code>
<Lead>b4712057-3d55-415c-9036-0e0eb943ecf2</Lead>
<ItemName>Coupon Code</ItemName>
<ItemId>12862</ItemId>
<Asset></Asset>
<RewardExternalId></RewardExternalId>
<TimeZone>America/New_York</TimeZone>
<CustomerID>joedoe</CustomerID>
<BrandOptInList>option_1|option_2</BrandOptInList>
<GroupOptInList>option_1|option_2</GroupOptInList>
<ThirdPartyOptInList>option_1|option_2</ThirdPartyOptInList>
<data name="phone">0321456987</data>
<data name="date_of_birth">1981-01-21T00:00:00Z</data>
<data name="country">AFG</data>
</item>
</data>
</api>
Result in CSV format:
AccountID,AccountName,CampaignID,CampaignName,RedemptionID,UserID,Date,Code,Lead,ItemName,ItemId,Asset,RewardExternalId,TimeZone,CustomerID,BrandOptInList,GroupOptInList,ThirdPartyOptInList,phone,date_of_birth,country
9014,testAccountService,23912,CouponCode,1fe67369-2653-4bce-bf11-2eb9156babc7,x0e38b3b0bca455ead50690433d00318d,"Apr 22, 2021 9:58:23AM",TEXT-M785-EMAF-3525,f4eb3bdb-aaca-4ae9-bb49-00896958071b,CouponCode,12862,,,America/New_York,joedoe3,option_1|option_2,option_1|option_2,option_1|option_2,0321456987,1983-03-23T00:00:00Z,ALB
9014,testAccountService,23912,CouponCode,b8bb9376-508e-4b43-a9ef-ffc71b159ad1,x73e6386134284f3000cb4c47cc425302,"Apr 22, 2021 9:57:47AM",TEXT-2JR4-AZNE-3887,b3fbfd86-12d6-4345-9e8f-8a50a0902074,CouponCode,12862,,,America/New_York,joedoe2,option_1|option_2,option_1|option_2,option_1|option_2,0321456987,1982-02-22T00:00:00Z,ALA
9014,testAccountService,23912,CouponCode,3cbb74d6-e5a7-45c1-a0d2-188eebb5f7a5,x3b37effc582ba2f6e713da0eed837d42,"Apr 22, 2021 9:57:12AM",TEXT-888M-VHSF-6324,b4712057-3d55-415c-9036-0e0eb943ecf2,CouponCode,12862,,,America/New_York,joedoe,option_1|option_2,option_1|option_2,option_1|option_2,0321456987,1981-01-21T00:00:00Z,AFG
Best read if you copy into a file and open it with Excel or equivalent application.
Experience metadata and exports
If you are using Experience metadata, it is possible to set visibility to export on each field. If a field is set to have export visible, then it will be added at the end of each export type, based on the following rules:
- If a field in metadata has export visibility assigned, it's added at the end to Console Exports and to XAPI exports (entries and redemptions).
- It's also added to scheduled exports, but with one specific behavior:
- If the scheduled export config does not have customFormFields property listing the specific form fields to include, it works as the other ones and adds all Experience metadata fields with export visibility at the end.
- If there is a customFormFields list, then the metadata fields with its name included in the list is used (even if there is a form field with that name), in the position determined by the customFormField list. The remaining fields (not in the list) would be added at the end (if any).