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 firstname.lastname@example.org 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.