Delivery methods
Exports can be sent to external systems or people, and they can be downloaded from reports via one of these delivery methods:
- Email — The data are in the body of the message or an attachment.
- File transfer protocol (FTP) — The data are in a file delivered to directory on a server.
- Amazon S3 — The data are in a file delivered directly to a secure Amazon S3 bucket.
- Google Cloud Storage — (available only in Medallia Setup) The data are in a file delivered directly to a secure Google Cloud Storage bucket.
- Export to Auto Importer — The data are in a file delivered directly to the Auto Importer for reprocessing.
- Manual — The administrator downloads the file using a Download button.
- Responses filter — The user downloads the data from the Filter tab of Responses reports.
- Invitations filter — The user downloads the data from the Filter tab of Invitation Ranker reports.
- AskNow Filter — The user downloads the data from the Filter tab of the AskNow standard report.
For external delivery, email is more convenient, but is not secure and is limited to 10MB or less. FTP, on the other hand, can be secure, but requires more setup work and cooperation between Medallia and the company.
Exports delivered via email are embedded in the body of the email message unless Send exported data as attachment is on.
- Email to address
- Address(es) to receive the email, separated by comma.
- Email from address
- Address that appears in the From field. This value is auto-generated and shown as a read-only field with this format:
mec-export-[companyUrlName]@[broadcasterDomain] - Email from name
- Name that appears in the From field. This value is auto-generated and shown as a read-only field with this format:
MEC Export for [companyName] - Email subject
- Subject field description. For example, Medallia $COMPANY_NAME$ Survey IDs.
You can use the Filename variables in the Email options. For example, the subject might include a date/time, like this: Opt-Out list as of $DATETIME$.
File transfer protocol
Automatically delivers the exported file to an external system using one of these file transfer protocols:
- FTP — Standard FTP.
- SFTP w/ password — Secure FTP using a password for authentication; encrypts both commands and data.Important: Password authentication is deprecated and will be obsolete in a future release. Preferentially, use public key authentication for new connections with Medallia-owned servers or client-owned servers. For information about public key authentication, see Generating SSH Key pairs.
- SFTP w/ public Key — SFTP using a certificate for authentication.
- FTPS Explicit — Secure FTP using a root certificate from a certificate authority.
For FTP delivery, define these protocol properties:
| FTP option | Protocols | Description |
|---|---|---|
| Host (and port) | All | Remote host name and optional port number if not the default for the protocol. The format is: hostName:portNumber. Omit the colon and port number for the default port. |
| Username | All | Account to access the remote directory. |
| Password |
FTP | Password for the account. |
| Directory | All | Directory on the remote system to receive the file. |
| Use control file after the main data transfer | All | Whether or not to include a control file. |
| Control file directory | All | Directory on the target in which to write the control file. Leave empty to write the file in the Directory location. |
| Control filename | All | Name of the control file. Text that may include variables. Be aware of the filename requirements of the target system. See below for details. |
| Control file contents | All | Contents of the control file. Text that may include variables. See Control files below for details. |
| Private key | SFTP w/ public key | Private key for generating SSH authentication signatures. This key must match the public key provided to the company by the person who set this up. |
| Private key passphrase | SFTP w/ public key key | (optional) Passphrase associated with the key, and necessary to use the private key (similar to a password). |
| FTPS root certificate | FTPS explicit | Root certificate to use when comparing the server’s certificate. The certificate must be in PEM format. |
For a discussion of how SFTP uses keys and passphrases, see SSH key pairs.
Control files
To avoid trying to access the downloaded file before the file transfer is complete, some systems look for a control file to indicate the transfer is complete. A control file is a small, typically empty, text file that Experience Cloud writes on the target system after it finishes sending the main data file.
Typically, the filename of the control file is similar to that of the data file so they can be programmatically associated by the client IT system. In some situations, the filename itself is the same but the directory is different. Here are some examples:
| Data file | Control file |
|---|---|
| /my_export_20190813.csv | /my_export_20190813.ctl |
| /my_export_20190813.csv.pgp | /my_export_20190813.ctl |
| /my_export_20190813.csv.pgp | /my_export_20190813.csv.pgp.ctl |
| /data/my_export_20190813.csv | /control/my_export_20190813.csv |
These variables can be used to create the control file's filename:
-
$COMPANY_NAME$— From the Company settings screen. -
$COMPANY_URL$— From the Company settings screen. -
$EXPORT_FILENAME$— The entire filename of the data file. -
$EXPORT_FILENAME_PREFIX$— The portion of the export's filename that is NOT automatically appended by Medallia Experience Cloud. -
$EXPORT_FILENAME_SUFFIX$— The portion of the export's filename that IS automatically appended by Medallia Experience Cloud.
While most control files are empty, some IT systems require them to contain some metadata about the export itself. These variables can be used to create in the control file's content:
-
$BYTES_WRITTEN$-— The count of bytes written to the export file. -
$COMPANY_NAME$— From the Company settings screen. -
$COMPANY_URL$— From the Company settings screen. -
$EXPORT_FILENAME$— The entire filename of the data file. -
$EXPORT_DURATION_MSEC$— The count of milliseconds spent creating the export file. -
$EXPORT_NAME$— The name of the export specification in Experience Cloud. -
$NUM_ROWS$— The count of records (not including any header row, if the file format supports such a row) in the export file. -
$MD5$,$SHA1$,$SHA256$,$SHA384$, &$SHA512$— The cryptographic hash of the export file's contents.
Amazon S3
Delivers files to a secure Amazon S3 bucket; requires an AWS access account.
The export includes an additional verification header (an MD5 hash) that allows exports to WORM (Write-Once Read-Many) Amazon S3 buckets.
- Bucket name
- Name of the Amazon S3 bucket that holds the file. Experience Cloud supports exporting to bucket sub-folders, to do so add the sub-folder path as part of the bucket name.
- Access key
- Access key for the Amazon Web Service (AWS) account that owns the bucket.
- Secret key
- Secret key for the AWS account that owns the bucket.
- Amazon S3 Endpoint
- Optional. Amazon S3 regional endpoint.
- Enable SSE (Server-side Encryption)
- When you enable this option, the exported files are encrypted with AES-256 in the S3 bucket.
While Medallia only requires that you provide the access key and the secret key to deliver the files, we recommend that you implement the following Amazon IAM policy on your S3 bucket to enable minimum access for Experience Cloud to act as an S3 client:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Objects",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "...(to be filled in)..."
},
{
"Sid": "Bucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "...(to be filled in)..."
}
]
}
Google Cloud Storage
Delivers files to an existing, secure Google Cloud Storage (GCS) bucket; requires a service account type of GCS OAuth2 credentials. With each file upload, the MD5 hash in Base64 format is calculated and included in the delivery.
- Bucket name
- Name of the GCS bucket to receive the file. A valid bucket name only accepts lowercase characters, numbers, dashes and underscores.
- Client ID
- Client ID of the credential.
- Client email
- Client email of the credential.
- Private key
- Private key of the credential.
- Private key ID
- Private key id of the credential.
- Token server URI
- (optional) The server URI from which to get OAuth2 tokens. The default (when not set) is
https://oauth2.googleapis.com/token.
Export to Auto Importer
The data are in a feed file delivered directly to the Auto Importer for reprocessing. Some typical applications include:
- To junk records (e_status = 7): hide them and remove them from all reports.
- To mask sensitive data from the record after the processing invitations or survey responses. For example, the email address and last name fields might be replaced with a string of asterisks, like *****.
In each of the scenarios above, the Exporter identifies records to reprocess, and an Auto Importer specification makes the specific changes to the same records.
Auto importer options:
- Auto importer processor
- The specification that will receive and reprocess the records.
- Processing mode
- How the auto importer should process the records.
-
Pretend — Runs the data through the processor without committing the changes to the database. You can see how the records would be process with the Import Processing Reports.
-
Active — Update the records in the database.
-
To create the export/import process:
- Create a new Export specification.
- Assign a Name.
- For Export Via, choose Manual (or Email). For now you need to generate the export file. Later you will change this to deliver to the Auto Importer.
- Click Save.
- Define at least these properties:
- Filename — Include $DATETIME$ in the file to make it easier to identify specific update jobs in the Import Processing Reports.
- Success and Failure email report addresses — (Optional) To receive a summary reports of the jobs. Note that successful jobs send two emails: success notification and feed file summary report.
- Fields to export — Include just the fields necessary to identify the records to update; for survey records just include
a_surveyid. - Schedule options — (Optional) You might want to define the schedule later, after testing the updates in pretend mode.
- Filtering options — Specify the filtering conditions, possibly with Episode filters, to identify the records to extract and update. Tip: For now, create a small set of records for testing.
- Click Save.
- Click Download to create a CSV (Excel 2007) file to use for creating the Auto Importer specification.Warning: As of the Fall 2023.3 release, files exported as CSV, pipe, and tab delimited formats start with a tab character for field values beginning with =, +, -, or @. For example, -100 changes to \t-100 (ASCII 9 for tab). This mitigates a security risk that could allow code malicious injection into spreadsheet programs. Applications processing CSV files must comply with RFC-4180 and should trim whitespace from field values before use — that is, remove surrounding whitespace (tab, newline, or space characters) before using the value. For more information, see CWE-1236.
-
Create an Auto Importer specification to reprocess the records. See Auto Importer Processors for more information.
- Use the downloaded CSV file to define the input columns in the specification.
- Select Duplicate checking.
- Consider defining a Deletion schedule for the company in Company settings or importer to delete the feed files after some number of days.
-
Here is a simple example of an import specification that appends " massupdated" to the customer's last name.
<import-spec inputType="CSV" columnsCheck="ALLOW_EXTRA_COLUMNS" name="Simple survey import"> <input-column heading="surveyid" /> <output-column-group pluginName="Survey" recordUpdateMode="UPDATE" multiUpdateMode="UPDATE_ALL"> <output-column> <input-column heading="surveyid" /> <target-field fieldId="surveyid" fieldName="Survey ID" requiredness="REQUIRED_USED_FOR_DUPLICATE_CHECK" type="INTEGER" /> </output-column> <output-column> <target-field fieldId="e_lastname" fieldName="Last name" requiredness="REQUIRED" type="STRING"> <javascript-transform><![CDATA[ return original['e_lastname'] + " massupdated"; ]]></javascript-transform> </target-field> </output-column> </output-column-group> </import-spec>
- Modify the new Export specification.
- Export Via — Choose Export to Auto Importer.
- Auto importer processor — The specification that will receive and reprocess the records.
- Processing mode — Choose Pretend until you are ready to begin actually updating the records. Pretend-mode runs the data through the processor without committing the changes to the database. You can see how the records would be process with the Import Processing Reports. Later, set this to Active to perform the actual updates.
- Click Export survey data now to test the process.
- Review the update activity on the Feed Files screen.
- Make any necessary changes to the export and import specifications.
- Repeat until the results have been verified as desirable.
- After verifying the process, change these properties
- Processing mode — Choose Active to perform the actual updates.
- Schedule options — Define the schedule.
- Click Save.
The exporter and importer will now update records per the schedule.
Manual and Responses, Invitations, and AskNow filter downloads
Exports the records currently shown on the Filter tab of the Responses, Invitations report, or AskNow standard report when the user chooses the Download option on the report screen.
The Responses / Invitations filter options configure the export when using manual or filter downloads.
- Responses max records
- Maximum count of records to include in the export. The default value is 2,000. Additionally, depending on the export format, the maximum count allowed is:
-
Excel 2007 — 100K records.
-
SPSS — 350k records.
-
All others — 140k records.
-
- Available for roles <Add Roles>
- Assigns one or more user roles to Responses Filter or Invitation Management exports. It is only possible to have one export from the responses tab for a given role. If one export is configured for all users and another is for corporate administrators, the administrators will get the more role-specific configuration.
To see the Export option, the Role needs these Capabilities:
- Web Data Exports to access the dropdown.
- RI Data Exports to export from Responses reports filter.
- IM Data Exports to export from Invitation Ranker reports filter.
- Available export formats
- One or more export formats to be available to the report user. The user then chooses the format to download.
