WhatsApp

Restriction: Sections of this document are available to Medallia employees only and they are not to be shared outside the company.

A WhatsApp channel communicates with respondents using the WhatsApp messaging system. When companies send messages to respondents, the messages appear from the WhatsApp Business account associated with the channel. Respondents can establish the initial connection to a channel by sending a message to the WhatsApp Business account or phone number. This process is the respondent's opt-in action, and it begins the initial Conversation.

Implementation scenarios

The choice of implementation scenario depends on the client's needs and ownership of the Twilio account.

Scenario 1 — Medallia Conversations (master) Twilio account

This is the most common model: each Medallia client is provisioned as a sub-account under the main Medallia Conversations (master) Twilio account. While this approach is widely used, it has a key limitation: Twilio enforces a one-to-one relationship between a sub-account and a WhatsApp Business account. A client who requires more than one WhatsApp Business account cannot use this model. In this setup, Medallia manages all aspects of the Twilio account and its configuration.

Scenario 2 — Dedicated client Twilio account

Medallia manages a dedicated Twilio account for clients who require more than one WhatsApp Business account. Medallia can create multiple sub-accounts associated to this dedicated account, each linked to a separate WhatsApp Business account. This allows for the required multiple WhatsApp Business accounts while still adhering to the one-to-one sub-account-to-business-account rule. Medallia owns and configures this account.

Scenario 3 — Client provides Twilio account

In this scenario, clients bring their own Twilio account. The client's IT team has full ownership and access, while Medallia has no direct access to the account or its configuration.

Creating a WhatsApp channel

Important: The WhatsApp Business platform operates with a specific hierarchy of accounts managed by Meta. The WhatsApp Business account is the main container for a business's WhatsApp presence. Each Medallia Conversations client is provisioned as a sub-account under the main Medallia Conversations Twilio account. However, some clients own and manage their own account. The client's team maintains full ownership and access, while Medallia has no direct access to the account or its configuration. In this scenario, the client's Twilio administrator must perform the self sign-up process on the Twilio Console before creating the channel.
  1. Setup a WhatsApp Business account. The account must have a phone number and verified name.
  2. Obtain your company's Account SID and Authorization Token from Medallia, Inc.

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

  4. Click New Channel.

    Channels list with the New Channel control highlighted

  5. In the Add Channel panel, select:

    • WhatsApp

  6. 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.

  7. In the WhatsApp Setup section, enter

    • Account SID — Company's unique account SID provided by Medallia, Inc.

    • Authorization Token — Company's account authorization token provided by Medallia, Inc.

    • Messaging Service — Always "whatsapp:+" followed by the phone number of the WhatsApp account, like this: whatsapp:+16505551212.

  8. Select the I want to set up the WhatsApp sender for this phone number Checkbox icon. checkbox and then select:

    Warning: In the case of onboarded clients, where the Twilio WhatsApp Sender has already been created, do not use the path of selecting the I want to set up the WhatsApp sender for this phone number, just specify Account SID, Authorization Token and the Messaging Service.
    1. This is my own phone number:

      Important: The Bring your Own Number (BYON) flow has up to 5 steps, it requires the user to either have the number already set in a WhatsApp Business Profile or have access to the device to receive the verification code (whether is a real physical phone number, a virtual emulator or similar).
      1. Click Get started.

        This creates the channel and triggers the embedded sign-up process for those scenarios where Medallia manages the client's Twilio account. The sign-up is configured end-to-end through Medallia Conversations.

      2. On the What you will need dialog, click Login with Facebook.

      3. Fill in your business information:

        Tip: To fill in this information you need access to the Meta Business account from which you want to send the messages. You need to specify user and password to get access to the Meta Business account and a two factor authentication token to log in
        1. Select a verified business portfolio from the dropdown list or create one.

          Restriction: Clients can verify their own portfolio through Meta, in which case, Meta enables up to 20 WhatsApp Business accounts per portfolio and up to 20 phone numbers per WhatsApp Business account. Otherwise, you get 2 phone numbers per portfolio for security reasons.
      4. Click Next.

      5. Choose a WhatsApp Business account from the dropdown or create a new one.

      6. Choose a WhatsApp Business profile from the dropdown or create a new one.

      7. Add your WhatsApp phone number. When you bring your own number, verification is required: you need to have access to the device to receive the verification code (whether it is a real physical phone number, a virtual emulator, or similar).

      8. Select the verification method.

        Restriction: The number you enter cannot be registered to an existing WhatsApp account, whether it is a business account or a regular WhatsApp user.
      9. Verify your phone number: enter the verification code.

        Tip: You can also select to receive a phone call instead. This second option is usually safer, since in some cases you will no0t receive the verification code on your phone. If you try too many times — more than 3 —, the phone number is blocked for a day and you cannot onboard it.
      10. Review the Medallia Conversations access request and click Confirm.

        Medallia Conversations connects your account. This may take some time.

      11. Click Finish.

    2. This is a Twilio phone number:

      1. Click Get started.

        This creates the channel and triggers the embedded sign-up process for those scenarios where Medallia manages the client's Twilio account.

      2. On the What you will need dialog, click Login with Facebook.

      3. On the Continue dialog, click Continue as Conversations.

      4. Next, connect your account to Meta by clicking Get started.

      5. Fill in your business information:

        1. Select a business portfolio from the dropdown list or create one.

      6. Click Next.

      7. Choose a WhatsApp Business account from the dropdown or create a new one.

      8. Review the Medallia Conversations access request and click Confirm.

        Medallia Conversations connects your account. This may take some time.

      9. Click Finish.

  9. Click Save.

The channel is now ready to communicate with WhatsApp.

Important: When an end-user sends your business a WhatsApp message, it starts a 24-hour messaging session, during which WhatsApp can send free-form (non-templated) messages. Once the 24-hour window expires, WhatsApp is only allowed to send messages using pre-approved templates. Responses received after 24 hours from the original invitation sent to the customer will not trigger a continuation of the conversation.

Post-creation steps

Once the channel is created, Medallia administrators must go to the WhatsApp Senders screen and accept the agreements.

WhatsApp Sender agreement dialog

Medallia administrators need to review the WhatsApp senders parameters on the Twilio Console. If the webhooks were not properly configured, manually configure them with the information below, and file a ticket with Medallia Support in Knowledge Center to investigate the issue:

Webhook URL for incoming messages format:

https://<instance>/cg/mc/whatsapp/reply

Fallback URL for incoming messages format:

https://<instance>/cg/mc/whatsapp/fallback

Status callback URL format:

https://<instance>/cg/mc/whatsapp/status

WhatsApp properties

Category
WhatsApp
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.
Account SID
(Required) Account SID provided by Medallia, Inc.
Authorization Token
(Required) Account authorization token provided by Medallia, Inc.
Messaging Service
(Required) Always "whatsapp:+" followed by the phone number of the WhatsApp Business account, like this: whatsapp:+16505551212.
Tip: Medallia, Inc. can manage all aspects of the Twilio account and its configuration and this number is provided by Medallia, but if you bring your own number, you need to either have the number already set in a WhatsApp Business Profile or have access to the device to receive the verification code (whether it is a real physical phone number, a virtual emulator, or similar).

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 advanced, custom channel configuration options. Each setting is a key/value pair.

Channel setting where Key is 'my_key' and Value is 'some_value'

Advanced channel configurations

These are the available advanced settings.

Channel settingChannelDescription
SPREAD_SCHEDULE_TIME_WINDOW_IN_MINUTESAll 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.