Medallia API
Use the Medallia API, also known as Web Feeds, to import data into Medallia Experience Cloud via an HTTP request. The API allows real-time transactions such as importing surveys, creating events, and updating survey records through simple HTTP POST. This API accepts data files from approved external systems, and passes the files on to the importer for processing. After the importer successfully updates the database, the feed can optionally trigger an Exporter to send data to an external system.
This import method is often used for importing single records for creation or update in near real-time as the data change in the source external system. Some companies use this to send invitations to customers as soon as the source system determines an invitation is required. Some companies use external services to ask survey questions. In those configurations the external service immediately forwards the answers through the Medallia API as they are collected.
Creating a web feed
The general steps for creating a feed are:
-
Create a new import method:
-
From Import Methods screen, click Add Method. This opens the library of available import methods.
-
Select the import method from the list. This opens the Method Editor, where you can build your import method.
-
In the Details tab:
-
Enter a name and a description.
-
Complete the URL customization.
-
Select the Ingestion mode to push data into Medallia.
-
If you select the non-concurrent mode, enter the batch processing period if required.
-
-
-
In the Advanced tab, trigger an Exporter to send data to an external system.
-
Click Done.
-
-
Change the Processing Mode to active.
-
Inform the company that they may begin pushing files through the API.
Details
- Method Name
- Name of this feed; use something descriptive of the feed and which distinguishes it from other feeds.
- Description
- The description of this feed; should include the purpose and information about the expected source system and importer.
- URL Customization
- Identifies the API endpoint: this web feed specification (which also maps to an import specification). A company may have multiple workflows through the Medallia API, each of which has a different endpoint.
The inbound URL looks like this:
https://<instance>.apis.medallia.<com>/inbound/v1/<URL-unique-name> - Ingestion Mode
- How incoming files are processed. The processing modes are:
-
Non concurrent (feed file) — Each incoming request generates a new feed file, the same as done for SFTP and Feed Pulls. Use this mode only for very low volume feeds (less than 10,000 daily requests); otherwise, the queue can grow quite large and cause processing delays or reporting instability.
Restriction: This is the only available ingestion mode when using an Auto Importer with Lookup table processors or Org Hierarchy processors:- Lookup table processors cannot be used with concurrent modes. Otherwise, lookup-table updates could interfere with each other. For information, see Lookup tables.
-
Org hierarchy processors cannot be used with concurrent modes, because updating the org too many times can cause reporting instability. Consider also using grouping for this type of data import.
-
Concurrent Synchronous — Use for medium volume of incoming requests (less than 100,000 daily requests) that need to be processed in parallel. The API client making the request will need to wait for each request to be processed, and the client will receive a response indicating the number of processed, duplicate and discarded records. Under some circumstances, such as during system maintenance, synchronous Web Feeds are processed asynchronously instead. As such, the external service should always be able to handle asynchronous and synchronous responses.
-
Concurrent Asynchronous — Use this mode when advised for the highest volume integrations (more than 100,000 daily requests). Requests are queued for asynchronous processing, but processing occurs in near-real-time batches with some delay introduced to allow for grouping and de-duplication of requests.
Note: Consider activating asynchronous sampling for concurrent Web Feeds: it is not efficient to run the sampling process on small data sets on every HTTP POST request. Activate this sampling mode so that the process runs in batches of 5,000 records. For information about sampling modes, see Enabling asynchronous sampling.
Important: When switching a Web Feed from Feed File mode to one of the concurrent modes, make sure the Auto Importer is not set to capture the incoming filename in a required field. Concurrent modes do not generate a feed file, so there is no filename to capture, which leads to records being discarded due to missing required values.This table summarizes the differences in the selection between these options:
Consideration Feed file (asynchronous) Concurrent synchronous Concurrent asynchronous Request volume Use for low volume integrations (less than10,000 daily requests across all web feeds). Use this mode for testing to get a detailed explanation of what happened or went wrong during importer development. After testing, switch it to the appropriate mode for production use.
Warning: Running large-volumes of feeds with concurrency off can impact performance due to the need to create a feed file for each request. Do not use this for testing in a production environment. In this scenario, Medallia recommends limiting web feeds to no more than 10,000 records per request. Work with the Medallia Professional Services team if you need to send a larger number of records.Use this mode for low to medium traffic use cases, up to 100,000 daily requests across all web feeds. Use this mode for the highest volume integrations (more than 100,000 daily requests). Size limit Limit to no more than 1.5 GB.
Limit to no more than: -
1 request per second
-
100 records per request
-
5 concurrent requests
-
100 MB
Limit each API request to no more than 51.2 KB. Larger sizes can be evaluated via a Support case for a scale review. Unit and Unit group update Use for updating Units or Unit Groups for performance. Consider also using Seconds to wait for grouping for high-volume installations.
Does not support updating Units or Unit Groups. Does not support updating Units or Unit Groups. Response behavior Response indicates the request was accepted for processing. Response is the status of the import processing. Response indicates the request was accepted for processing. Obtaining process results Response does not show processing results. Go to the Feed Files screen to obtain processing results or access version 2 API endpoints.
Response contains high-level processing results but no details. Sends accepted response before file processing. It can process multiple requests in parallel. Parallel requests, however, are queued and processed after responding to the client side. Email notifications Sends notification emails per the Email Reports properties. Does not send notification emails. Sends notification emails per the Email Reports properties. Grouping feature Can use feed-file grouping to collect multiple requests into a single import process. See Seconds to wait for grouping for details. Cannot use feed-file grouping. Cannot use feed-file grouping. Tip: Medallia strongly recommends the sending system enable a "retry policy" on their side in the case of a failed event.Warning: Synchronous (concurrency on) Web-feed processing happens in real-time as the data arrive. However, there can be delays after the data is imported, depending on the load of the system. Invitations resulting from a Web Feed can be sent within seconds of arriving from the Web Feed, but in very large-volume installations, the delay can be as much as 15 minutes.Duplicate checking in the target import specification will not catch duplicate records in concurrent or near-concurrent Web Feed imports. If there is a possibility that near-concurrent Web Feeds will have duplicate records, create Quarantines to prevent duplicate invitations.
-
- Batch Processing
- How long to wait (seconds) when collecting feeds before compiling them into a single feed-file. If provided, incoming files will wait up to the given amount of seconds. Other feed files that arrive for this same feed account will be grouped together and processed in a single operation. This is ideal for incoming integrations that receive a high volume of requests but where processing those requests as they arrive could cause potential performance problems.Note: This option is only available for the non-concurrent ingestion mode.
Advanced
- Send Processing Reports To
- Email addresses (comma-separated) to receive the summarized processing report of successes and failures for that particular importer. Processing reports are created at a file level.
- Trigger an export after processing
- Select this option to automatically export data once the import process is complete. After turning this on, the Export to trigger section will be available.
- Export to trigger
- Exporter to trigger.
