Medallia Admin Guide

Before configuring the Medallia for Salesforce in Salesforce, the Medallia administrator must configure the Medallia Experience Cloud to authorize inbound communication. Once that is done, the administrator provides the connection information to the Salesforce administrator. Later the Salesforce administrator provides information the Medallia admin uses to configure the the Omni Exporter specifications.

The general implementation steps are:

  1. Before configuring for the app

  2. Configure in-bound authentication

  3. Send configuration settings to the Salesforce administrator

  4. Configure importers to match in-bound Salesforce data

  5. Push the survey program

  6. Configure Omni Exporter specifications for (out-bound to) Salesforce data

Before configuring for the app

Before configuring Medallia Experience Cloud for the Medallia for Salesforce app, request the Medallia for Salesforce package be installed on the company instance. Contact your Medallia representative to make the request.

Verify the Medallia for Salesforce package is installed.

  • On the Roles screen, verify there is a role named "Salesforce Inbound API". This role grants access to the relevant Web feeds.

Configure in-bound authentication

The Medallia for Salesforce app uses OAuth for authenticating connection with Medallia Experience Cloud interfaces.

  1. Create a new OAuth account to link the OAuth client to the role. On the Integrations > OAuth > AppId Accounts screen, create an account with these settings:

    AppId account propertyValue
    Account namesalesforce_inbound_api
    Account typeSystem
    EnabledOn
    RoleSalesforce Inbound API

    Callouts to the settings for the AppId account

  2. Create a new Oauth client on Integrations > OAuth > Clients with these settings:

    OAuth client propertyValue
    Client IDsalesforce_oauth
    Client secret Automatically generated by the Generate new client secret button
    ConfidentialOn
    Client credentialsClient Credentials Grant (for backend services)
    Client subjectsalesforce_inbound_api (This is the account is created in the previous step.)

    Callouts to the settings for the OAuth client

    Important: If the instance is using IP allow-listing:
    1. On the OAuth Clients screen, select the client account and turn on Enforce UP allow-listing in token refresh, and save the settings.

    2. On the Company > Users > Users > Logon Restrictions screen and verify the Salesforce IP addresses are in the End User IP allow-list list.

You can now send the connection information to the Salesforce administrator.

Send configuration settings to the Salesforce administrator

After configuring the OAuth settings for inbound communications, collect and provide this information to the Salesforce administrator configuring Medallia for Salesforce in Salesforce

From MedalliaValue
OAuth (authorization to connect to the instance)Client IDsalesforce_oauth
Client SecretPassword for the Client ID.
Token URLOAuth token endpoint for the Medallia Web reporting instance. The URL looks similar to this:
https://instance.medallia.com/oauth/company/token
Medallia Instance URLsBase URLURL to the production Medallia Web reporting instance. The URL looks similar to this:
https://instance.medallia.com
Sandbox URL(optional) URL to the sandbox instance
Services (web feeds)Case closuresfdc_create_survey_case_closed
Opportunity Wonsfdc_create_survey_opportunity_won

Notes:

  • Token URL is the OAuth Token Endpoint listed in Medallia Web reporting Setup on the Integrations > Security > OAuth > Configuration screen.

  • Client ID and Client Secret are defined on the Integrations > OAuth > Clients screen.

    Note the Client Secret is only shown when setting its value.

  • Web feeds are associated with "services" in Salesforce. These feed information to import into Medallia Experience Cloud. Medallia for Salesforce has two default feeds. Depending on the business case, the client might require additional feeds, or might need to rename the default feeds.

  • Spec ID is the ID of the survey program associated with an "auto-triggered" Salesforce program. Find this ID on the Feedback > Surveying > Survey Programs > Specs screen for the associated survey.

Configure importers to match in-bound Salesforce data

The Medallia for Salesforce Salesforce app passes data to Medallia Experience Cloud via web feeds into the Auto Importer. The Medallia for Salesforce package includes template importer specifications. Use the templates as a starting point for importing the Salesforce data into existing survey programs.

The template import specifications include:

  • The assumption that the Salesforce Account ID is the unit ID. Else, there is some common ID present in Salesforce and can be added to the payload. If not, further transformation to match data will be required.

  • Salesforce admins can add new fields to the payload by adding them in the Salesforce FieldSet. Add the corresponding mapping in the import specification.

  • All necessary flags to have the record redirected to the relevant survey program on the Medallia side.

Important: If you create new Web Feeds rather than using the Web Feed endpoints provided in the Medallia for Salesforce package, you will need to provide permissions to new Web Feeds to the Salesforce Inbound API Role. If you do not authorize new Web Feeds to this role, Salesforce will not be able to connect to those new endpoints. To do this, go to Admin Suite > Organization > Roles > Salesforce Inbound API Role > Edit Role > Administrative Permissions > scroll down to Integrations > Import Data via Web Feed permission. Add new Web Feeds to the list of enabled web feeds in this permission.

'Salesforce Inbound API' role settings

Push the survey program

To generate surveys and send invitations, Medallia Experience Cloud needs at least one version of the survey program. Make sure to "push" a new one if there it has not yet been versioned.

Configure Omni Exporter specifications for (out-bound to) Salesforce data

Omni Exporter is the webhook for sending data to external systems. For Medallia for Salesforce, there are two out-bound flows in the package:

  • Invitation status sync

  • Survey response sync

    Note: The package can also support alert closure use cases. Contact your Medallia expert to implement them for your program as an add-on offering, purchased separately from the rest of the package.

Configure the Omni Exporter specifications with this data provided by the Salesforce administrator:

From SalesforceValue
Integration userUsername
Password
Security token
Salesforce instancesSalesforce instance(s): one for production like na72 or na54, and one for sandbox like cs64 or cs53.

The My domain URL can be entered instead of the Salesforce instance. URLs are in the form yourcompanyname.my.salesforce.com.

Login properties

In the Omni Exporter Login properties section, enter these values:

Omni Exporter Login options

  1. The Login URL server is either:

    Salesforce environmentSalesforce server URL
    Productionhttps://login.salesforce.com/…
    Sandboxhttps://test.salesforce.com/…
  2. In the Login Headers, update the values in the header.

    usernameUse the username provided
    passwordConcatenate the password and security token. For example, when the password is MyPwd and the token is SomeToken, the password value is MyPwdSomeToken.

HTTP Request Assembly

In the HTTP Request Assembly section, change the instance value to match the one provided by the Salesforce admin.

Omni Exporter HTTP Request Assembly options

Important: Do not change the Headers parameter. If you accidentally update or change the Headers field, reset it to: Authorization: Bearer $TOKEN$. For information see OAuth tokens and request headers.

HTTP payload

The Body of the HTTP defines the "payload" to send to Salesforce. In the payload list, add or remove fields to correspond to the ones your configuration requires.

Note: Verify all fields referenced in the body are added in the 'Fields used in the action' list. Fields not added to that section will produce null values when Omni Exporter generates the events events.

Omni Exporter HTTP Body payload