Prerequisites
With Heymarket's Salesforce integration, you can send and receive text messages within your Salesforce Organization. To set up this integration, you must have the following:
- A user who is an administrator in both Heymarket and Salesforce & a part of an inbox in Heymarket
- A Salesforce Professional license with API access or an Enterprise license
- An Organization with a custom domain plus a My Domain that is enabled and deployed to users
- Here are instructions on setting up custom domains if they are not currently enabled for your Salesforce organization: https://help.salesforce.com/articleView?id=domain_name_overview.htm&type=5.
Version notes:
- Attaching videos and using a non-E.164 field for phone numbers are not supported with this current integration.
Installing the App
- Go to the package URL link below or click here.
- If you are not already logged in, Salesforce will ask for you to log in. Log in to Salesforce:
- After logging into your Org, your screen will be redirected to the app installation page:
- Select Install for Admins Only and click Install. You can give permissions to non-admin users in this Approve Third-Party Access screen later:
- Grant the third-party access, then click Continue. It will take a few minutes to install the app, then it will show up in App Launcher.
Initial Setup
Designated Administrator
Your designated administrator will be a Salesforce user who is usually the system admin of Salesforce org and manages other installed apps from AppExchange. This person will be responsible for managing the Heymarket app. Your designated administrator for the Heymarket app will be able to:
- Manage the overall integration between Salesforce and Heymarket, with required access to Heymarket API keys and admin functions
- Map Salesforce users (Sales/Service and other personas) to Heymarket users, automatically allocating the required Salesforce permissions for the Heymarket app and possibly creating new users in Heymarket
- Decide among multiple phone fields, and determine which phone field is the default for communication in Contact, Lead objects
- Map which fields in Heymarket will be synced against fields on Salesforce objects like Contact, Lead
- Create new fields in Heymarket as required, based on the matching Salesforce fields
- Set up and trigger a bi-directional sync behavior and a cron job that keeps Heymarket contacts synced with Salesforce objects
- Monitor the status of syncs and various logs
Your designated administrator should assign the permission set Heymarket Admin to themselves. To start assigning permission sets, follow the instructions below.
- Go to Salesforce Setup:
- Search for Permission Sets in the quick find, and click on the Permission Sets menu item under Users:
- On the next screen, click the Heymarket Admin Permission Set.
- In the Heymarket Admin Permission Set view, click Manage Assignments:
- On the next screen, click Add Assignments to assign users their roles.
Alternatively, you can go to a single Salesforce admin user and assign them the Heymarket Admin permission set. Review this Salesforce help article to learn how: https://help.salesforce.com/articleView?id=perm_sets_assigning.htm&type=5
Getting a Heymarket API Key
- Log in to Heymarket.com and go to Admin > Integrations > Manage on app.heymarket.com:
Hit the “Generate API Key” yellow button
Copy API Key in the clipboard, as explained in the screenshot below:
Adding Heymarket API Key to Salesforce
Login to Salesforce, and launch the “Heymarket” app via App Launcher.
Goto the “Heymarket Setup” Tab, and enter the copied API Key here. Hit the “Verify” button for the next steps.
Default Inbox Selection
Select a default “Inbox” for further usage in Chat, and hit the “Save” button for the next steps
User Mapping
Please notice the yellow checkbox before Heymarket API on the setup screen. This checkbox means this step is completed. The next screen will be User Mapping. This screen:
- Maps which users in Salesforce will act as which Heymarket user
- Sets default inbox for the mapped user
- Enables required custom permissions/permission sets to let the given Salesforce user use the Chat widget and other features.
The system will purpose a user mapping sequence on its own based on the match between Salesforce and Heymarket user emails. You can change the mapping or add more user mappings via the Add More button at the bottom of the screen.
- Once you are done mapping users, hit Save:
- You can add more users by clicking Add More:
You can also invite or create a user for Heymarket from Salesforce.
If a Salesforce user doesn’t have a Heymarket user mapped to it, click Invite. They system will create a user in Heymarket and automatically map it to the Salesforce user:
Please Note: All required app permissions are auto-assigned to the mapped Salesforce users.
Sync Configuration
In this screen, you need to set up the details to enable sync between salesforce and Heymarket.
- If you enable sync for Contact then the Contacts from salesforce will sync with Heymarket and the same goes for Lead, Account.
- The Auto Create decides that whenever a new Heymarket Contact comes towards the salesforce then what type of Record will be created on the salesforce side. You can choose Account OR Contact OR Lead OR None.
- If you choose none, then new/unknown Contact from Heymarket will not be created on the salesforce side.
Please take a look at the picture below.
1. Which Accounts are going to be synced with Heymarket.
- Sync All, will sync all the Accounts from salesforce to Heymarket.
- Sync Listview, will sync the Account which comes under a particular listview filter.
2. Select a list view, which will allow only a particular set of salesforce Accounts going to be synced (based on the list view filter).
3. Delete behaviour
-
-
- If this checkbox is marked, then Account which will be deleted from salesforce will also be deleted from Heymarket (whenever sync happens)
- If this checkbox is left blank, then Accounts that will be deleted from salesforce will not be having any effect on Heymarket.
-
4. Which Contacts are going to be synced with Heymarket.
- Sync All, will sync all the Contacts from salesforce to Heymarket.
- Sync Listview, will sync the Contact which comes under a particular listview filter.
5. Select a list view, which will allow only a particular set of salesforce Contacts going to be synced (based on the list view filter).
6. Delete behaviour
-
-
- If this checkbox is marked, then Contacts which will be deleted from salesforce will also be deleted from Heymarket (whenever sync happens)
- If this checkbox is left blank, then Contacts which will be deleted from salesforce will not be having any effect on Heymarket.
-
7. Which Leads are going to be synced with Heymarket.
-
-
- Sync All, will sync all the Leads from Salesforce to Heymarket.
- Sync Listview, will sync the Lead which comes under a particular listview filter.
-
8. Select a list view, which will allow only a particular set of salesforce Leads going to be synced (based on the list view filter).
9. Delete behavior
-
-
- If this checkbox is marked, then Leads that will be deleted from salesforce will also be deleted from Heymarket (whenever sync happens)
-
- If this checkbox is left blank, then Leads that will be deleted from salesforce will not be having any effect on Heymarket.
10. Auto-create
-
-
If none is selected, No new/unknown record will be created from Heymarket to salesforce.
-
If Contact is selected, a New/unknown record will be created as Contact on salesforce from Heymarket.
-
If Lead is selected, a New/unknown record will be created as Lead on salesforce from Heymarket.
-
Contact Owner Sync
You can also enable/disable the record owner sync from inside the Salesforce.
Message Configuration
From this section configuration regarding the message sync can be done
Please take a look at the picture above.
- You can choose multiple inboxes to sync or “All” to sync all inboxes
- If automate message sync is enabled then Message Sync will run every 2 min. There is no need to schedule the message sync if it's enabled.
- If Automate Bulk Message sync is enabled then it will sync bulk SMS in the message object. If Bulk message sync is enabled then list SMS will save in the message object without using the message sync.
List Configuration (Deprecated)
- In this screen, you can configure Heymarket Contact Lists to add Salesforce records’ phone numbers automatically on the sync. You need to define the field name and field value and choose a Heymarket Contact List. List Configuration will be available only for Sync enabled Objects.
In the above screenshot,
- Select a field
- Define a value to match
- Select a Heymarket List to add the record if the selected field’s value matches to defined value ( in step 2)
- This remove button removes a raw entry i.e. newly created and not saved in the database. After saving an entry onto the database, a toggle button will be seen to disable or enable the entry.
This configuration will be used while syncing the records to Heymarket.
In sync, we will check these configured fields on each syncing record, if record has configured field’s (step 1) value same as configured value (step 2) we will add record’s phone number into the selected list for the configuration (step 3).
Listview Sync
In this screen, you can configure Salesforce listviews to be synced up with the Heymarket Contact List. To set up listview sync you need to map Salesforce listview with a Heymarket Contact List. Listview Sync is available only for Sync Enabled sObjects.
When you click on the ListView Sync tab, you might see a screen like the below screenshot if your org does not have any listview for the particular sObject. Here you can create your custom listview by clicking on the create button, it will redirect you to sObject page where you can create and manage listviews.
Please ignore it if you are not seeing this screen, you have already listviews created in your org.
The next screenshot is a normal Listview Sync Configuration page. Here you can map listviews with Heymarket Contact List. It describes how you can use this screen to map listviews.
These mappings will be used in the Sync process to add listview’s records into the mapped Heymarket Contact List.
Custom Objects
You can specify the custom object for using the chat widget on them. You can select the custom object which you want to use with the Heymarket app.
Note: Only the custom objects which have a phone number field and E164 formula in it, will appear in this section. In case, if you don’t have any custom object with a phone number field and E164 formula in it then this dropdown will not show any list item to select from.
Select a custom object you want to support and click the save button.
Template Setup
You can enable salesforce native templates in the chat by enabling the toggle button in Template Configuration for a particular object.
Opportunity
From this section, you can enable the default phone field for list SMS for Opportunity Object.
Account Setup
Default Account Type
Account Field Mapping
Click Field Mapping. This will allow Heymarket to map Salesforce Account Fields with Heymarket Contact Fields when the two systems sync automatically.
A few notes:
- A few fields like First Name, Last Name, Email, and Phone are hard mapped. This means that they can’t be changed.
- You can map any number of additional custom or standard Salesforce fields to any custom fields in Heymarket’s Account. Click the Add More button to start mapping new custom fields.
- Please note Reference, Date, Datetime, Time, Address, and Formula fields can’t be mapped with Heymarket. You can map individual parts of the Address field like Street, State, etc.
Account - Default Field Value
Account - Required Field Defaults
This screen and navigation item will dynamically appear in case there are additional required fields on Account object. This gives background syncing a way to put a sensible default for the required field.
In the example screenshot below, the Account Name field is marked required on Account Object.
Account - Default List Phone Field
This field is used to set the default phone field for list SMS. Once you set this user is not able to edit the selected phone field in list SMS. For this first go to the Default List Phone Field, then save the phone field you want to set as default field and click on save.
Now check in the list sms section you will see the default phone field as Account Phone.
Note : If the default field is selected as “None” then the user is able to select the phone field in list SMS.
Contact Setup
Contact Phone Field
A Contact has multiple phone number fields. On hitting “Default Phone Field” option on the left sidebar, system will present which phone field must be used with Heymarket for Chatting and Syncing Contacts.
Note: This field can be changed later on, but it’s not recommended to change it.
“Select default phone field for List” field is used to set the default phone field for list SMS. Once you set this user is not able to edit the selected phone field in list sms. For this first go to the Default Phone Field, then save the phone field you want to set as “Select default phone field for List” and click on save.
Now check in the list sms section you will see the default phone field as Mobile Phone.
Note : If the default field is selected as “None” then the user is able to select the phone field in list sms.
Contact Field Mapping
Click Field Mapping to configure which Salesforce contact fields are mapped with Heymarket contact fields. This mapping is used when the two systems sync contacts.
A few notes:
- Some fields like First Name, Last Name, Email, and Phone are hard-mapped, so they can’t be changed.
- You can map any number of additional custom or standard Salesforce fields to any other custom fields in a Heymarket contact. Click Add More to start mapping new custom fields.
- Please note that Reference, Date, Datetime, Time, Address, and Formula can’t be mapped with Heymarket. You can map individual parts of the Address field like Street, State, etc.
You can also create a custom field in Heymarket from Salesforce.
Required Field Defaults (Optional)
This screen and navigation item will dynamically appear if there are additional required fields for a Contact object, apart from LastName. This gives background syncing a way to include a sensible default for the required field.
In the example screenshot below, the Languages field is marked as required on a Contact object.
Default Field Values(Optional)
Lead Setup
Lead’s Phone Field
A Lead has multiple phone number fields. After you click the Default Phone Field option on the left sidebar, a system will present which phone field must be used with Heymarket for Chatting and Syncing Leads.
Note: This field can be changed later on, but we don't recommend it.
“Select default phone field for List” field is used to set the default phone field for list SMS. Once you set this user is not able to edit the selected phone field in list SMS. For this first go to the Default Phone Field, then save the phone field you want to set as “Select default phone field for List” and click on save.
Now check in the list SMS section you will see the default phone field as Phone.
Note: If the default field is selected as “None” then the user is able to select the phone field in list sms.
Lead Field Mapping
Click Field Mapping to configure which Salesforce Lead fields are mapped with Heymarket Contact fields. This mapping is used when the two systems sync.
- Some fields like First Name, Last Name, Email, and Phone are hard-mapped, so they can’t be changed
- You can map any number of additional custom or standard Salesforce fields to any other custom fields in a Heymarket contact. Click Add More to start mapping new custom fields.
- Please note that Reference, Date, Datetime, Time, Address, and Formula can’t be mapped with Heymarket. You can map individual parts of the Address field like Street, State, etc.
You can also create a custom field in Heymarket from Salesforce:
Required Field Defaults (OPTIONAL)
This screen and navigation item will dynamically appear if there are additional required fields on the Lead object. This gives background syncing a way to put a sensible default for the required field.
In the example screenshot below, Company is as marked required on the Lead object:
Default Field Values (Optional)
This field appears next to any custom text field that has a default value. If you give a value to any field in Salesforce that matches the text, then it will have the default value each time it syncs.
Sync and Status
Necessary Steps before starting a full/first sync.
Record creation should be disabled on unknown message Notifications
Steps
Go to Heymarket App > Sync Configuration
Scroll down to the bottom.
Should be InActive.
All Process Builder on Account/Contact/Lead should be Inactive
All Flow/Workflow/Field Update on Account/Contact/Lead should be Inactive
After setting up all the details in sync configuration, you can see a new tab called ‘Sync Record’. This tab will allow you to sync data(Only Record) between salesforce and Heymarket (Based on the sync configuration).
Please take a look at the picture below.
- This is the Sync Reocrd tab. After clicking on this tab you will see the ‘On-Demand Sync’ page.
- Start sync, when you click on the start sync button, it will start to sync the data between salesforce and Heymarket.
- Start Full Sync, when you click on this it will start the sycn process from the beginning where else Start sync will start sync from the last sync time.
- You can schedule a sync to be executed at every next 30 minute. For ex. Current time is 12:15 and you just scheduled a sync, then it will schedule the next sync at 12:30.
Understanding the On-Demand Sync
You can see a lot of things available on this page and you may get confused after seeing this screen. Let us help you with this screen.
- This is a spinner which shows you progress on current sync. If this is not visible then there is no current progress.
- These are the Status of all the sync details which are in progress or already progressed.
- This will show you the details of the sync between Heymarket and salesforce.
6.1. This is the count which will show you the number of records being updated, created, deleted in the sync process.
6.2. This will show you the last sync time (if currently not in progress) or sync started time(if in progress).
- Scheduled Sync will be shown here, which will show you the status of next sync scheduled time (If any) or it will show you the no scheduled message.
- After you click on the start sync button, you are allowed to cancel the sync while in progress (If needed). You can click the cancel Sync button which will stop the scheduler instantly.
Note:- We cannot guarantee the cancellation of the sync (if already started), because the UI changes may take 2 or 3 seconds to update. There may be a case that the data is too small and it will be synced before you cancel it. We cannot roll back the changes.
- After you click on the start sync button, you are allowed to cancel the sync while in progress (If needed). You can click the cancel Sync button which will stop the scheduler instantly.
- When you click on cancel sync button, if the syncing was stopped successfully then you will see a green toast here.
- In case, you don’t want to schedule the sync for the schedule time, then just hit on cancel button and it will abort all the schedulers which was scheduled.
- You can see all the previously synced details upon clicking on the history button on the right side.
Sync History
Sync history page displays a list of previous sync jobs for a particular context e.g. Salesforce Contacts to Heymarket Contacts. We can see more details of any sync job by clicking the row. On clicking any row, it opens a detail page with the details of failed records and eros occurred in the sync batch.
Failed Records
You can track failed records and their reasons. You can find it by clicking a sync history row. In failed records you will see record name and sync status and the reason to fail. You can also open the particular record by clicking on the name.
Sync Errors
You can also track the errors that occurred while syncing. Errors are available below the Failed Records section.
Account Configurations
Adding the Chat Widget to Account Layout
Step 1: Go to Lightning Page Builder
Edit the Contact page, as indicated in the screenshot below. Or, you can edit the page via Setup > Object Manager > Account > Lightning Record Pages as well.
Step 2: Add Tabs Component
This will create a real estate for “Heymarket Chat” component to sit in. This is optional if you have LEFT sidebar or another similar area available in page layout, the same could be used for drag-drop of Heymarket Chat component.
Step 3: Add the Heymarket Chat Component
Adding Chat History to Account Layout
Step 1: Go to Lightning Page Builder
Edit the Account page, as indicated in the screenshot below. You can also edit the page via Setup > Object Manager > Account > Lightning Record Pages.
Step 2: Add “Tabs” Component
This action will create real estate for the Heymarket Chat History component to sit in. This step is optional if you have LEFT sidebar or another similar area available in the page layout, allowing you to drag-and-drop the Message History component.
Step 3: Add Message History Component
Contact Configurations
- The next few sections detail the steps you'll need to take to tweak Salesforce Contact’s layouts, buttons, and other features to enable Heymarket Chat.
- A few steps could vary for your business, especially if your Contact layouts and pages differ from default setups.
- Please ensure you consider your org’s permission and security model while exposing Heymarket Chat to various users in your Salesforce Org.
Heymarket Sync button on Contact List View
This button will sync a single Salesforce Contact in Heymarket. Please go to Setup > Object Manager > Contact > Search Layouts. Choose Sync with Heymarket as shown below, and hit Save.
After you complete the above step, any Contacts list view will reveal the Sync with Heymarket button as shown below:
Heymarket Sync button on Contact Detail Page
Please go to Setup > Object Manager > Contact > Page Layouts in the Contact setup zone. Add Sync with Heymarket on the layout as shown in the screenshot below. You can pick the correct Contact page layout for the required set of Heymarket users.
After completing the above configuration, this button will appear on any Contact detail view as shown below:
Adding the Chat Widget to Contact Layout
Step 1: Go to Lightning Page Builder
Edit the Contact page, as indicated in the screenshot below. You can also edit the page via Setup > Object Manager > Contact > Lightning Record Pages.
Step 2: Add Tabs Component
This step will create the real estate for the Heymarket Chat component to sit in. This step is optional if you have LEFT sidebar or another similar area available in the page layout, allowing you to drag-and-drop the Heymarket Chat component.
Please watch this video for a quick overview of the right sidebar setup: http://g.recordit.co/kF6Y3HDKmK.gif
Step 3: Add Heymarket Chat Component
Adding Chat History to Contact Layout
Step 1: Go to Lightning Page Builder
Edit the Contact page, as indicated in the screenshot below. You can also edit the page via Setup > Object Manager > Contact > Lightning Record Pages.
Step 2: Add Tabs Component
This step will create the real estate for the Heymarket Chat component to sit in. This step is optional if you have LEFT sidebar or another similar area available in the page layout, allowing you to drag-and-drop the Heymarket Chat component.
Please watch this video for a quick overview for right sidebar setup: http://g.recordit.co/6dReyEvQgd.gif
Step 3: Add Message History Component
Lead Configurations
- The next few sections detail the steps you'll need to take to tweak Salesforce Lead’s layouts, buttons, and other features to enable Heymarket Chat.
- A few steps could vary for your business, especially if your Contact layouts and pages differ from default setups.
- Please ensure you consider your org’s permission and security model while exposing Heymarket Chat to various users in your Salesforce Org.
Heymarket Sync button on Lead List View
This button will sync a single Salesforce Lead in Heymarket. Please go to Setup > Object Manager > Lead > Search Layouts. Edit the List View layout. Choose Sync with Heymarket as shown below, and hit Save.
After the above configuration, this button will appear on any Lead list view as shown below:
Heymarket Sync button on Lead Detail Page
Go to Setup > Object Manager > Lead > Page Layouts in the Lead setup zone, and add Sync with Heymarket to the layout as shown in the screenshot below. You can pick the correct Lead page layout for the required set of Heymarket users.
After you complete that step, this button will appear on any Lead detail view as shown below:
Adding the Chat Widget to Lead Layout
Step 1: Go to Lightning Page Builder
Edit the Lead page, as indicated in the screenshot below. You can also edit the page via Setup > Object Manager > Lead > Lightning Record Pages.
Step 2: Add Tabs Component
This will create real estate for the Heymarket Chat component to sit in. This step is optional if you have LEFT sidebar or another similar area available in the page layout, allowing you to drag-and-drop the Heymarket Chat component.
Please watch this video for a quick overview of right sidebar setup: https://www.screencast.com/t/jCj3ce8eUTH
Step 3: Add the Heymarket Chat Component
Adding Chat History to Lead Layout
Step 1: Go to Lightning Page Builder
Edit the Lead page, as indicated in the screenshot below. You can also edit the page via Setup > Object Manager > Lead > Lightning Record Pages.
Step 2: Add Tabs Component
This action will create real estate for the Heymarket Chat component to sit in. This step is optional if you have LEFT sidebar or another similar area available in the page layout, allowing you to drag-and-drop the Heymarket Chat component.
Please watch this video for a quick overview of right sidebar setup: http://g.recordit.co/bdtTBGC35E.gif
Step 3: Add Message History Component
Utility Bar Configuration
The Heymarket app comes with a handy utility bar item called Conversations. Conversations helps you quickly start SMS-based conversations with any Salesforce Contact. This utility bar comes pre-configured with the Heymarket App, and appears as follows:
Add the Utility Bar to Your Lightning Apps
Heymarket ships a component called Conversations. It can be added as a utility bar item to any other Lightning app. Here are the steps for doing so:
Please note: If you are using the Heymarket App, the utility bar configuration is not needed.
Choose the Conversations widget above. Then, fill in some details as shown below:
Opportunity Configurations
Opportunity - Default List Phone Field
To set default List phone field in opportunity click on Opportunity in the left side navigation in heymarket config .
Select the phone field and click on save.
Adding Chat Widget to Lead Layout
Step 1 - Goto Lightning Page Builder
Edit the opportunity page, as indicated in the screenshot below. Or, you can edit the page via Setup > Object Manager > Opportunity > Lightning Record Pages as well.
Step 2: Add “Tabs” Component
This will create a real estate for “Heymarket Chat” component to sit in. This is optional if you have LEFT sidebar or another similar area available in page layout, the same could be used for drag-drop of Heymarket Chat component.
Step 3: Add Heymarket Chat Component
Adding Chat History to Opportunity Layout
Step 1 - Goto Lightning Page Builder
Edit the Lead page, as indicated in the screenshot below. Or, you can edit the page via Setup > Object Manager > Opportunuty> Lightning Record Pages as well.
Step 2: Add “Tabs” Component
This will create a real estate for “Chat History” component to sit in. This is optional if you have LEFT sidebar or another similar area available in page layout, the same could be used for drag-drop of Message History component.
Please check this video for a quick overview for right sidebar setup: http://g.recordit.co/bdtTBGC35E.gif
Step 3: Add Message History Component
Custom Object Configurations & Adding Chat widget
This configuration will allow you to use the chat widget on your custom object which has a phone number field inside it.
Allow Search in Custom Object
Note: Please make sure to allow the search for a custom object. This is important.
If you don't allow the search option then at the time of notification, the app will not able to find the custom object details and it might end up creating a record in salesforce based on Auto-create configuration in sync.
Creating a Formula Field
You need to create a custom formula field in order to help the chat widget to run.
Please follow the steps below,
Step 1:
Go to setup > Object Manager and search for your custom object.
Step 2:
Select field & relationship from the left side and click on the New button
Step 3:
Select Formula from the options and click next.
Step 4:
Enter “E164 Phone” in the Field Label and “E164_Phone” in Field Name, Check Formula Return type “Text” after that click on Next.
Note: Please make sure that the Field Name should be E164_Phone otherwise it will not work for the app.
Step 5:
Enter the below Formula and check syntax.
Please replace the Phone__c from the formula field with the Field Name of the Phone Field you have on your custom object.
For Example: If you have Mobile_Phone__c on your custom object then replace the Phone__c from the below formula with Mobile_Phone__c.
IF( LEN(SUBSTITUTE(
|
Click the Next button and review the Field Level Security and Add it to your page layout (optional). Click Save.
Adding Chat Widget to Custom Object Layout
Now That we have done with the configuration part we will add the chat widget to the custom object layout.
Step 1 - Goto Lightning Page Builder
Edit the Custom Object page, as indicated in the screenshot below. Or, you can edit the page via Setup > Object Manager > [Custom Object]> Lightning Record Pages as well.
Step 2: Add “Tabs” Component
This will create a real estate for the “Heymarket Chat” component to sit in. This is optional if you have a LEFT sidebar or another similar area available in page layout, the same could be used for the drag-drop of the Heymarket Chat component.
Step 3: Add Heymarket Chat Component
Adding Chat History to Custom Object Layout
Step 1 - Goto Lightning Page Builder
Edit the Custom Object page, as indicated in the screenshot below. Or, you can edit the page via Setup > Object Manager > [Custom Object]> Lightning Record Pages as well.
Step 2: Add “Tabs” Component
This will create a real estate for the same component to sit in. This is optional if you have a LEFT sidebar or another similar area available in page layout, the same could be used for the drag-drop of the Message History component.
Step 3: Add Message History Component
Campaign Configurations
Adding Chat Widget to campaign Layout
Step 1 - Goto Lightning Page Builder
Edit the Campaign Object page, as indicated in the screenshot below.
Step 2: Add “Tabs” Component
This will create a real estate for the “Heymarket Chat” component to sit in. This is optional if you have a LEFT sidebar or another similar area available in the page layout, the same could be used for the drag-drop of the Heymarket Campaign Chat component.
Step 3: Add Heymarket Chat Component
Note: Make sure the campaign has at least one member and is an active campaign.
List SMS Configuration
Note: You can use list SMS on Contact, Account, and Lead Object
Step 1: Add “Button” on the object listing page
Go to Setup > Object manager > Select Object (Contact/Account/Lead) > Buttons ,Links and Actions > then Click on New Button or Link
Select Option as shown in the below screenshot and click on save.
Step 2: Add “Button” on the search layout
Goto Search Layouts for Salesforce Classic and click on the edit button
Move to Send list SMS button from Available Buttons to Selected Button and click same(As shown below screenshot)
Now check the Object listing page you will see the button “Send List SMS”
Step 3: Click on “Send List SMS” button you will see screen as below from where you can send list SMS
Note: when nothing is selected from the list then SMS will broadcast to whole list else to the selected members.
Cancelling List Send
Messages scheduled to go out at a point in the future can be cancelled prior to their scheduled execution time. To do so, follow the steps listed here:
- Navigate to Setup
- Search for "Jobs" in the Quick Find search box and select Scheduled Jobs:
- Identify the job to be deleted and click Del.
List SMS Configuration on Custom Object
Step 1: First add a VF page for sending the messages
Create a VF page and put the below code
Change standard Controller and objectType as per the custom object. Like I am adding List SMS on an object with API NAME Employee__c, So my VF page code will be like this.
<apex:page standardController="Employee__c" extensions="heymarket.sendBulkMessages_ctrl" recordSetVar="Employees">
<heymarket:ListSms_Cmp objectType="Employee__c" myData="{!model}" records="{!records}"></heymarket:ListSms_Cmp>
</apex:page>
Step 2: To Add the “Send Bulk SMS” Button on the custom object, Click on the “Edit Object” button
Then Click on “Buttons, Links, and Action” and then “New Button or Link”
Now add the button detail shown in the picture below. Make sure
“Display Type” → List Button
“Content Source” → Visualforce Page
And in “Content” choose the page created in the above step
Now Save this.
As a next step, please create a permission set called "Heymarket External" and give access to this newly created VF page in it. Also, assign this permission set to all those users who are going to use the List SMS Widget on a custom object.
Now Click on the “Search Layout For Salesforce Classic” then from List View click on Edit.
Drag the button to the selected button section and click on the save button.
Now Go back to the Custom Object Listing page and create a list you want to send the bulk SMS
and click on the “Send Bulk SMS” button
Note: You can send SMS to the whole list or you can pick a particular from the check box.
Add Salesforce Template
To add a template, go to the template tab, then add the template according to the object.
Step 1: Click on Template, then click on New.
Fill out the above form to create the template. To merge the object field in the template text, search the field in “Select field to merge” and click on Add next to it. You can also add images and emojis as per your need.
Date Format: if you choose a Date format, then all the date fields will convert in that format. To add values in the Date Format pick list.
Step 1: Setup->Home->PickList Value Sets
Click on “Date Format” to add more date formats.
Here you can see all the date formats added in the org, and you can add more by clicking on “New”
Example: I am creating a template on the contact object with the date format selected as
“YYYY-MM-dd” |
Now when applying this template in the chat created date will be formatted in the “yyyy-MM-dd” format.
Record Type: From this, you can choose the record type which is available on an object(For which the Template is created)
If you choose the record type, then this particular template will be available only for those records that are associated with the same record type.
International Phone Support
Heymarket supports international phone numbers.
You will need to contact Heymarket's support team (help@heymarket.com) to activate international texting. Then you can simply append phone numbers with the correct country codes.
Flow Configuration Common Steps
Step 1: Go to “setup”
Step 2: Search for the “Flow” in “quick find” and “click” on it.
Step 3: On this page, click on the “New Flow ” Button.
Step 4: After clicking on “New Flow” choose “Record Triggered Flow”. And click the “Create” button.
Step 5: After clicking the “Create” you can choose the object on which you are creating the flow then click on the “Done” button.
Setup Notification Bells
Create Custom Notification
You have to create a custom notification to see notifications in the bell.
Please follow these steps to create a custom notification:
- Go to Setup and type Custom Notifications in the quick find box.
- Click on the Custom Notifications tab under Notification builder.
- On the custom Notifications page, click on the New button.
- In the Custom Notification Name field, type.
- In the API Name field, type Incoming_Message. (it will be populated automatically but please ensure the API name)
- Click on the Save button.
Note: Please ensure that the API name of the custom notification must be Incoming_Message otherwise it will not work.
The following screenshots will guide you step by step:
Set up an External Permission Set
After the Spring 21 release, Salesforce has a permission requirement for receiving the custom notifications in the Notification bell.
This update is not yet rolled out to every instance of Salesforce but some of them.
To make sure that you’re not getting any notifications please check for the messages in the bell.
In order to fix the issue, you have to set external permission set for the notification and other permissions.
Please follow the steps below to create an external permission set and assign it to all the users using the Heymarket application:
Step 1: Go to Setup
Step 2: Search for the Permission Set in quick find and click on it and click on the New button.
Step 3: Create the new Permission Set.
Name: Heymarket External
API Name: Heymarket_External
License: None
After filling in the details about the permission set, click Save
Step 4: Assign Custom Notification & Apex, Rest API Permission.
Inside permission set,
Scroll down to the bottom and click on the System Permissions
Search for Apex Rest Services & Send Custom Notifications in the list of System Permissions.
Step 5: Assign Permission Set
Now you can assign this permission set to all those users who are using the Heymarket app in Salesforce.
Setup Flow to create Notifications
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Message” object.
Step 2: Choose “All Conditions Are Met” in Condition Requirement and then In Criteria choose
-
heymarket__Heymarket_User_Id__c is null True. (As shown in the picture below)
Click on the “Done” button.
Step 3: Click on the “Edit” button and make sure your configuration looks like the below pics.
Step 4: Click on the “+” icon. After that select “Action” option as shown in below pictures.
Step 5: After that, a “New Action” pop-up window will appear. Search “Send Notification To User” See the below picture.
Field Setup
Label Name: “Heymarket Message Notification”
API Name: “Heymarket_Message_Notification”
Enable Toggle Button
“Message Id” field value: “{!$Record.Id}”
You can also set the Name and Salesforce Record ID in the input fields as shown in below pictures. It is mandatory to set a name with the salesforce record Id.
Click on “Done”
Step 6: Save & Activate Flow
Click on the “Save” button.
After clicking on the “Save” button a pop-up window will appear.
-
Flow Label: “Heymarket Message Notification”
-
Flow API Name: “Heymarket_Message_Notification”
-
Description: “Create notifications upon arrival of new messages in salesforce”
Then click on “Save” button.
After that click on “Activate” button.
Step 7: Final Looks
-
Make sure your flow looks like this below picture.
Setup Flow to create Notifications with custom object
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Message” object.
Step 2: Choose “All Conditions Are Met” in Condition Requirement and then In Criteria choose
-
heymarket__Heymarket_User_Id__c Is Null true
-
heymarket__Sf_Record_Id__c Is Null false
(As shown in the picture below)
Step 3: Click on the “New Resource”. then a pop-up window will appear. See the below picture
Field Setup for “ObjectAPIName” Resource
Record Type: Variable
API Name: “ObjectAPIName”
Data Type: Text
Must Select Available for output.
Click on the “Done” button.
Step 4: Click on the “+” icon. After that select “Action” option as shown in below pictures.
Step 5: After that, a “New Action” pop-up window will appear. Search “Send Notification To User” See the below picture.
Field Setup for “Object API Name” Action
-
Label Name: “Object API Name”
-
API Name: “Object_API_Name”
-
Record Id: “{!$Record.heymarket__Sf_Record_Id__c}”
Step 6: Click on “Advanced” option then enable “Manually assign variables” then in “Object API Name” field enter “{!ObjectAPIName}”.
Click on “Done”.
Step 7: Click on the “+” icon. After that select “Decision” option as shown in below pictures.
Step 8: After that, a “New Action” pop-up window will appear. Search “Send Notification To User” See the below picture.
Label Name: “Object Decision”
API Name: “Object_Decision”
Outcome
For Account Object
- Label Name: “For Account Object”
- API Name: “For_Account_Object”
Condition
- Resource : “{!$Record.heymarket__Account__c}”
Operator “Is Null”.
Value : “false”
Click on “Plus” button for next outcome
For Contact Object
- Label : “Is Contact”
- Outcome API Name: “Is_Contact”
Condition
- Resource : “{!$Record.heymarket__Contact__c}”
Operator “Is Null”. Value:“false”
Click on “+” button for next outcome
For Lead Object
Condition
Resource : “{!$Record.heymarket__Lead__c}”
Operator “Is Null”.
Value:“false”
Click on “Plus” button for next outcome.
For Opportunity Object
Condition
Resource : “{!ObjectAPIName}”
Operator “ Contains ”.
Value:“Opportunity”
If you have a custom object and want to add bell notification functionality for that custom object then you need to follow step 9 and then click on the “Done” button else click on the “Done” button.
Step 9: Custom Object Outcome
Click on “+” icon for the next outcome.
For Employee Object (Custom Object)
Condition
Resource : “{!ObjectAPIName}”
Operator “ Contains ”.
Value:“Employee__c”.
Note: Employee__c is the Employee API name. Please find your custom object API name and put it as value in criteria.
Note: If you want to add more custom objects for bell notification then you need to repeat step 9.
Step 10: Get Record
Click on the “+” icon. After that select “Get Records” option as shown in below pictures.
Field Setup for “Get Records” Element
- Label: “Get Account Records”
- API Name: “Get_Account_Records”
- Object: “Account”
- Condition:
Field: “Id
Operator “Equal”
Value : “{!$Record.heymarket__Sf_Record_Id__c}”
Step 11: Repeat Step 10 for Contact, Lead, Opportunity and all custom objects.
Note: Object choose as per outcome like if you get records for contact outcome then you need to choose contact object.
Step 12: Send Notification Action
Click on the “+” icon. After that select “Action” option as shown in below pictures.
Search “Send Notification To User” Action
Field Setup for “Send Notification To User” Action (Enabled Name Input)
-
Label Name: “Send Notification To User For Account”
-
API Name: “Send_Notification_To_User_For_Account”
-
Message Id: “{!$Record.Id}”
-
Name: “{!Get_Account_Record.Name}”
-
Salesforce Record Id: “{!$Record.heymarket__Sf_Record_Id__c}”
Click on “Done”..
Step 13: Repeat Step 12 for Contact, Lead, Opportunity and all custom objects.
Note: Name choose as per object like if send notification action for contact then you need to choose get contact record. See in the following example
Name field input in Send Notification To User Action
Name: “{!Get_Account_Record.Name}”. For Account.
Name: “{!Get_Contact_Record.Name}”. For Contact.
Name: “{!Get_Lead_Record.Name}”. For Lead.
Name: “{!Get_Opportunity_Record.Account.Name}”. For Opportunity.
Name: “{!Get_Employee_Record.Name}”. For Employee (Custom Object).
Step 14: Save & Activate Flow
-
Click on “Save” Button.
-
After clicking on the “Save” button a pop-up window will appear
- Flow Label: “Heymarket Message Notification”
- Flow API Name: “Heymarket_Message_Notification”
- Description: “Create notifications upon arrival of new messages in salesforce”
- Then click on “Save” button.
After that click on “Activate” button.
Step 15: Final Looks
-
Make sure your flow looks like this below picture.
Setup Case Creation Process
In this step, We will create a Flow that will automatically create the Cases when the new message will arrive in salesforce.
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Message ” object.
Step 2: Search the “Message ” object with “None” criteria.
Click on the “Done” button.
Step 3: Create Resources
Create 3 New Resource Type Variables.
Click on “New Resource”.
Resource 1(HMCase) :
Choose Resource Type “Variable”
Fill All Field Like this below picture
- Record Type = Variable
- API Name = HMCase
- Data Type = Text
- Default Value = Hm Case
Resource 2(NewStatus) :
Create a New Resource and fill all field Like this below picture
- Record Type = Variable
- API Name = NewStatus
- Data Type = Text
- Default Value = new
Resource 3(CaseStatusUpdate) :
Create a New Resource fill All Field Like this below picture
- Record Type = Variable
- API Name = CaseStatusUpdate
- Data Type = Text
- Default Value = new, working
Step 4: Click on the “+” icon. After that select “Action” option as shown in below pictures.
Step 5: After that, a “New Action” pop-up window will appear. Search “Create case” See the below picture.
Field Setup
Label Name: “Heymarket Message Notification”
API Name: “Heymarket_Message_Notification”
Enable Toggle Button
“Message Id” field value: “{!$Record.Id}”
Step 6: Field Setup
- Label Name: “Create Case”
- API Name: “Create_Case”
- Description: “Creates the Cases when the new message will arrive in salesforce.”
- “Case status to consider for update” : {!CaseStatusUpdate}
- “Message” : {!$Record}
- “Status of new case” : {!NewStatus}
- “Subject of Cases when received from Heymarket”: {!HmCase}
Step 7: Save & Activate Flow
-
Click on the “Save” button.
After clicking on the “Save” button a pop-up window will appear.
-
Flow Label: “Create Case”
-
Flow API Name: “Create_Case”
Click on the “Active” button.
Step 8: Final Looks
-
Make sure your flow looks like this below picture.
Setup Send Message Action
In this step, we are going to set up a Flow to send messages based on some criteria.
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Lead” object.
Step 2: Choose “All Conditions Are Met” in Condition Requirement and choose trigger the flow when “A record is created or updated”
Then In Criteria choose
Status = “Working - Contacted”. (As shown in the picture below)
Click on the “Done” button.
Step 3: Create Resources
Create New Resource Type Variable.
Click on “New Resource”.
Fill All Field Like this below picture
1- Record Type = Variable
2- API Name = LeadMessage
3- Data Type = Text
4- Default Value = “Hi, We got you.”
Click on “Done”.
Step 4: Click on the “+” icon. After that select “Decision” option as shown in below pictures.
Step 5: After clicking the “Decision” then a pop-up window will appear. See the below picture.
- Label: “Lead Status Change”
- API Name: “Lead_Status_Change”
- Description: “We are checking lead status changes or not.”
Outcome
- Label: “Status Change”
- API: “Status_Change”
- Resource : “{!$Record.Status}”
Select “Does Not Equal” Operator.
Value : “{!$Record__Prior.Status}”
Step 6: Click on the “+” icon. After that select “Action” option as shown in below pictures.
Step 7: After dragging “Action” then a pop-up window will appear. Search “Send Message” See the below picture.
Fill All Field Like this below picture
- Label: “Send Message”
- API: “Send_Message”
- Message = {!LeadMessage}
- Phone = {!$Record.heymarket__E164_Phone__c}
- First Name = {!$Record.FirstName} (Enabled Toggle Button)
- Last Name = {!$Record.LastName} (Enabled Toggle Button)
Step 8: Save & Activate Flow
-
Click on the “Save” button.
After clicking on the “Save” button a pop-up window will appear.
-
Flow Label: “Send Message To Lead”
-
Flow API Name: “Send_Message_To_Lead”
Click on “Save” button.
After that click on “Active” button.
Step 9: Final Looks
-
Make sure your flow looks like this below picture.
Update records automatically based on chats (i.e Lead’s status)
You can update records based on messages on Accounts, Contacts, and Leads. To get this feature in your org you have to create a Flow on the Message object. We have lookup fields for Account, Contact, and Lead (for each), relative lookup will be populated according to the related sObject (Account, Contact, or Lead).
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Message” object.
Step 2: Choose “All Conditions Are Met” in Condition Requirement and the conditions are
-
heymarket__Lead__c Is Null False
-
heymarket__Heymarket_User_Id__c Is Null False
Click on the “Done” button.
Step 3: Create Resources
Create New Resource Type Variable.
Click on “New Resource”.
Fill All Field Like this below picture
1- Record Type = Variable
2- API Name = Idontneedthis
3- Data Type = Text
4- Default Value = “I don’t need this.”
Click on “Done”.
Create New Resource Type Variable.
Click on “New Resource”.
Fill All Field Like this below picture-
1- Record Type = Variable
2- API Name = Ineedthis
3- Data Type = Text
4- Default Value = “I need this.”
Click on “Done”.
Create New Resource Type Variable.
Click on “New Resource”.
Fill All Field Like this below picture
- Record Type = Variable
- API Name = Interested
- Data Type = Text
- Default Value = “Interested”
Click on “Done”.
Create New Resource Type Variable.
Click on “New Resource”.
Fill All Field Like this below picture
- Record Type = Variable
- API Name = ”Notinterested”
- Data Type = Text
- Default Value = “Not interested”
Step 4: Click on the “+” icon. After that select “Decision” option as shown in below pictures.
Step 5: After clicking the “Decision” then a pop-up window will appear. See the below picture.
- Label: “Outcome”
- API Name: “Outcome”
Step 6: Configure 3 outcome criteria
- Chat Out Bond
- Label: “Chat Out Bond”
- API Name: “Chat_Out_Bond”
- Condition : {!$Record.heymarket__Lead__r.Status} equals “Open - Not Contacted”
Click on “+” button.
2. Negative Response
- Condition Requirements to Execute Outcome (Any Condition Is Met (OR))
- Label: “Negative response”
- API Name: “Negative_response”
- Conditions:
{!$Record.heymarket__Text__c} Contains {!notinterested}
{!$Record.heymarket__Text__c} Contains {!Idontneedthis}
Click on “+” icon.
3. Positive Response
-Condition Requirements to Execute Outcome (Any Condition Is Met (OR))
- Label: “Positive response”
- API Name: “Positive _response”
- Conditions :
{!$Record.heymarket__Text__c} Contains {!interested}
{!$Record.heymarket__Text__c} Contains {!Ineedthis}
Click on “Done” button.
Step 7: Update Record
- For “Chat Out Bond” Outcome
Click on the “+” icon. And then after click on “Update Record”
After clicking “Update Record” then a pop-up window will appear. See the below picture.
Label: “Update Lead Status”
API Name: “Update_Lead_Status”
Select - “Specify conditions to identify and set fields individually”.
Fill All Field Like this below picture
- Id = {!$Record.heymarket__Lead__c} (Condition)
- Status = Working-Contacted
Click on “Done” button.
2. For “Negative Response” Outcome
Click on the “+” icon. And then after click on “Update Record”
After clicking “Update Record” then a pop-up window will appear. See the below picture.
- Label: “Update Lead Status1”
- API Name: “Update_Lead_Status1”
- Select - “Specify conditions to identify and set fields individually”.
Fill All Field Like this below picture
- Id = {!$Record.heymarket__Lead__c} (condition)
- Status = Closed - Not Converted
Click on “Done” button.
3. For “Positive Response” Outcome
Click on the “+” icon. And then after click on “Update Record”
After clicking “Update Record” then a pop-up window will appear. See the below picture.
Label: “Update Lead Status2”
API Name: “Update_Lead_Status2”
Select - “Specify conditions to identify and set fields individually”.
Fill All Field Like this below picture
- Id = {!$Record.heymarket__Lead__c} (condition)
- Status = Closed - Converted
Click on “Done” button.
Step 8: Save & Activate Flow
-
Click on the “Save” button.
After clicking on the “Save” button a pop-up window will appear.
3. Flow Label: “Update Lead Status On Message”
4. Flow API Name: “Update_Lead_Status_On_Message
Click on “Save” button.
After that click on “Active” button.
Step 9: Final Looks
-
Make sure your flow looks like this below picture.
Auto Create Task on basis of Incoming/Outgoing message on Lead
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Message” object. And In Configure Trigger select “A record is created or updated”.
Step 2: Choose “None” in Condition Requirement
Click on the “Done” button.
Step 3: Create 2 new Resources
Create New Resource Type Variable.
Click on “New Resource”.
Fill All Field Like this below picture
- Record Type = Variable
- API Name = “Inbound”
- Data Type = Text
- Default Value = “Inbound SMS”
Click on “Done” button.
Fill All Field Like this below picture
- Record Type = Variable
- API Name = “Outgoing”
- Data Type = Text
- Default Value = “Outgoing SMS”
Click on “Done” button.
Step 4: Click on the “+” icon. After that select “Decision” option as shown in below pictures.
Step 5: After clicking the “Decision” then a pop-up window will appear. See the below picture.
Label: “Incoming/Outgoing Decision”
API Name: “Incoming/Outgoing_Decision”
Step 6: Configured 2 outcome criteria
- For Incoming
1- Label: “For Incoming”
2- API Name: “For_Incoming”
3- Conditions :
{!$Record.heymarket__Heymarket_User_Id__c} Is NUll True
{!$Record.heymarket__Lead__r.OwnerId} Is Null False
2. For Outgoing
- Label: “For Outgoing”
- API Name: “For_Outgoing”
- Conditions :
{!$Record.heymarket__Heymarket_User_Id__c} Is NUll False
{!$Record.heymarket__Lead__r.OwnerId} Is Null False
Click on the “Done” button.
Step 7: Create Record
- For “Incoming” Outcome
Click on “+” Icon. After that click on “Create Record” option (as shown below).
After clicking“Create Record” then a pop-up window will appear. See the below picture.
- Label: “Create Task For Incoming”
- API Name: “Create_Task_For_Incoming”
- How Many Records to Create : “One”
- How to Set the Record Fields : “Use separate resources, and literal values”
Fill All Field Like this below picture
- Object : “Task”
- Description = {!$Record.heymarket__Text__c}
- OwnerId = {!$Record.heymarket__Lead__r.OwnerId}
- Priority = Normal
- Status = Not Started
- Subject ={!Inbound} (Resource)
Click on the “Done” button.
2. For “Incoming” Outcome
Click on “+” Icon. After that click on “Create Record” option (as shown below).
After clicking“Create Record” then a pop-up window will appear. See the below picture.
- Label: “Create Task For Outgoing”
- API Name: “Create_Task_For_Outgoing”
- How Many Records to Create : “One”
- How to Set the Record Fields : “Use separate resources, and literal values”
Fill All Field Like this below picture
- Object : “Task”
- Description = {!$Record.heymarket__Text__c}
- OwnerId = {!$Record.heymarket__Lead__r.OwnerId}
- Priority = High
- Status = Not Started
- Subject ={!Outgoing} (Resource)
Click on the “Done” button.
Step 8: Save & Activate Flow
-
Click on the “Save” button.
2. After clicking on “Save” a pop-up window will appear.
Flow Label :”Task On Message”
API Name : “Task_On_Message”
3. Click on the “Active” button.
Step 9: Final Looks
-
Make sure your flow looks like this below picture.
Send Message To Contact
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Contact” object. And in Cofigure Trigger choose “A Record is created or updated”.
Step 2: Choose “All Conditions Are Met” in Condition Requirement
Conditions:
LeadSource = other
Click on the “Done” button.
Step 3: Create Resources
Create 1 New Resource Type Formula.
Fill all fields like this-
- Record Type = Formula
- API Name: “ReplyMessage”
- Data Type = Text
- Formula: "Hii " &{!$Record.FirstName}&" "&{!$Record.LastName}&" ,"&"Thankyou for confirming your details. "&"We will get back to you shortly"
Click on the “Done” button.
Step 4: Click on “+” icon. And then after click on “Decision”
Step 5: After clicking “Decision” a pop-up window will open..
- Label: “Check Leadsource change or not”
- API Name: “Check_Leadsource_change_or_not”
(In Outcome Detail Section)
- Label: “Leadsource change”
- API: “Leadsource_change”
- Resource : “{!$Record.LeadSource}”
Select “Does Not Equal” Operator.
Value : “{!$Record__Prior.LeadSource}”
Click on the “Done” button.
Step 6: Click on the “+” icon. After that select “Action” option as shown in below pictures.
Step 7: After that, a “New Action” pop-up window will appear. Search “Send Message” see the below picture.
Label Name: “Heymarket Message Notification”
API Name: “Heymarket_Message_Notification”
Fill All Field Like this below picture
Phone = {!$Record.heymarket__E164_Phone__c}
First Name = {!$Record.FirstName} (Enabled Toggle Button)
Last Name = {!$Record.LastName} (Enabled Toggle Button)
Message = {!ReplyMessage} (Enabled Toggle Button)
Click on “Done” button.
Step 8: Save & Activate Flow
-
Click on the “Save” button.
- After clicking on “Save” a pop-up window will appear.
Flow Label : ”Send Messge To Contact”
Flow API Name : “Send_Message_To_Contact”
Click on the “Save” button.
3. Click on “Activate” button.
Step 9: Final Looks
-
Make sure your flow looks like this below picture.
Action Message
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Contact” object. And in Cofigure Trigger choose “A Record is created or updated”.
Step 2: Choose “All Conditions Are Met” in Condition Requirement
Conditions:
LeadSource = other
Step 3: Create Resources
Create a New Resource Type Variables.
Click on “New Resource” (Left side of the window)
Fill All Field Like this below picture
1- Record Type = Variable
2- API Name = “HiThere”
3- Data Type = Text
4- Default Value = “Hi There”
Step 4: Click on the “+” icon. After that select “Action” option as shown in below pictures.
Step 5: After that, a “New Action” pop-up window will appear. Search “Send Message” see the below picture.
Label Name: “Action Message”
API Name: “Action_Message”
Fill All Field Like this below picture
- Phone = {!$Record.heymarket__E164_Phone__c}
- First Name = {!$Record.FirstName} (Enabled Toggle Button)
- Last Name = {!$Record.LastName} (Enabled Toggle Button)
- Message = {!HiThere} (Enabled Toggle Button)
Click on the “Done” button.
Step 6: Save & Activate Flow
-
Click on the “Save” button.
2. After clicking on “Save” a pop-up window will appear.
Flow Label : ”Action Message”
Flow API Name : “Action_Message”
Click on the “Save” button.
- And then click on Activate button
Step 7: Final Looks
-
Make sure your flow looks like this below picture.
Send Message Flow Fields
Below Image shows all the field you can use to send message using the send message flow
1)Phone :
It's a mandatory field. In this you can use the field reference of the phone number on which you want to send the message.
2)First Name :
Deprecated field (Would not recommend to use it)
3)Inbox Id :
In this field you provide the inbox Id (Heymarket Inbox ID) and the message will be sent using the same inbox. If no inboxId selected then
message will be sent using the default inbox.
4)Inbox Number :
If you don’t have the inbox Id then you can also add the Inbox Number in the flow e.g “14155484779” and the message will be sent using
the same inbox.
5)Last Name :
Deprecated field (Would not recommend to use it)
6)Message :
You can use this field for the message you want to send the user. Don’t use the merge token in this, Because if the contact
Is not sync with the heymarket then it if not work.If you want to send a message with merge token use templateId field.
7)Salesforce Record ID :
It is the record Id of the object. It is mandatory if you are using the template for sending the message. Also, it will help you keep track of all the related messages with the records. This record Id will be populated on the message object record.
8)Template ID :
You can also use the salesforce template to send Flow messages. Add “record Id” or a “template name” of the template in Template Id field. You can also use a merge token in the template to send messages. This template record Id will be populated on the message object record.
9)User ID :
If you want to send a message using a specific user then add the salesforce user ID of the user in this field. Flow will pick the heymarket
users from the user mapping and message will be sent with the mentioned user. If you do not mention it, a message will be sent by the default user. The “Heymarket__User_Id__c” field will be populated with the Heymarket User Id of the Salesforce User.
Update Case Phone
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Case” object. And in Cofigure Trigger choose “A Record is created or updated”.
Step 2: Choose “None” in Condition Requirement
Step 3: Click on “+” icon. And then after click on “Decision”
Step 4: After clicking “Decision” a pop-up window will open..
Label: “Contact Phone”
API Name: “Contact_Phone”
(In Outcome Detail Section)
Fill details like this
- Label: “Phone not null”
- API: “Phone_not_null”
- Resource : “{!$Record.Contact.heymarket__E164_Phone__c}”
Select “Does Not Equal” Operator.
Value : “{!$GlobalConstant.EmptyString}”
Click on “Done” button.
Step 5: Update Record
- Click on “+” icon. And then after click on “Update Record”.
2. After clicking “Update Record” then a pop-up window will appear. See the below picture.
Label: “Update Case”
API Name: “Update_Case”
Fill All Field Like this below picture
- Id = {!$Record.Id} (Condition)
- heymarket__Phone__c = {!$Record.Contact.heymarket__E164_Phone__c}
Step 6: Save & Activate Flow
-
Click on the “Save” button.
2. After clicking on “Save” a pop-up window will appear.
Flow Label : ”Update Case Phone”
Flow API Name : “Update_Case_Phone”
Click on “Save” button
3. Click on “Activate” button.
Step 7: Final Looks
-
Make sure your flow looks like this below picture.
Incoming/Outgoing Activity
In this step, we are going to set up a Flow to send messages based on some criteria using the Flow.
Please follow the steps carefully.
Step 1: Follow all steps mentioned in “Flow Configuration Common Step” and choose “Message” object.
Step 2: Choose “All Conditions Are Met” in Condition Requirement and the conditions are
- heymarket__Heymarket_User_Id__c Equals {!$GlobalConstant.EmptyString}
- heymarket__Heymarket_User_Id__c Is Null {!$GlobalConstant.True}
Click on the “Done” button.
Step 3: Create Resources
Create 2 New Resource Type Variables.
Click on “New Resource” (Left side of the window)
- Fill All Field Like this below picture
1- Record Type = Variable
2- API Name = SendSMSMessage
3- Data Type = Text
4- Default Value = “Send SMS Message”
Click on “Done” button.
2. Fill all field Like this below picture
- Record Type = Formula
- API Name = relatedToFormula
- Data Type = Text
- Default Value = IF(BEGINS({!$Record.heymarket__Sf_Record_Id__c}, '003'), {!$Record.Id}, null)
Click on “Done” button.
Step 4: Create Record
- Click on the “+” icon. After that select “Create Record” option as shown in below pictures.
2. After clicking “Update Record” then a pop-up window will appear. See the below picture.
- Label: “Create Task”
- API Name: “Create Task”
- Choose Task Object
Fill all fields as shown in pictures
- Description = {!$Record.heymarket__Text__c}
- OwnerId = {!$Record.heymarket__Lead__r.OwnerId}
- Priority = Normal
- Status = “In Progress”
- Subject = {!SendSMSMessage} (Resource)
- WhatId = {!relatedToFormula} (Resource)
- WhoId = {!$Record.heymarket__Sf_Record_Id__c}
Click on “Done” button.
Step 5: Save & Activate Flow
- Click on the “Save” button.
2. After clicking on “Save” a pop-up window will appear.
Flow Label : ”Incoming/Outgoing Activity”
Flow API Name : “UIncoming/Outgoing_Activity”
Click on the “Save” button.
3. And then click on the “Active” button.
Step 6: Final Looks
-
Make sure your flow looks like this below picture.
Delete Message Object Data
Flow to delete Message Object data
Step 1: Go to “setup”
Step 2: Search for the “Flow” in “quick find” and “click” on it.
Step 3: On this page, click on the “New Flow ” Button.
Step 4: On this modal, select “Schedule-Triggered Flow” and then click on the “Create” Button.
Step 5: On the Flow Builder page click on the “Set Schedule” option.
Step 6: On the pop-up modal, select Date-Time, and Frequency as you want to run the Flow, and then click on the “Done” button.
Step 7: Now on the Flow Builder page, click on the “+” icon.
Step 8: After that, select the “Action” option.
Step 9: In the “New Action” pop-up modal, search for “Delete Message Action” and then select it.
Step 10: After that type “Delete Messages” in the Label field and then enter the date in the “Delete Messages Before Date” field such that the messages earlier that date will be deleted but the date is in the format of “dd/MM/yyyy” like “01/01/2020“. And then click on the “Done” button.
Step 11: Now on the Flow Builder page, click on the “Save” button.
Step 12: On the pop-up modal of “Save the flow”, type “Flow To Delete Messages” in the Label field and then click on the “Save” button.
Step 13: After that click on the “Activate” button.
Setup SMS Opt In
In this step, we are going to set up a Flow to update a custom field value based on customer responses.
A customer can respond with ‘STOP’ and manually opt out from the active communications. Similarly, the customer
can opt in by replying ‘START’ to the conversation.
Please follow the steps to implement a flow to update the custom field based on customer responses.
Step 1: Go to Setup and create a flow
Step 2: Go to Setup and create a flow
Step 3: Select the Haymarket Message object and set the criteria
Step 4: Add a decision
For handling STOP replies
Use the Heymarket__Text__c field to compare text from the message.
For handling START replies
The default Outcome will be empty.
Step 4: Get the record to update the Opt In
Use the Get Record action to get the related record. The related record Id with the Phone number will be populated on the Heymarket__Sf_Record_Id__c field in the message object. Use this field to get the related record.
Add the Get record action to the flow at the mentioned place.
Here is the configuration for the get record action,
Now copy the same Get record action element and paste it in the start path.
Paste it to the start path,
Step 5: Update the opt in.
As we got the record, we can update the opt-in flag of the record.
Set the assignment for Opt In custom field on Lead. Set it to false to opt out.
Follow the same steps for Opt in and set the field to true for Opt in.
Step 6: Update the Lead Rec.
Use the update record action from the flow
Select the lead record to update and it should now update the Opt In field in Salesforce when a customer replies with STOP or START.
The End flow will look like this
Omni Channel Setup Guide
Releases
-
V 1.144 March Release, 2022
-
V 1.145 May Release, 2022
-
V 1.147.1 July Patch Release, 2022
-
V 1.148 Aug Release, 2022
-
V 1.149 Sep Release, 2022
-
V 1.150 Oct Release, 2022
-
V 1.151 February Release, 2023
-
V 1.152 March Release, 2023
-
V 1.154 May Release, 2023
-
Salesforce Custom Report
FAQ
Q. How do I find a field in Heymarket for a required Salesforce Contact field?
A: Heymarket allows you to map any Heymarket contact’s custom field to a Salesforce contact's custom field (both standard and custom). If you don’t see the required custom field on the Heymarket side, create a new one by visiting here: https://app.heymarket.com/admin/fields.
After that, check out the Contact Field Mapping section in this article to map the newly-created Heymarket custom field to the Salesforce contact's custom field.
You can also create a new Salesforce custom field or use an existing custom field and map it out to any Heymarket contact's custom field.
Q. Which Salesforce users can use the Heymarket App?
A: User Mapping (described above) in the Heymarket Administration tab is an essential step before any Salesforce user uses Heymarket. Please ensure all Salesforce users planning to use the Heymarket integration are mapped correctly in the User Mapping screen. Mapping a Salesforce user via our screens requires permission sets with access to the Heymarket app and other chat-related configurations.
To have even closer control over who can see Heymarket Chat features, you can make contact record pages visible to only certain end-user profiles.
Q. Can I use my Heymarket Templates in Salesforce?
A: Yes, you can. Hitting the templates icon (shown below) loads all your latest configured templates to Heymarket.
Q. Why am I not getting desktop notifications for chats in Salesforce?
A: There could be a few reasons,
- Disable the Do Not Disturb function in Mac.
- Enable the Notifications setting in your Salesforce domain. This is how that process looks with Chrome for macOS:
Q. Which inboxes will I see in Salesforce?
A: All inboxes are visible to the current logged in user in the configured team. The below screenshot of the chat widget on a Contact shows the inbox selector:
Please note: If some inboxes are not visible to a Heymarket User, they will not appear in Salesforce as well. Configure access to inboxes in Heymarket administration.
Q. What gets synced when I push a Contact from Salesforce to Heymarket?
A: The integration pushes the Salesforce Contact into Heymarket based on two key factors:
- Default Phone Field: This is configured in Heymarket Administration, and will be the key to deciding which Heymarket Contact matches the one in Salesforce. The integration will try finding a matching contact in Heymarket based on the default phone field only.
- Field Mappings: Apart from the standard fields, like first name, last name, email, and mobile fields, any other standard/custom fields mapped in Heymarket Administration will be pushed out to Heymarket as part of the sync.
Q. What do I do if I'm getting permission issues on a Contact/Lead/Account page or configuration tab?
Ans: We use the Permission Set to give all the required permissions to customers. If you face any issues with permissions like Phone, Mobile Phone, or Other Phone, check for their permission in your current profile or permission set.
Please make sure that you are using the correct user and that the user is mapped in the User Mapping section of the Heymarket Administration page.
Q. What does "No Such Column ‘E164_Phone__c’" mean on entity Account/Lead/Opportunity/Contact/Case Object?
Ans: This issue can occur when an incorrect user is trying to use Heymarket features. If you are sure the correct user is signed in, then please ensure that the user is mapped in the User Mapping section of the Heymarket Administration page.
If you still have this issue, check your profile settings and permissions. You should have the E164_Phone__c field in your field permissions.
Q. What do I do about the error "Please Check configuration settings OR try to re-authorise."?
Ans: This error means that you don't seem to be mapped with a particular Heymarket user. Go into the User Mapping tab and ensure you are mapped.
Q. What do I do if I can't find a field in field mapping for Contact/Account/Lead?
Ans: Check the field type you are trying to map. Currently we do not support any unwritable field from Salesforce, like LastModifiedTime, Owner, or CreatedTime.
We also do not support any Date type field in Salesforce field mapping.
Q. Can I use a different Inbox for another user or my colleague?
Ans: You can use the User mapping feature to assign a separate inbox for a particular user from the inbox column.
Q. Why am I not getting bell notifications in Salesforce?
Ans: To get the bell notifications, you need to create the process builder and follow the steps mentioned here.
Q. Why isn't the chat list in the utility bar not visible in other applications?
Ans: You need to add this functionality into the app manually. Here are the steps you can follow.
Q. How can I uninstall the app?
A: Please check this video for details: https://www.screencast.com/t/GbiOJqvir6
Q. What if an org has multiple records (on the same or different Object) with the same name and phone number?
Ans: Your chats will work accordingly. However, Heymarket allows only one phone number per contact. In sync, you will see the number of synced Salesforce records. It will never be a problem to chat with the phone number.
If you have multiple records on the same Object with the same phone number, you might get an error on sync because the same Heymarket ID (External Id) can not be populated on more than one record. External ID type fields are unique. To resolve this error, you need to merge duplicate records (on the same Object) or delete them to keep only a single record.
Q. What if sync is stuck or not working?
Ans: You need to check if you have a flow/trigger created in org which is impacting the sync.
Q. How can I update the Heymarket App?
Ans: To update the heymarket app go to the app launcher and click on “View All”
After that you will the screen like below then click on “Visit AppExchange”
In the app exchange page search for heymarket and click on that
You will see “Update Now” on above screen click on that your app will be updated.
Feedback
Please contact us at help@heymarket.com if you run into any issues or queries.