Date: 22nd July 2022
- Issue: The customer had a customization request to setup the validation rule for the user
As per the customer’s requirement, the validation rule was added with the click of the send button. Implemented the validation rule for all three interfaces: Converse Bulk interface, Send Bulk SMS interface, and Community Send Bulk SMS interface.
Implemented the rule with the name of the contact list and the name of the list view from contacts, followed by a continuous and cancel button.
The requirement of validation pop-up while sending a bulk Campaign from the converse app is now implemented.
Date: 9th March 2022
- Issue: Feature license error for the power license users
The SMS-Magic user who holds a Power License faced an issue while sending an SMS from the SMS tab on Salesforce and accessing the Converse Desk tab of SMS-Magic. It prompted an error message that the user didn’t have a license for the feature as it was a part of Standard and Enterprise plans.
Added a filter while querying licenses for users in the get license method of License Service.
The issue related to the feature license for the power-licensed users is now resolved.
- Issue: Improper working Template for the SMS-History records created via business hours functionality
When the SMS-History records were created from the business hours with source “1495” and were scheduled for the next business hours, the SMS text was not getting populated.
In the send SMS trigger helper class, while adding the automation message record with source value as “1495,” if the code checks the disable SMS on-trigger field value as 1, the message record was not added to the list of automated messages. The template is not resolved for such records, and SMS text is not populated.
Removed the check for the disable SMS on-trigger field while adding the message record. Thus, the message record will be added to the automated message list, and the associated template will be resolved.
The issue related to the SMS-History records template for the non-business hours is now resolved.
Date: 30th Oct 21
- The customer was facing an issue while using the Converse App
Fix: The following error message was detected while the customer was using the Converse App:
Error Message:Invalid field OwnerId for Training__c.
The user was trying to send an SMS using the Detail record from Converse App, and the Owner ID did not exist for the detailed record. Hence the issue encountered.
To solve this issue, fixed the get RecordsSender ID() method of SenderService.cls, and explicitly added “OwnerID” in the fieldName. Also fixed the code, and checked if the object was detailed which took the Owner ID from the master object as well as used the existing method MessageUtility.personObjectOwnerFldMap().
- The customer wanted to exceed the limit of objects from 10 to more, to the Message Object Configuration
Fix: There was a requirement from the customer to exceed the limit of objects from 10 to more so as to be able to text to more than 10 objects. While the customer users were trying to add the 11th object on Message Object Configuration, they were receiving an error regarding the limit of objects being exceeded.
The customer had a limitation of Max 10 Message Object Configuration records in converse settings. That’s why this error was occurring.
To solve this issue, added Configurable Static Resource with name – SMIExceed Message Object Configuration Limit. It contained a value > 10, and thus allowed users to add that number of Message Object Configuration records without any error.
Date: 26th Oct 21
- Issue: Customer was facing Error while sending outgoing SMS through Non-Admin Users
Fix: When a non-admin user Cody Woody tried to send a text from the Conversation component it added the Contact object and was getting the following error message:
(magic interact.SendSMSTrigger: execution of AfterInsert)
It was caused by: System.NullPointerException: Attempt to de-reference a null object
The customer was using CustomLookupService and adding Conversation lookup on the SMS record before inserting. The Conversation ID that was associated with the SMS record before inserting was owned by the Admin user and sharing setting on the Conversation object. This user did not have access to that conversation record. In our code we use this conversation ID and create a map of ID and conversation record to access conversation records in the updateConversationFields() method of ConversationService.cls class. Here conversation value was null therefore an error was thrown.
To solve this issue Added a null check so that if the conversation is null then skip that record.
- Issues with Auto Append Text In Compliance
Fix: The customer was facing issues with the Auto Append option in the compliance section.
They have configured automation in their system, where once the specific response is received on the basis of criteria and outgoing message and was sent out automatically.
When the auto-append option was enabled, the response was getting triggered correctly but the Compliance response that was supposed to go along with it was getting triggered separately creating a record. Also, a NULL value was added in the text.
When the customer was trying to create an SMS History record via Process Builder. In sendSMSTriggerhelper.sendSMSBeforeTrigger(), we were checking for sources. In this case, the source was an automated message & for the automated message, we were appending the opt-out instruction message. In the sendSMSAfterTrigger() method, we were resolving the template bypassing automatedSmsList() to resolve the template method. While adding values in automatedSmsList we check if SMS Text is null & that condition was falling because we were appending opt-out instructions before trigger. That’s why it was sending a null text in SMS Text.
Date: 28th Sept 21
- Issue: A new conversation was getting created for every message
Fix: The customer had reported for all the users who had the non-admin profile, that every message created a new conversation, whereas all the incoming and outgoing messages were getting attached to a single conversation from the admin profile user.
To solve this issue, the unnecessary field(Lead) was queried. Conversation creation and lookup fields were set on receiving an incoming message(Single/ dual object) for the user who did not have permission to lead the object.
- Issue: UI Injection point for Conversations component | Customisation Use case requirement
Fix: Customer’s requirement: (To be implemented via Customisation)
On the Conversation Component, the conversations were visible based on the mobile number selected. Conversations related to the “To” number were visible on the conversation component on the record page. Thus the Conversations were changed if the “To” mobile number was changed.
An injection point was required in the Interact package using which this requirement was achieved via customization.
To achieve this customization, an injection point was created for a custom injection service to which a selected phone number or Sender ID was provided as a parameter, and the data received from the custom injection service was used to display on the UI in the message list component.
Date: 1st Sept 21
- Issue: Customer was not able to access custom Inbox in Converse Desk
Fix: The issue was with Safari 14.1.1 and above. On the Converse Desk, when the customer was trying to open a Custom inbox, it was throwing an error. The issue was reproduced in Test org as well.
In the SMSUtility class, the BaseUrl method was not returning to the correct org domain URL and hence the issue was occurring.
The screenshot is attached below with the error:
To resolve this issue, the debug logs of affected users and the non-affected users were compared. Different Endpoints for those users were found out.
Further, SMSMagicConfigurationRemoteURL Remote Site Setting was updated and set within the correct Remote Site URL. This was working fine on the Chrome browser but the issue was reproducible on the Safari browser. In SMSUtility class, the getBaseUrl method was not returning the correct org domain URL hence this issue was occurring. The getBaseUrl method of the SMSUtility class was then updated to return the correct org domain URL.
Date: 23rd Aug 21
- Issue: Multiple Issues were reported with converse desk
In the Converse Desk, ‘My Inbox’ page should get auto-refreshed for the Conversation owner, however, when the client went to the Converse Desk >> All sections, this page was not getting refreshed automatically for all the users.
The client wanted the All list view to be refreshed automatically for all their users. The user had to click on the refresh icon or sometimes complete page refresh was required to see the latest incoming SMS.
When the customers opened the Conversation on the Converse desk and clicked on Lookup filters of the latest outgoing SMS, the details of the lookup information were not displaying properly on the screen.
The OAuth user was continuously getting governor limit emails from Salesforce when the user went to Converse Desk and clicked on any list view in the Converse desk. The client had requested to look into this issue on priority.
There was a check only for Inbox whenever a new incoming message on the Converse Desk was received. If the user tried to open any custom inbox & if any incoming message was received, as the user was in the custom inbox, the inbox check condition was failing.
To solve this issue the check for Inbox was removed.
Date: 17th Aug 2021
- Issue: The customer was facing an issue while using the Injection code and the code was not working.
Sender Id Allocation – It allows students from multiple Accounts to send texts to – which was considered brand bleed and the aspect was unique sender number by Account / Partner and separate/unique content by Account / Partner. It was showing all Sender Numbers that were purchased under the Wiley Account as Sender Numbers was restricted to one sender number that applied to the Account associated with the students chosen for bulk SMS.
Therefore, the customer received the underlying code/page/component (from package code) and applied these 2 restrictions, and used the same Bulk SMS Sending Page. The design injection points were not enabled for the bulk components.
To solve this issue the backward compatibility (upgrade scenarios) and use cases of other customers was kept, the record id check was not removed and an alternative flag was added. The injection point was functional for the bulk interface as well and a certain flag was enabled.
Date: 29th July 2021
- Issue: Customer was facing Issues with Auto Append text in compliance
When the customer was trying to create an SMS History record via Process Builder, in sendSMSTriggerhelper .sendSMSBeforeTrigger(), the source was checked in both fields. In this case, the source had an automated message & for the automated message the opt-out instruction message was appending. In the sendSMSAfterTrigger() method, the template was resolved by passing automatedSmsList() to resolve the template method. While adding values in automatedSmsList, it was checked if SMS Text is null & that condition was falling before triggering the appending opt-out instruction. That’s the reason it was sending a null text in SMS Text.
To solve the issue this method was removed, call to the ConsentService.append Opt-Out Instruction() method from before trigger & added in after trigger & passed the list which gets after resolving the template. The values were upserting in the SMS History record.
- Issue: Name field from SMS History object was blank and Automation was triggered from Converse App
Fix: Here, the name field was auto-populating. To solve this issue added a name field in the messageAutomationHelper class
Date: 24th June 2021
- Issue – Last Incoming SMS lookup was not working
When a new conversation was created by the first incoming message, the code was populating the lookup of the last incoming message record. But if the conversation existed (created due to the first outgoing message), the code populated lookup of the last outgoing message only.
To solve this issue, the code and login in the ‘ConversationService’ class were updated to populate both fields ‘Last Incoming Message’ and ‘Last Outgoing Message’ for every corresponding incoming and outgoing message.
- Issue – Customer was getting a component error while accessing utility bar item
This was an intermittent issue, occurring when a method of a service component ‘conversationDataService’ was called. The issue was occurring because intermittently, the code was not able to confirm the availability of component ‘conversationDataService’; and when its method was called the component error was thrown.
To solve this, a check for the availability of the service component ‘conversationDataService’ was added before calling its method. That way, for any reason, if the service component was not available, its method would not be called and the component error would not be thrown.
Date: 9th June 2021
Issue: Injection code not working as expected
Customer had implemented customization to show specific sender IDs in SenderID dropdown while sending messages. This worked as expected for interactive interfaces. The customer wanted the same functionality to be available on the bulk interface as well (bulkSMSComponent).
By design, the injection point was made available only for interactive interfaces. For that reason, there was a check for the record ID added at the injection point. In the case of bulk interface, record ID was not available, thus the logic of injection point did not work and the implementation customization did not reflect.
To solve this, two specific configurations were made to make the injection point work for bulk interfaces and to maintain backward compatibility:
1] Enabled the injection point for Sender ID customization: In globalsetting (custom setting) the value of field “Max SMS Text Length” was set to “101”
2] Enabled the injection point for Template customization: Enabled the flag “Enable Internal Note”
Date: 8th June 2021
- Issue: Incoming SMS were not getting pushed to Salesforce
The incoming SMS were not getting pushed to Salesforce. On incoming SMS, a user from the previous outgoing message was identified, and that user was assigned as the owner of the new incoming message. Since the user was inactive, Salesforce was not allowing to create the SMS History record with the inactive user as the record owner. On incoming message, while doing a lookup of the previous outgoing message, if it was found that the owner of that outgoing message is inactive, the owner of the new incoming message was set to the OAuth user. This solved the issue.
- Issue: Uncaught Error in $A.getCallback() [Cannot read property ‘getInboxFilter UnreadCount’ of undefined]
A data service component was passed as a parameter while calling the helper function in the AURA component. With the Summer ’21 update that was deprecated, it was causing the error, where the property ‘getInboxFilter UnreadCount’ was not getting read.
To solve the issue, the parameter was removed and the respective data service component was identified in the corresponding helper method.
Date: 19th May 2021
- Issue: In the SMS-Magic Converse App, the Bulk Campaign was getting stuck in a running state
In the SMS-Magic Converse App, the Bulk Campaign was getting stuck in a running state. In the Details section, List View details were not getting displayed for both the Bulk Campaigns. This was due to the wrong formation of the List View clause query.
To solve this issue, the List View query was modified by adding ‘from’ + ‘object name’ in the ‘where’ clause of the list view.
- Issue: Conversations were not getting created for WhatsApp automated messages
Conversations were not getting created for WhatsApp automated messages. The automated messages triggered through the customer’s WhatsApp number were not creating conversations because of which they were not showing on the Converse Desk. There were entries created in the error log with the error ‘Empty SMS List’.
To solve the issue, the condition where we were checking SuccessList size for callout, was removed. Now Conversation Association is happening as expected in all cases and in the SMS-Magic Converse App, the Bulk Campaign is not getting stuck in the running state.
Date: 26th April 2021
Issue – Messages were reaching the SMS-Magic server even when the ‘Disable SMS’ option on Trigger was set to ‘1’ by the client.
Messages were reaching the SMS-Magic server even when the ‘Disable SMS’ option on Trigger was set to ‘1’ by the client.
SMS records with the ‘Disable SMS’ option on Trigger was set to ‘1’ and were added to the failed SMS list. But they were also added to the SMS list which we are sending to a callout in the sendMessage method of SMSUtility class. That’s why they were reaching the server.
To solve the issue, the if-else condition was added: ‘If disable on the trigger is 1 then add to the failed list else add to the callout list’. With this, the messages stopped reaching the SMS-Magic server when the ‘Disable SMS’ option on Trigger was set to ‘1’ by the client.
Date: 26th April 2021
- Issue: Get conversations function was calling for update/insert of the recently used filter on the converse desk.
In the conversation controller class, get conversations function was calling for update/insert of the recently used filter. Due to this, Apex job was getting created for every filter selection on Converse Desk. That was unnecessary.
To solve this issue, the logic was changed so that the new apex job enqueued only when required.
- Issue: Incoming text notification was not working properly.
Incoming text notification was not working. In the Lightning environment, pushtopic subscription was supposed to happen via “empApi” which is integrated into the “streamingDataService” component. But, empApi was forced-disabled due to which the incoming text notification was not working.
To solve this issue, the forced disabled state of empApi was removed so that it would function as expected in the Lightning environment.
Date: 12th March 2021
- Issue – Unable to create manual consent record from consent object, when contact is entered
Unable to create manual consent record from consent object, when contact is entered. In complianceService class, the GROUP BY clause is used to fetch the phone fields. In this case, the customer used the FORMULA field as a phone field to fetch the phone fields. Salesforce doesn’t support the FORMULA field to be grouped. To solve this issue, the GROUP BY clause was removed.
Date: 23rd Feb 2021
- Issue – MMS messages were getting delivered even after they were Opted Out by the customer
The customer had opted out of MMS messages in the contact object, yet they were receiving them.
In the MMSDetail trigger, SMS History records with MMS Type and failed status was not checked, and so the corresponding MMS records were triggered even after customers had opted out. To solve this issue, a check in MMSDetail trigger for MMS Type was added.
- Issue – When the User was trying to write an Internal Note from the Conversation View on the Record Detail page, it was throwing an error message
When the User was trying to write an Internal Note from the Conversation View on the Record Detail page, it was throwing an error message: Conversation: id of incorrect value: 00Q.
To solve this issue, the Internal Notes tab in the composer component in the Message Notification component was disabled, based on the origin Name value in requestContext.
For “Conversations” component changes are made in the ‘composerWrapper’ method of ‘MessageComposerServerController.cls’. Value of flag for ‘isInternalNoteEnabled’ is set to false if the the object name retrieved from available record id is not ‘smagicinteract__Conversation__c’
- Issue – After an upgrade to the package from 1.46 to 1.60.56, the Converse App tab was opening in full-screen view.
After an upgrade to the package from 1.46 to 1.60.56, the Converse App tab was opening in full-screen view. The tab notification panel was not accessible once the user navigated to Templates in the converse App. This was because the wrong event was used to replace the deprecated ones. To solve the issue, the “lightning:navigation” component was used to navigate from one component to another component in the lightning environment.
- Issue – Send Bulk SMS button on maps was throwing an error, ‘Invalid ID’
When the customer was using the “Send Bulk SMS” button on the maps app, they were getting an error, “Invalid id: 034A00003Dp7yzQAB”.
This issue was occurring because the package code was trying to trim the list of ids, assuming that the list has square brackets at first and last position. But in the real scenario, the square brackets are not present, thus the trim function was causing an issue. To solve this issue, the list of ids were trimmed based on the presence of square brackets. Used Substring function on ‘idList’ string only if square brackets are present in the string. Bulk messaging functionality now works flawlessly for normal list view and communities.
Date: 11th Feb2021
Issue: The customer was receiving too many SOQL queries: 101
The customer was getting too many SOQL queries from the SMS Magic Interact package.
Migrated the changes and resolved the issue related to SOQL queries.
Date: 2nd Feb 2021
- Issue – While creating a template, the customer noticed that 2 SMS credits were getting consumed for a message that was less than 160 characters in length. (158 characters with space). Ideally, if a message crosses 160 characters, it should consume 2 SMS credits.
While trying to send the same template from the detail page, it was correctly showing that 1 SMS credit will be consumed.
This was happening because of the wrong syntax that was used where the text length was compared with a single message length (160 characters).
To solve this issue, the syntax was corrected and hence the comparison was correctly handled. Now, while creating a template, if the message length is below 160 characters, only 1 SMS credit is being consumed.
Date: 6th January 2021
- Issue – A component error was occurring while creating a template in the Converse App or while accessing the Converse App.
Initially “force:navigateToComponent” was used to navigate from 1 Lightning component to another Lightning component. It was throwing an error while navigating to the Converse app.
To solve this issue, we changed “force:navigateToComponent” to “lightning: navigation” as suggested by Salesforce Support.
Date: 4th Dec 2020
1.Issue – The system was throwing a ‘Component error’ when the Converse App was accessed with any console other than the SMS-Magic app
When the “Converse Apps” tab was accessed with any console app other than SMS-Magic and the user was trying to create a template, the system was throwing a component error. This was hampering the user experience and functionality. This was NOT observed when the Converse Apps tab was accessed within the SMS-Magic app. Create template action was navigating the user from one component to another. For this, we used the “force:navigateToComponent” event. This event was not handled properly in other console apps, since Salesforce was advocating the use of the “lightning:navigation” event instead of the “force:navigateToComponent” event.
To solve this issue, the “lightning:navigation” event was used instead of the “force:navigateToComponent” event to navigate from one component to another.
2.Issue – Not able to open PDF from converse desk via WhatsApp
The issue was observed with WhatsApp Addon. When a customer received any incoming message with a PDF file, a message was displayed as ‘Broken UI’ and the user was not able to access the PDF file in the message. We embedded the PDF file into an iFrame to enable the preview of the file and to allow the user to click on it. With recent security enforcements, Salesforce deprecated embedding external URLs into iFrame.
To solve this issue, we changed the implementation. Instead of embedding the PDF in an iFrame, we are now showing a download button to let the user click on it and download the PDF.
3.Issue – Exception in Migration Batch; 11th step in the migration failed
After upgrading customers from any version below 1.5 to 1.60, migration steps were required to populate phone number and sender ID values in the newly created conversation records. The 11th step in the migration failed with an error. An external script was required to be run to achieve the required migration.
To solve this issue, the code of the migration step was updated to properly resolve fields and proceed with the data population required for migration.
Date: 12th Nov 2020
1.Issue –Callout Exception error – when multiple jobs were queued, after the first job callout, the next jobs were failing due to DML being in progress.
To address the CPU timeout issue during the bulk campaign, the approach to break the records count into multiple batches was changed. With this, each batch was getting processed separately. While doing this, after the first batch callout, DML was attempted to update the lookups for the records. At the same time, the callout for the next batch was getting processed, which failed because of the DML.
To solve this issue, the DML setting is changed; now the DML for updating lookup is attempted only after completion of all callouts.
2.Issue – Automated SMS not being sent as the system was throwing an error of ‘available jobs limit consumed’
The customer was not able to schedule a bulk campaign (converse app) as the system was throwing an error of ‘available jobs limit consumed’. For instance, although the customer had consumed only 97 out of 100 available scheduled jobs in his org, the system was throwing an error of ‘available jobs limit consumed’.
This issue was due to the check for the max scheduled jobs in the org, which was 95 instead of 100.
To solve this issue, the check for existing scheduled jobs was changed from 95 to 100. Now, even if there are 99 scheduled jobs present in the org, the user is able to consume the last one to schedule the bulk campaign.
3.Issue – Bulk campaign from the Converse App was not running properly
The customer had created a lookup of a custom object (say object A) with another object (say object B). Object A was configured on the MOC, and the SMS opt out field of Object B was configured as the opt out field for Object A via lookup. While identifying the opt out value of the record, the error was logged in the debug log. There was no visual indicator for the error.
Because of incompatible syntax, the code was not able to resolve the SMS opt out field configured via lookup. This was throwing the error.
To solve this issue, we updated the syntax/code to properly resolve the lookup field value and obtain the boolean value of the opt out field.
Date: 26th October 2020
1.Issue – Apex CPU Time Limit was getting exceeded
Due to heavy processing on each outgoing record, the Apex CPU time limit was getting extended. So while sending bulk messages it threw a CPU time limit exception. To solve this issue, we processed the bulk messages asynchronously in batches of 50 if the count exceeded 100 records.
2.Issue – Permission error was getting displayed in Utility Bar and Converse Desk
The users have access to the case object but not to the lead object. So, while reading messages of the case object, users were facing permission error of the lead object.
When the Utility bar is opened we check for conversations and while checking conversations we fetch all the MOC records. We were not checking whether the MOC record is having permission or not. To solve this, we added a check for permission of objects configured in the MOC.
3.Issue – The “Do not send Confirmation” checkbox was misbehaving; a confirmation message was being sent.
The user was able to save the consent record without changing the previous consent status. Since the status was not changed, the old value of the “Do not send confirmation message” checkbox was referred and a confirmation message was sent to the record. To solve this, we added a validation on the consent edit UI. The “Save” button is disabled until the consent status is changed.
4.Issue – Issue with Bulk SMS for Partner Community
The processing time required for each message was high. To solve this, we processed the message asynchronously if the bulk count exceeds 100 records.
Date: 6th October 2020
1.Issue – The label name in the ‘To’ field of the Conversation Component was not getting displayed properly.
The user was not able to see the Lookup values in the ‘To’ drop-down field in the Conversation view while sending a message. To solve this issue, we showcased the label of the lookup field created on the MOC object instead of showing the label of the lookup object name.
MOC Object = Contact
Lookup field on Contact = AccRelatedToContact (lookup of account)
Before fix : Contact > account > phone field
After fix : Contact > AccRelatedToContact > phone field
2.Issue – Record count under Campaign was not getting reflected as expected
The record count under campaign was not getting reflected as expected, i.e., as per the actual field selected. Even if the custom field created by the user was selected instead of the default field in MOC, while running the campaign it displayed record opt-out count based on the default field & sent messages based on the custom field. Ideally, it should show the count based on the field that is used in the MOC, i.e., the custom field. It was referring to the default field and not the custom field because the hardcoded value of the default opt-out field was getting passed to record the count. To solve this, instead of passing the default value, we started fetching value from MOC & passed it for accurate record count.
Date: September 16, 2020
1. Issue: Bulk Action from Converse App remains in Running state for Object with Spaces in the name
When users run a bulk action in the Converse App on an object, which has multiple words in the name field (space between the object name), the status would always remain in Running state. e.g., Student_Section__c. To solve this issue, we used a substring function to split the query that we receive from Salsforce.
Date: September 08, 2020
1. Issue: Issue with the SF campaign.
Whenever customers tried to send messages through Campaign with both, contact and a lead member, the SMS history for contact reached the portal but not the lead. We executed Campaign Batch jobs differently for both, Lead and Contact, to solve this issue of multiple primary objects.
2. Issue: Issue with SMS Scheduled Record.
When the message is scheduled through a Single or Bulk SMS button, SMS Scheduled record is created with all the field values such as SenderID, Text, etc. But when we scheduled the message through the Converse App, it created an SMS scheduled record without the SenderID. To solve this, we populated the fields required by the customer so that they can create a correct report on the SMS schedule object.
Date: August 25, 2020
1. Issue: Primary object lookup happening intermittently for incoming messages.
Removed the unwanted, unformatted mobile number check from the logic of the primary object lookup which was causing this issue. With this fix, the primary object lookup should happen for each incoming message.
2. Issue: While sending outgoing messages from the record detail page conversation view, the direction field was not getting updated correctly in the conversation object.
As a part of performance enhancement, we had modified conversation assignment logic because of which the last message direction field in the conversation object was not getting updated for the record detail page. As a part of this fix, we have corrected the logic so that it updates the last message direction field in the conversation object only after the conversation assignment is done.
Date: August 19, 2020
1. Issue: Component error for the non-SMS-Magic users. This is due to the latest critical update imposed by Salesforce on 9th August.
The issue was on the Conversation View on the Utility Bar and Conversation View on the record detail page. Made changes in the notification manager component to handle the exception thrown by Salesforce and show the correct notification to the users.
2. Issue: Utility bar back button was not working properly.
Here the back button of the utility bar was not functioning properly. In the case of a closed conversation’s component, the selected RecordId was coming intermittently as null. So removed the condition and replaced the logic which will include the button name to decide whether to close the tab or take the back action.
3. Issue: New conversation created for every incoming SMS.
The issue happened because the conversation logic code was reverted to 1.58 implementation from the routing logic. The root cause for the failure of older conversation logic implementation was that 1.58 did not have the country prefix in the SMS History whereas versions 1.59 and above have the country prefix in the SMS History. We implemented the logic of 1.58 to solve the issue.
4. Issue: Converse bulk issue.
When we call the API while running the bulk campaign, Salesforce returns fields of the object in Query. So, we were getting a few unnecessary fields in the query. This was throwing an error in Apex Job & status was not changing. To solve this, we split the query into 2 parts (Left & right side of the “FROM” field). With this, the unnecessary fields from the query from Salesforce were ignored and the issue was resolved.
5. Issue: Error while sending SMS from the Converse app.
This issue was there because a static variable was used to scan the depth of the master-detail relationship. When multiple records got edited at the same time, this static variable overflowed to scan the fixed depth of the master-detail relationship, and thus the issue occurred. We replaced the static variable with a normal variable.
Date: August 04, 2020
1. Issue: Utility Bar Issue- On load dropdown, the selected value is not getting displayed in Chrome, it’s working in Firefox.
When the Utility bar on sales console is enabled, read/unread drop-down appears. That dropdown was blank for Chrome, it did not display the required values. The utility bar showed blank values on the initialization of filter dropdown in the Chrome browser. We fixed this by making HTML changes.
2. Issue: Utility Bar issue- User got redirected to the Conversation Inbox when clicked on CRM action (i.e view contact, view lead, etc.)
Corrected the conditions to check whether the utility bar is working in contextual scenario and implemented fail-safe ‘try:catch’ in ‘StreamingAPIController.cls’
Date: July 28, 2020
1. Issue: Users Getting Error “Object Name: Organisation”
Fixed the issue where users got an error “Object Name: Organisation” does not have permission to read fields.
The Error Occured when users click on Conversation Record.
2. Issue:Related conversations are not loading on Converse Desk.
Fixed the issue where related conversations did not load in the Converse Desk.
Date: July 27, 2020
Issue: Utility Bar Notification Not Working.
Fixed the issue where the users did not get notified when an incoming message was received. The users needed to refresh the page to see the notification.
Date: July 23, 2020
1. Issue: ApexCPU Time out error.
Fixed the issue when
- Customer tried to send messages to bulk records. (He has created a list view and tried to send messages to all records.)
- Process builder triggered bulk messages (190+) for given conditions.
2. Issue: Unable to use ‘Time’ datatype fields while sending messages using templates.
Fixed the issue where the customer was not able to use “Time fields” while sending the messages. For a custom created template with a time field, the user received an error message “Invalid date/time: 00:00:00:000z”.
3. Issue: Error message “Attempt to de-reference a null object”.
Fixed the issue where the customer was getting “Attempt to de-reference a null object” when a template is selected while sending a message from Send Bulk SMS or Send SMS button, if Auto Append interval was enabled.
Date: July 06, 2020
1. Issue: Some conversations not visible under Converse Desk.
Messages for particular records were not visible in Converse Desk.
Added check for Access check for Push Topic in professional org.
Date: July 01, 2020
1. Issue: Error while accessing Converse app.
All the users faced the below error while accessing the converse app. “Aggregate query has too many rows for direct assignment, use FOR loop” The issue occurs when customers have more than 200 converse app actions for each converse app.
The count will be displayed as 199+ if the number of actions exceeds 200 records. Although, users can always open the converse app to view the exact amount of actions present in the app.
Date: June 30, 2020
1. Issue: Component error.
Fixed the intermittent issue where the customer was facing a component error while accessing a contact record (any contact record).
2. Issue: Unable to schedule SMS from the Partner Community license.
Fixed the issue for scheduling SMS the users with community licenses.
3. Issue: Spell Check not working.
When the Customer Opens a New Message Window in Utility Bar & Typed Text, customer corrects the spelling using standard spell check utility however when customer posts the text, the words corrected in spell check are not updated. It sends incorrectly spelled words.
Users can send an SMS from the utility bar after changing the incorrect word.
Date: June 26, 2020
Issue: Intermittent issue for notification in Utility bar.
Fixed the issue with the utility bar as it is not getting blinks automatically on incoming SMS.
Changes in SMS Magic Interact Package package to adopt the changes for Australian server addition on the portal.
Date: June 17, 2020
1. Issue: ComplianceConsentList component is not showing the changes when we refresh the Lightning record tab.
Records were not visible in conversation view in Converse app.
In the Converse App, conversation component, only the messages sent from Converse App will be displayed
2. Issue: Receiving an error message on clicking Send SMS Button.
When the customer clicks the Schedule/ send SMS button on the Enquiry object. The customer was getting the following error message:
“This page has an error. You might just need to refresh it. Error in $A.getCallback() [Cannot read property ‘setListViewData’ of undefined] Callback failed:
apex://smagicinteract.LightningBulkSMSController/ACTION$lightningBulkWrapper Failing descriptor:
After clicking on the button the error message will not appear.
3. Issue: Validation rule on SMS history does not display the error message on the UI.
A customer had a validation rule on SMS history. This will not allow users to send SMS to any mobile numbers. The mobile number should be associated with a contact record in Salesforce to send out the SMS. When users do send SMS to mobile numbers, they get a message on UI saying the ‘Message has been sent’ while the message has not been sent when checked in the error logs object.
The validation rule error message is displayed.
4. Issue: Messages did not appear in the Embedded Desk.
The Owner of Conversation & SMS History gets updated to the Owner of Sender ID Correctly. The Notification in the Embedded Desk (Utility Bar )also blinks to the user but the conversation does not appear in the unread section.
Messages will appear in the Embedded Desk.
5. Issue: Record owner sender did not work.
This is a coding bug. This was modified when we released a patch for a customer, as they wanted to send SMS to the user object. They wanted User as a MoC object.
The Record owner sender id will be displayed.
6. Issue: Error message during upgrade on sandbox.
During Sandbox org upgrade from 1.55.7 to 1.60.24, we got below error message:
The user license doesn’t allow the permission: Manage All smagicinteract__Consent_Audit_History__c, Details: SMS_Interact_Permission_Set: The user license doesn’t allow the permission: Manage All smagicinteract__Consent_Audit_History__c
We removed the View all, and Modify All permissions for the following objects: Compliance configuration audit, Consent Audit History, and Consents.
Date: June 03, 2020
Issue: Non-admin users are unable to send SMS.Non-admin users are unable to send SMS. They see the error on the conversation component and also when using the ‘Send SMS’ button.
Error – ‘ObjObject name Organization does not have the permission to the field: read’.
Commented security check for Organization object while checking for the namespace, so that non-admin users can send SMS.
Date: May 12, 2020
1. Issue: No automatic update of ‘complianceConsentList’ component.
For users with the compliance consent list component, embedded on their record detail page of contact, when a new record is created or an existing record is updated, it does not automatically reflect on the record detail page.They had to refresh the browser so that the new /updated record will be reflected on the record delta page.
Compliance consent list components can be updated without a browser refresh. An additional button on the UI will refresh the list.
2. Issue: Consent record alignment.
Fixed consent record alignment issue due to additional refresh button on the record detail page.
3. Issue: Plan upgrade with existing active license.
Users were unable to change to a new plan when their existing license is active.
Users can change to a new plan when their existing license is active. ie. If the user currently has a ‘ Start your conversation’ plan then they can change it to “ Grow Your Conversation Plan’.
4. Issue: Trial plans (Both) are reflecting in SF org, even after setting non-trial plan (Grow plan) from back-end.
Trial plans(Start your conversation, and Grow your Conversation plan), reflected in SF org, even after setting a non-trial plan(Grow plan) from the back-end.
Because of this issue, customers could only see the SMS Credits specific to the trial plan in their Salesforce org.
On the portal, the total number of available SMS credits as per the plan was displayed.
If the plans are updated from the backend then that information will be updated to display the active plan on UI.
E.g. A ‘Grow your conversation’ trial plan is updated to any full plan, then it will be updated in the Plan manager section of Custom settings as well as on UI.
The following is the screen prior to fixing the bug:
5. Issue: Trial plans (Both) are reflecting in SF org, even after setting non-trial plan (Grow plan) from back-end.
The Client users were getting error messages when they clicked on the consent list view component, added on their lightning page.
I. No phone numbers are available on this record.
II. Component error message
The issue occurred when cross-referenced objects were using the consent list component.
In this case, while adding consent list component list on the Case object and then tried to set consent for the contact these error messages occurred.
Fixed the issue with Consent lightning component, when fetching mobile number from lookup relation. No error message will be displayed, and the ‘Add Consent’ button will be clickable.
6. Issue: Image upload size limitation on SF Mobile app.
For SF mobile app, allowed images size is up to 2.5 MB. An error message should be shown if image size >2.5 MB.
7. Issue: ‘Callout Exception’ error message for some of the messages.
Few of our customers have reported that their users intermittently faced an issue where a few messages were failed with an error message “Rejected from portal” or “Callout Exception error”.
Also, there was not enough information in error logs related to this issue, making the tracing of the cause difficult.
For any callout exception error message, an error log will capture more data using the system provided a function for troubleshooting than before so that the tracing actual reason(s) for the “Callout Exception Error“ will be easier.
The customer would need to set up a debug log of appropriate level in their salesforce org to get these extra logs.
ie. We are providing users with the enhanced error logging that will help us to trace the root cause. With this patch, a stack trace only for “Callout exception error ” is implemented when we sync with Portal API.
8. Issue: Unresolved templates for messages from SMS Magic Mobile app.
Templates are not resolving properly when the messages are sent from the SMS Magic Mobile application. When the user tries to send a message with a template attached to it, that includes the merge field, no data was available in the merge field.
When messages are sent from any source, the template should resolve itself ie. merge field data will be available.
Security review changes
1. Removed jquery/angular libraries from the package as we are no longer using them.
2. Fixed Injection and CRUD/FLS bugs./SMI-6105
Date: April 20, 2020
1. Issue: Non-conversion of a few outgoing and incoming records.
Migration scripts for certain steps failed with an error message “ First error: Attempt to de-reference a null object” in debug log. That resulted in non-conversion of a few outgoing and incoming records. i.e leads were not converted into contact/Opportunity/Account.
Fixed Data Migration issue for leads which were missed for being converted into contact/Opportunity/Account.
2. Issue: Converse app tasks failure with the message ‘No response from MessagingService’.
When the name of a custom object does not match with the name of the lookup relationship on the SMS history object, the converse app tasks fail with the message ‘No response from MessagingService’.
Eg. For a custom object named ‘xyz’, if the user creates a lookup on an SMS history object, with a different name ‘abc_xyz’. And, also creates a custom builder to create a converse app task whenever any field of the custom object is changed.
The Converse app task will be created with the error, message “No response from MessagingService”.
No error message for the mismatch in the name of a custom object and that of used to create the lookup relationship on SMS history object.
3. Issue: Converse app task failure.
In the Master-Detail relationship between Salesforce objects, when a Standard Salesforce object was the Master, and a Detail object was a Custom object, the process builder showed an error message.
The automation failed when messages were sent from the detail record as a Detail custom object did not contain the field for the Master object.
This issue was only observed when the Master object was a Standard Salesforce object, not custom objects.
The Master-Detail relationship will now work for standard objects as well to send the messages using Detail – custom objects.
Supporting messaging to internal users with User Object(Limitation – SMS History records won’t be created)
Date: April 09, 2020
1. Issue: A intermittently error message on UI
Fixed a UI intermittently error message:
“This page has an error. You might just need to refresh it [Action failed: aura: iteration$controller$itemsChange [Maximum call stack size exceeded]]”
on Converse setting on the selection of plan.
2. Issue: Wrong Consent mode was shown when the user sends SMS from a bulk SMS source.
Wrong Consent mode was shown when the user sends SMS from a bulk SMS source.
i.e. Global consent mode was shown when the user sent SMS from a bulk SMS source.
Eg. In the converse setting, users selected “Consent not required “ in the Consent method & Content section(as global consent) for their Marketing content. Also, selected “ Consent mode – Required “ for their Marketing content.
In the template for Marketing content the consent type appears as – required. But when the same template is selected for sending bulk messages, appears as “ Not applicable” i.e. same as global consent.
Appropriate consent mode is now shown when the user sends SMS from Bulk SMS source. The consent mode appears as per the selection made only for the content-specific consent /SMI-5661
3. Issue: A blank space appears when MMS is received in the Facebook integration.
For Facebook integration, a blank space appears when MMS is received in the conversation window.
Incoming images from Facebook are displayed in SF. (Converse desk, Conversation component ).
4. Issue: Auto append not working for messages from templates and Phone, and Phone +senderid combinations.
If a user sends messages using the template with opting for an Auto append, for Phone, and Phone +senderid combinations, the auto append messages were not included in the template messages.
This issue was observed only for the messages from templates and Phone, and Phone +senderid combinations.
Auto append message will work for phone, and Phone+ sender id for the selected template while sending SMS. This can be confirmed from SMS history.
1. Issue: Failed license allocation due to permission issues.
For a few customers, Due to some permission issues – License allocation is getting failed while installation of the package. But because of such restrictions, licenses can’t be added from an external interface. The only option remaining is un-installing & installing packages.
Removed the restriction for support of license handling from the external interfaces and restricted the user from assigning multiple licenses to one user.
2. Issue: Guest users unable to send messages despite granting permission(s).
The converse app task is getting created with success status but the history record is not getting created. Guest user from customer’s org was unable to send automated messages despite granting him following permissions:
- Object and field-level permissions
- created sharing rules on required objects
- View All Custom settings
- SMS License
- custom settings, apex classes and custom metadata on at profile level
Skipping Group object access check for non- standard/guest users allowing them to send automated messages.
Salesforce API version updated to 1.46, allowing user to add all objects in message configuration under converse settings.
- Fixed issue regarding only the text from the Template getting sent when Template is used in Campaign and extra text is added.
- Fixed issue regarding missing fields in the conversation user permission set.
- Fixed issue regarding the sender injection code.
- New compliance support for the campaign manager. For more information click here.
- Added injection framework for supporting custom logic.
- Fixed issue with UI while sending single SMS when country set to all for MMS.
- Fixed issue with record owner sender id not displayed in Bulk Campaign in Converse App.
- Fixed issue with Utility bar where the message is displayed to two records.
Patch for Salesforce Spring’20 Critical Update.
A critical update has been rolled out with the Spring ’20 release on January 3, 2020 and made globally available from February 17, 2020. After the critical update, users without the Customize Application permission can no longer access custom settings. You can read the detailed instructions here or please reach out to us at email@example.com with any questions you might have.
Fixed new message UI to populate correct data in record detail page.
For Line & Facebook channel – Fixed issue with Conversation Id creation and Unformatted number population.
Application available for use on Salesforce Professional Edition
- Fixed issue with expanded view of conversation component on alert notification of Incoming Message.
- Fixed issue with facebook’s alphanumeric sender ID formatting on conversation view.
- Bulk SMS component load time improvements.
- Optimisation for composer rendering on Send SMS button click.
- Auto Reload of Conversations and ConversationView Components on community edition with push topics dependency removed.
- Injection framework – Sender Id, Template, Incoming lookup Injection changes for customer.
- Packaged dashboards are removed to handle installation blockers. We would be introducing native dashboards as a better way of analytics dashboards MIS.
- The converse app feature is made available for all from 1.60 version onwards.
- MMS size limit is subjected to limits provided by Providers and carriers.