1

Incoming Refresh

Overview

The Converse Desk enables us to view conversations under multiple filters. While on one filter, we may wish to be notified of new incoming messages without having to move from our current location.

If an infinite-scroll is present, we may be forced to move to the top of the page compelling us to forgo our current activity on a conversation.

The Incoming refresh functionality, therefore, simply increments the number next to the Inbox and Object icons in the Converse Desk as an indication that new messages are available. If you click on it, it will take you to the first page and all the conversations are displayed there.

If you are however on the first page, it refreshes the page with the new message. A new record is appended at the top of the page.

Error Scenarios

Incoming Refresh may fail to function owing to the following error scenarios:

Notifications disabled

You need to enable notifications to view intimations of incoming messages. Unblock all browser notification functionalities to view the notification.

Comet Resource Fails to Load

Comet Resource are Java Scripts provided by Salesforce. We copy this and create it as a static resource in our package. If this resource fails to load, then incoming refresh will never work as expected.

Comet Resource is used for Streaming API which enables the User Interface to know that a record was created or updated in the backend.

While a Push topic helps you configure what you want to listen to, the Comet helps you in capturing that information and make it available. So, in this scenario there could be two things that could have gone wrong.

•Either the Push topic was not configured properly
OR

•the Comet Resource failed to load  

Do the following to detect the Comet Resources failure to load:

1.Right-click the page and click Inspect.

2.Under Console note the error messages (highlighted in Red) indicating the failure of the Comet Resources to load.

To resolve the error you can reload the page to see if the resource loads properly. If there are no errors, you should be able to view notifications.

CORS Issue – Salesforce Workaround

If errors persist, the issue could be due to a CORS problem. This is a Salesforce internal problem. We have received a workaround from Salesforce for this. This workaround is available from version 1.54-55. We have implemented that change from version 1.56. Users of 1.56 or later should not be facing this issue.

Customer needs to be taken to the said version to resolve this issue or a patch needs to be created.




Incoming Not Loading

Scenario

Unable to see incoming messages.

Possible Causes

This occurs when data is present in the two object mode and you have set the single object mode. In this scenario, it is unable to identify incoming messages.

Issue Resolution

Follow the given procedure to resolve the issues:

  1. Under Global Settings, check to see if Use Single Message Object is enabled.
  2. If yes, then check for messages with the direction IN.
  3. Look for conversations within these incoming messages.
  4. The possible scenarios may occur:
    • You do not find any relevant conversations for the incoming messages. This indicates a genuine problem.
    • You find relevant conversations. It indicates that all these conversations failed to get transferred during migration.



Global Components

A global component is a reusable component that has the capability to be called from outside the SMS-Magic Converse package. Global Components are indicated by the attribute access= “Global” within its code.

The Converse Desk utilizes three main Global components. These include the following:

The Composer component – This appears below the message flow interface and is used to compose the message, attach sender ID and templates, append the Recipient address and perform other activities like attach emojis, include Internal notes and check the character limit. The Composer component cannot be used independently and will always be used along with the message flow and conversation flow.

The Conversation Component – This comprises the Message flow interface. It provides a phone-like look and feel and comprises a dump of all the messages without any grouping or categorization.

The ConversationView Component – This component displays all the conversations that have happened for an object. It groups all conversations by the object type and displays details including the intended recipient, time, message direction (incoming or outgoing) conversation topic and the message extract.

  • Global Components enable you to display Converse Desk on the tab view.
  • In order to display an embedded view of conversations from a page, the conversation components need to be defined as Global.



  • Unable to send messages using Conversation View/Converse Desk/Converse Inbox

    Scenario

    A user tries to send messages using Conversation View/Converse desk/ECD but is unable to do so.


    Possible Causes

    The following reasons may be responsible for this issue:

    • The user has not been assigned an SMS-Magic License.
    • The user does not have permissions granted for SMS-Magic object through the permission sets or from the profile level.
    • The user does not have read access to the name field, mobile field or SMS Opt-Out/SMS Opt-In field referenced in the MOC.
    • SMS Credits are exhausted.
    • Mobile fields used in MOC is empty.
    • SMS History record is created but SMS is not delivered (due to an issue on the providers end).
    • A custom automation rule is causing an error with SMS History record creation

    Issue Resolution

    Make sure that the user has a license assigned to him/her as well as he/she has appropriate permissions assigned.

    You can check the following link to review the minimum access level – https://www.sms-magic.com/technical-resource-center/sms-magic-guide-for-salesforce-admin/sms-magic-converse-guide-for-salesforce-admin/

    Navigation: Table of Contents > SMS-Magic Converse Permission Details.

    The process builder/workflow/flow/trigger from the customer’s org may be incorrectly configured on the SMS History object. Due to this, the SMS History record is not getting created.

    Review the configurations and modify it so that the SMS History record is created correctly. Even after reviewing and consulting with the CS team, if you are not able to find a solution, then, you can reach out to the Dev team.




    Conversation Object Structure

    The Conversation object is the primary object that stores all information for the SMS History object as well as for the Incoming SMS History object (If you do not use Single-object structure). You need to focus on the following fields:

    You will require a Subscriber Access to Customer’s Org to access the Setup pages.
    Field Description
    IsUnread This indicates that the conversation is not read and is available under the Unread Filter.The Unread state would be based on whether it is an Incoming or Outgoing messages.•Outgoing Messages – The IsUnread flag is set to False.•Incoming Messages – The IsUnread flag is set to True.When a message is opened, the IsUnread field is cleared. Every time a new message comes in, a value is set and updated. The IsUnread Flag is set to true again and the New Count field (described below) is incremented by 1.
    During Data Migration all incoming message are set to New by default. You will have to check and update all conversations that you have previously worked on.
    Field Description
    LastIncomingTime Displays the time when the last message was received on this conversation
    LastMessageDirection Indicates the direction of the last Message received (Incoming/Outgoing)
    LastMessageTime Indicates the time the last message was received.
    New Count Indicates the number of new messages
    Object Indicates the name of the Primary Object that initiated the conversation. This is one of the MOC objects identified.
    Mobile Number This displays the Conversation Recipient Map.
    Sender This displays the Conversation Sender Map and comprises the Sender ID Lookup.



    Converse Inbox

    The Converse Inbox is:

    •A minimized version of the Converse Desk.

    •It enables user to respond to new or unread messages, opportunities from leads or prospects with ease, without disrupting their workflow.

    •It can be accessed from object pages, sales and service consoles as well as from the Salesforce Mobile App.

    •It provides similar feature benefits like the Converse Desk.

    You can use the following code snippet to integrate the Embedded Desk in Visualforce pages for Classic versions:

    For Lightning Interfaces, it will be a GUI based functionality. You will be allowed to make necessary changes by selecting the following values:

    • Embed Context = Activity/Detail
    • UI Context = Lightning
    <apex:page showHeader="false" standardController="Lead">

        <apex:includeLightning rendered="true"/>
        <div id="lightning" />

        <script>
            var recordId = "{!$CurrentPage.parameters.id}";
            $Lightning.use(
                "smagicinteract:conversationApp", 
                function() {
                    $Lightning.createComponent(
                        "smagicinteract:conversationView",
                        {
                             recordId : recordId,
                             embedContext : "detail",
                             uiContext : "classic"
                        },
                        "lightning",
                        function(cmp) {
                        }

    Check and modify the following attributes in the code:

    Attribute Name Description
    standardController Type the Object name in which you wish to embed the Desk.
    For example, Contact.
    embedContext This should display Detail.
    UI Context This should display Classic.



    Configure CRM Actions

    CRM actions are taken on objects (both standard and Custom) to help user achieve their CRM objectives.

    User should be provided with the custom permission “AllowToTakeActionOnConversation” in order to perform (access) any CRM Action.

    CRM Actions can be configured in two ways:

    • From Custom Object Builder
    • From Converse Settings interface
    Refer to the SMS-Magic Guide for Salesforce Admin for details on configuring the CRM Actions from Converse Settings.

    Configure CRM Actions from Custom Object Builder

    CRM Actions can be configured under three objects. The table given below highlights the three objects and the relevant fields you need to customize:

    Action
    Stores all the actions from which the user chooses
    Attributes Description
    Action Name Type the name of the action to be performed. For example, Create a lead.
    Action To Perform Add the action to be performed. For example, create a record.
    This is Picklist data type.
    Action Type Select the type of action to be performed. For example, Manual.
    Description Type a brief description on the objective achieved by the action.For example, this action will create a new record.
    Action Parameter
    Define the parameters that helps user perform the actions
    Attributes Description
    Action Parameter Name Type a name for the Action parameter.
    Parameter Type Enter the parameter type. For example, Field, URL
    Parameter Name Type the name of the parameter. For example, ObjectName.
    Action Select the action that you have created under Actions setup page.
    Parameter Value Type the value of the parameter. For example, Field name or value.
    Object Type the name of the object from which the field value is retrieved.
    This is required only if you have selected the parameter value as field.
    Action ObjectStores the mapping of the object and its associated actions.
    Attributes Description
    Action Object Name Type a name for the Action object (User-defined)
    Action Select the action you have created in the setup pages



    Related Conversation

    Every conversation involves two lookups. One is of a primary object and the other is of a related objects which the primary object will use as a lookup. Related objects are objects that the primary object references at various stages of the CRM lifecycle. A detailed conversation trail displays all messages that are sent to the primary object. It also includes all those that have been sent to or received from the associated or related objects in relation to the primary object. All such conversation threads are known as Related Conversations.

    In order to view, related conversations, we can map the primary MOC and the lookup fields that will populate the conversation.

    Configure The Mapping for Related Conversation

    New Conversation Related Object
    Attributes Description
    MOC Select the Primary object. The conversation will center around this object.
    Conversation Field Type the Lookup field for the object that will be used to populate the conversation.
    Absolute Field Provide the object hierarchies to define the parent-child relationships.