Custom channel

Learn how to create and manage a custom channel, including details on authentication settings and channel properties.

A Custom channel is a messaging service that implements and manages communications with respondents, but which is not one of the channels provided with Medallia Conversations. A custom channel uses APIs to communicate with Conversations. This allows companies to implement channels not provided by Medallia.

Custom message adapter is a bridge between Conversations and the channel provider/messaging service

Note: For details about creating the communications between the custom channel and Medallia Conversations, see Custom channel adapter.

Creating a Custom channel

  1. Create a custom service adapter communicate between the service and Medallia Conversations. See Custom channel adapter for details about the adapter.

  2. Open the Channels list: click the Channels tab.

  3. Click New Channel.

    Channels list with the New Channel control highlighted

  4. In the Add Channel panel, select:

    • Custom

  5. Provide:

    • Name — descriptive name of the channel.

    • Description — a description of the channel, including its purpose and the name of the channel it is targeting.

  6. In the Auth section, enter

    • Custom send message URL — URL on the custom server that Medallia Conversations uses to connect to the service.

    • Page ID — Page or segment ID provided by the custom channel service to identify the application service.

    • App ID — Application ID provided by the custom channel service to identify the application.

    • Inbound auth settings — The mechanism and its settings that authenticate the custom channel when it sends requests to Medallia Conversations. See Authentication settings for details.

    • Outbound auth settings — The mechanism and its settings that authenticate Medallia Conversations when it sends requests to the custom channel. See Authentication settings for details.

  7. Click Save.

The channel is now ready to communicate with the custom channel.

Custom channel properties

Category
Custom
Channel name
(required) Unique name of the channel. For usability, make the name descriptive and include the category in the name to differentiate the channel from similar channels.

For example, here are two channels for Orion Retail: one for SMS and one for Facebook:

Two channels: the name of one ends with SMS and the other with FB

Channel description
Text description of the purpose of the channel. Mention any restrictions like blackout dates and availability windows.
Availability windows

Availability windows identify when the channel is available to send feed-based invitations. Use the availability windows to pause the channel during times when people might not be receptive to the invitation, such as on weekends or at night. Note, this does not affect feedless surveys, which can be taken at any time.

The day and time are based on the respondent's timezone, as specified in the timezone information included in the raw invitation provided by the company, and processed by the import specification. See Import specifications for details about the import process.

When a window opens, messages are sent at random times within the next hour; they do not all go at at the opening of the window.

Important: Select a window that is greater than 1 hour/60 minutes. Selecting a window that is less than 1 hour can cause invitations to be sent during the restricted window.
Tip: Use availability windows for channels that contact or push the conversation to respondents. For passive channels — like web pages or social media — use them as needed by your company.

This example disables the channel on weekends, and between the hours of 7:00 p.m. and 9:00 a.m.

Availability windows for weekdays only

Blackout dates

Blackout dates are specific days of a year when the channel does not send feed-based invitations. Use the dates to pause invitations to the channel on days when respondents might not be receptive, such as holidays. Messages scheduled to be sent on blackout dates are sent after the blackout expires. Note, this does not affect feedless surveys, which can be taken at any time.

Tip: Use availability windows for channels that contact or push the conversation to respondents. For passive channels — like web pages or social media — use them as needed by your company.

This example disables the channel on the U.S. holidays of the Fourth of July and Thanksgiving in 2018.

Three blackout dates in year 2018

Opt-out keywords
Words or phrases respondents may send requesting their intention to opt-out of receiving future conversations from the company, on all channels. After receiving the opt-out instruction, the channel sends a message to the respondent acknowledging the request.
Note: A channel must have at least one opt-out keyword. The default keyword is 'stop'.

Each entry may be a single word, such as 'stop', or a multi-word phrase such as 'opt me out'. The text is case-insensitive: 'stop', 'STOP', and 'Stop' are all recognized when the word is 'stop'.

Two Opt-out keyword phrases: 'stop' and 'Opt Me Out'

Opt-out message
Text message to send to the respondent after the channel receives an Opt-out keyword from the respondent.

Authentication settings

Customer send message URL
(required) URL on the custom server that Medallia Conversations uses to connect to the service. See Adapter authentication for details.
Page ID
(required) Page or segment ID provided by the channel service to identify requests from the unique instance on the application service that processes this channel.
App ID
(required) Application ID provided by the custom channel service to identify the application.
Get profile
Request the respondent's profile information (based on the respondent ID) from the custom service. When disabled, Medallia Conversations does not request profile information.
Typing On/Off
Tell the service to send a "typing" notification to the respondent while working on/waiting for the next message from Medallia Conversations. When disabled, do not send any "typing" notifications.
Automatic send disposition status upon outbound message API 200 OK response
Consider a message as "Sent" — and update the invite/dialog disposition accordingly — upon outbound message API call with 200 OK response. Note the custom message adapter still needs to send the delivery receipt upon successful delivery of the message to the respondent. Otherwise, when disabled, the disposition report is sent explicitly by the adapter.

Inbound and outbound settings define the authentication mechanism to use when connecting to the channel. The mechanism can be the same or different for inbound (channel → Conversations) and outbound (Conversations → channel) communications. The mechanisms are:

  • OAuth2 uses a client ID and secret to form a request for a temporary access token from an authentication service. The requester then includes that token in requests from the resource service.

  • API-Token a token is sent as an HTTP Authorization header with Bearer token, or as query parameter in API call. The receiving service is responsible for accepting or rejecting the token value.

  • Custom signature or SignedRequest (inbound only). The HTTP post request contains an X-Hub-Signature header with the SHA1 signature of the post payload. The signature is calculated using the keyed-hash message authentication code (HMAC) where the key is the secret property in the channel definition. The signature is then prefixed with sha1=.

These mechanisms are available as follows:

Auth typeInboundOutbound
OAuth2YesYes
API-TokenNoYes (default)
Custom signatureYes (default)No

OAuth2 authentication settings

Settings available when the Auth type is OAuth2.
OAuth2 server URL
(required) URl to the service that authenticates the client and which then issues an access token.
  • Inbound — the Medallia server that authenticates the custom channel. this value should always be https://[mc-hostname]/oauth/token

  • Outbound — the service the custom channel uses to authenticate Medallia Conversations following the "Client credentials protocol flow" OAuth scheme, which must support the Client Credentials grant.

Client ID
(required) Identifies the client application
  • Inbound — defined on the Medallia Experience Cloud Setup Clients screen. The secret must be unique for each custom channel; multiple channels cannot use same ID.

  • Outbound — provided by the respondent channel administrator

Client secret
(required) A value shared by the Medallia Conversations and the custom channel authentication service, and which further identifies the client to the authentication service. Can be any agreed to string of common characters.
Scope (outbound only)
(optional) Resource fields required by the custom channel authentication service that identify the account information Medallia Conversations is requesting. This parameter implements the OAuth 2.0 scope parameter. For details, see OAuth Scopes. The Scope field is available only when Enforce is on.
Enforce (scope)
Include the Scope parameter in the request. Turn off to disable the Scope field and omit the Scope parameter in the request.
Access token lifetime (inbound only)
(required; in minutes) How long the access token is valid; default is 60 minutes, max is 1,440 minutes (24 hours).
Send credentials in body
Include the authentication credentials in the body of the request instead of the header (default when off).

API-Token authentication settings

Settings available when the Auth type is API-Token.
Token
(required) Application API access token provided by the custom service. See API-token for details.
Use authorization header to send the token
Send the token as an HTTP Authorization header with Bearer token. Otherwise, when disabled, send the token as query parameter in the outbound message API calls.

SignedRequest authentication settings

Settings available when the Auth type is Signed Request.

Secret
(required) Application API secret provided by the custom service. See Inbound authentication (signed request) for details.

Default Conversation Throttle

The conversation throttle limits how many Default conversation messages, for a specific Conversation, can be sent to the same recipient within a time window. This prevents infinite "ping-pong" loops with auto-responders or answering machines, thereby reducing accidental spam, controlling costs, and protecting customer trust.

For example, by default Medallia Conversations sends no more than 3 Default Conversations to the same recipient with a 90-second time period. Instead of making a 4th attempt, the recipient is blocked for 24 hours from receiving a Default Conversation. After 24 hours, Medallia Conversations again tries to send default Conversations to the recipient.

To view a list of the blocked recipients, see Blocked Records.

Maximum number of Default Conversations
Maximum number of Default Conversations (unrecognized or fallback replies) that can be sent to a recipient within the configured Time Window. Once this limit is reached, no further default replies are sent to that recipient until the Reset Time expires.

Min: 1; max 10,000; default: 3.

Time window (seconds)
The time period during which the system counts the number of Default Conversations sent. If the threshold is reached within this period, the recipient is temporarily blocked from receiving additional default conversations until the Reset Time elapses.

Min: 0.0036 seconds; max: 86,400 seconds (24 hours); default: 90 seconds.

Reset time (hours)
How long a recipient remains blocked from receiving default messages after exceeding the Default Conversations Threshold within the Time window. The counter resets at the end of this period, allowing the recipient to receive default replies again.

Min: 0.0167 hours (1 min); 720 hours (30 days); default: 24 hours.

Channel settings

Channel settings are custom configuration options to pass to the channel or channel service. Each setting is a key/value pair.

Channel setting with Key=account and Value=MEDALLIA, Configuration is off

By default, each setting is passed to the channel service as a header field in the HTTP message sent to the service. For example, a curl command would include the setting above similar to this this:

curl -X POST -H "Content-Type: application/json" \
  -H 'account: MEDALLIA' \
  -d '{ … }'

When Configuration is enabled, the setting is NOT included in the HTTP request, and is instead assumed to be an advanced channel configuration not included in the list of channel options.

Advanced channel configurations

These are the available advanced settings.

Channel settingChannelDescription
MAX_MESSAGE_LENGTHCustom and FacebookMaximum length of a message before splitting it into multiple messages. A split message appears as two (or more) messages in the channel display. By default, the message is split when there are more than 320 characters. Change this setting to increase the limit up to 1024 characters.
SPREAD_SCHEDULE_TIME_WINDOW_IN_MINUTES
 All channel types except WebChat.Instead of immediately sending all invitations, randomly send them all during the count of minutes specified by the value, such as 10 minutes.
ENABLE_USER_SYNCSlack (only)Set to true to sync the user info from the Slack workspace. This helps trigger surveys by user email when the Slack user ID is not known.