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:
- Click on Generate API Key:
- Click Copy to copy the API key:
Adding the Heymarket API Key to Salesforce
- Log in to Salesforce. Then click on the Heymarket app via App Launcher:
- Go to the Heymarket Administration tab, and enter the copied API Key. Click Verify for the next steps:
Default Inbox Selection
- Select a default inbox for further use, then click Save.
User Mapping
Please notice the yellow checkbox before Heymarket API in 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 have certain Heymarket roles
- Enables required custom permissions to let Salesforce users 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 will set up the details that enable Salesforce and Heymarket to sync data.
- If you enable Sync Salesforce Contacts with Heymarket, then Salesforce Contacts will sync with Heymarket.
- If you enable Sync Salesforce Leads with Heymarket, then Salesforce Leads will sync with Heymarket.
- Auto Create decides what type of record will be created in Salesforce whenever a new Heymarket contact is synced with Salesforce. You can choose Contact OR Lead OR None.
- If you choose None, then new/unknown contacts from Heymarket will not be created within Salesforce.
Please refer to these descriptions based on the numbers in the picture below:
- This section helps you choose which contacts are going to be synced with Heymarket.
- Sync All will sync all of the contacts from Salesforce to Heymarket.
- Sync Listview will sync contacts that come under a particular listview filter.
- This section allows you to select a list view. This choice will allow only particular set of Salesforce contacts to be synced based on the list view filter.
- This section determines Heymarket's contact deletion behavior.
- If this checkbox is marked, then contacts that are deleted from Salesforce will also be deleted from Heymarket whenever syncs occur.
- If this checkbox is left blank, then contacts that are deleted from Salesforce will not have any effect on Heymarket.
- This section dictates which leads are going to be synced with Heymarket.
- Sync All will sync all of the leads from Salesforce to Heymarket.
- Sync Listview will sync leads that come under a particular listview filter.
- This section allows you to select a list view for leads. This choice will allow only particular set of Salesforce leads to be synced based on the list view filter.
- This section determines Heymarket's lead deletion behavior.
- If this checkbox is marked, then leads that are deleted from Salesforce will also be deleted from Heymarket whenever syncs occur.
- If this checkbox is left blank, then leads that are deleted from Salesforce will not have any effect on Heymarket.
- This section determines Heymarket's auto-create behavior.
- If you select None, no new or unknown records will be created from Heymarket to Salesforce.
- If you select Contact, new or unknown records will be created from Heymarket as Contacts on Salesforce.
- If you select Lead, new or unknown records will be created from Heymarket as Leads on Salesforce.
Contact Owner Sync
You can also enable/disable the record owner sync from inside the Salesforce.
List Configuration
You can set Heymarket to automatically add record phone numbers in Salesforce to Heymarket contact lists during syncs. You need to define field names and field values, and choose a Heymarket Contact List. List Configuration is only available for sync-enabled Objects.
In above screen, you must:
- Select a field.
- Define a value to match.
- Select a Heymarket List that you would like records added to when the selected field’s value matches to the defined value (from step 2).
- Choose whether to disable or enable the entry. This Remove button removes a raw entry (i.e. newly created) and doesn't save it in the database.
This configuration will be used while Heymarket syncs records.
As it syncs data between itself and Salesforce, Heymarket checks configured fields on each syncing record. If a record has configured field’s (step 1) value same as configured value (step 2) Heymarket will add the 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 in it, will appear in this section. In case, if you don’t have any custom object with a phone number field 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.
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 if there are additional required fields on the Account object. This gives background syncing a way to include a sensible default for the required field.
In the example screenshot below, the Account Name field is marked as required.
Contact Phone Field
Your contacts will have multiple phone number fields. After you click Default Phone Field on the left sidebar, the system will present the phone field to use with Heymarket for chatting and syncing Contacts.
Note: This field can be changed later on, but we don't recommend it.
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.
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.
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 be have the default value each time it syncs.
Sync and Status
Necessary steps before starting a full or first sync.
Disable record creation on unknown message notifications.
Steps:
- Go to Heymarket App > Sync Configuration.
- Scroll down to the bottom.
- Ensure the button is toggled to Inactive.
The Process Builder on Account/Contact/Lead should be inactive. The Flow/Workflow/Field Update on Account/Contact/Lead should also be inactive.
After setting up all the details in sync configuration, you should be able to see a new tab called Sync. This tab will allow you to sync data between Salesforce and Heymarket (based on your sync configuration).
Take a look at the picture below.
- This is the Sync tab. After clicking on this tab you will see the On-Demand Sync page.
- Click on the Start Sync button. That will start to sync the data between Salesforce and Heymarket.
- You can schedule sync every 30 minutes. For example, if you schedule sync at 12:15, then Heymarket will schedule the next sync at 12:45.
Understanding the On-Demand Sync
You may become overwhelmed when you see the number of items on this screen. That's why we're here to help! Match the below descriptions to their corresponding screenshots to learn about each feature's function.
4. This is a spinner that shows the progress of the current sync. If this spinner is not visible, then there is no sync in progress.
5. These bubbles indicate the statuses of the sync details that are in progress or already progressed.
6. This section will show you sync details.
6.1. This number indicates the number of records updated, created, or deleted during the sync process.
6.2. This timestamp will show you the last sync time (if a sync is not in progress) or sync started time (if a sync is in progress).
7. Your next scheduled sync will be shown here. Otherwise, this space will show you the "No scheduled sync found" message.
8. After you click on the Start Sync button, you can cancel the sync while it's in progress. Simply click Cancel Sync and the scheduler will stop instantly.
Note: We cannot guarantee the cancellation of the sync if it has already started. The UI changes only take 2 or 3 seconds to update, so small data sets may be synced before you cancel them. We cannot roll back these changes.
10. After you click on the Start Sync button, you can cancel the sync while it's in progress. Simply click Cancel Sync and the scheduler will stop instantly.
11. If you click Cancel Sync and Heymarket cancelled the sync successfully, you will see this green banner.
12. If you want to cancel a scheduled sync, click Cancel and Heymarket will abort it.
13. You can see all past sync details when you click on this History button.
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:
Account Configurations
Adding the Chat Widget 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 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.
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
Opportunity Configurations
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
Set Up Process for Case Creation
In this step, we will create a process builder that automatically creates Cases when new messages arrive in Salesforce.
Step 1: Go to Setup.
Step 2: Click on Process Builder in quickfind.
Step 3: On the below screen, click New.
Step 4: A screen will ask you to fill in details. Enter the Process name “Create Cases” and API Name as “Create_Cases.” Select A record changes in “The process starts when” option. Now, click Save.
Step 5: You will be redirected to the Process Builder page. Here, you can build a process that auto creates cases in your org.
Fill in the details as shown in the image below and click Save.
Step 6: Click on Add Criteria and enter criteria name as “No Criteria." Then select No criteria-just execute the actions and click Save.
Step 7: You will now come to the main page where you can set up the case-creation automation.
-
Click on Add Action.
-
Select Apex from Action Type dropdown menu.
-
Enter "Create Cases" as the Action Name.
-
Select Create Cases from the Apex Class dropdown menu.
Step 8: Apex Variables can be difficult to understand. We have to pass custom input into the process builder so that whenever each case is created, it will already have the default values populated in it. When you get to the below screen, you'll want to read our descriptions of each page feature:
-
This bubble asks you to choose the default Status you'd like each new case to have.
-
This bubble asks you to select a message. Click on the magnifier icon to select the message.
-
This bubble asks you to choose the statuses that indicate that a case is eligible for an update.
-
This bubble asks you to choose a default subject name.
After filling out this screen, click Save.
Step 9: Navigate to “Activate the Process Builder” and click Activate. Then, click Confirm.
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( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( Phone__c , "(", "" ), ")", "" ), " ", "" ), "-", "" ), "+", "" )) == 10 , '1'+SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( Phone__c , "(", "" ), ")", "" ), " ", "" ), "-", "" ), "+", "" ), SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( Phone__c , "(", "" ), ")", "" ), " ", "" ), "-", "" ), "+", "" ))
|
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
Set Up the Notification Bell
In this step, we are going to set up a process builder that sends you notifications when Salesforce receives new messages from any object supported and enabled by the Heymarket configuration.
Please follow these steps carefully.
Step 1: Go to Setup.
Step 2: Search and click on Process Builder in quickfind.
Step 3: On this screen, click New.
Step 4: A new screen will ask you to fill in details. Enter “Heymarket Message Notification” under Process Name and “Heymarket_Message_Notification” under API Name. Under “The process starts when," select A record changes. Then, click Save.
Step 5: You will be redirected to the Process Builder page. This is where you will set up bell notifications in your Salesforce Org.
Fill the details as shown in the image below and click Save.
Step 6: Click on Add Criteria. Enter “If No User” under Criteria Name. Under Criteria for Executing Actions, select Conditions are met. Then click Find a field.
After you click on Find a field, a popup screen will open, asking you to select a field from the dropdown menu.
Type "Heymarket User ID" in the input box. Select the Heymarket User ID field. Then click Choose.
Now, select the other criteria information from the dropdown menu. Click Save after making your selection.
Now, we have added the criteria that determine when notifications will be created in Salesforce. Let’s add notification details to complete the setup process.
Step 7: Click Add Action under the Immediate Action section.
After clicking on the Add Action button, a new action area will pop up from the right side of your screen.
Follow the steps one by one.
- Click Add Action.
- Select Apex as Action Type.
- Choose to Create Notifications as Action Name.
- Search for the Apex Class by typing in "Send Notification To User." Select the same value from the dropdown menu.
- Click Add Row.
- Select messageId under Field. Select Field Reference under Type. Click Find a field for Value.
- Select messageId under Field. Select Field Reference under Type. Click Find a field for Value.
- After clicking on Find a field, a popup screen called Select a Field will appear. Select Record ID from the dropdown, then click Choose.
- Now, click Save to save your notification setup.
Step 8: To activate the process builder, click Activate.
On the Activate Version screen, click Confirm.
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 Incoming Message.
- 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 custom notification must be Incoming_Message otherwise it will not work.
From now on, you will receive message notifications in your Salesforce notification center.
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.
Set Up Message Action
In this step, we are going to set up a process builder that sends messages to your contacts based on certain criteria.
Please follow the steps carefully.
Step 1: Go to Setup.
Step 2: Click on Process Builder in the quick find window.
Step 3: On this page, click on the New button.
Step 4: A screen will ask you to fill in details. Enter “Send Message To Lead” under Process Name and “Send_Message_to_Lead” under API Name. Select A Record Changes under The process starts when. Now, click Save.
Step 5: You will be redirected to the Process Builder page. Here you can build a process that sends messages to Leads from your org.
Fill in the details as shown in the image below, then click Save.
Step 6: Click Add Criteria. Enter “Working - Contacted” under Criteria Name. Select Conditions are met under Criteria for Executing Actions. Then click Find a field.
Note: You can give any criteria name based on your requirements.
After clicking Find a field, a screen will open, asking you to select a field from the dropdown menu.
You can choose any field you want to set the criteria for. In this example, we choose the Status field of our Lead.
Type "Status" in the input box. Then select Status and click Choose.
Now, select the other criteria information from the dropdown menu.
Step 7: Add the Change Criteria.
This criteria is very important. We have to check whether the field has changed or not.
Click on Add Row. Select Status as your field. Choose Is changed as Operator. Finally, set the Value to True.
Now, Click the Save button.
Step 8: Click Add Action under the Immediate action section.
After clicking on the Add Action button, a new action area will appear from the right side of your screen.
Follow the following steps one by one.
- Click Add Action.
- Select Apex as Action Type.
- Enter "Send Message to Lead" as Action Name. (N.B.: You can give any name you'd like.)
- Search for the Apex Class by typing "Send Message." Select the same value from the dropdown menu.
- Paste the message you want to send to your customers.
- Select Field Reference as the type, then click on Find a field.
- Select E164_Phone__c and click Choose.
Click Save to finish the set up process and save.
Step 8: To activate the process builder, click Activate.
Finally, click Confirm.
From now on, the automation will send a message when a lead status is updated to match the criteria.
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.
Update records automatically on the basis of chats (i.e Lead’s status)
You can update records on the basis of messages on Accounts, Contacts, and Leads. To get this feature in your org you have to create a process builder 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).
In our example, we are updating the Lead’s Status on the basis of a chat with the lead.
We have some sample scenarios:
- Update lead’s status Working Contacted when we receive a message from the lead.
- Update lead’s status Closed Not Converted when we get a negative response from lead.
- Update lead’s status Closed Converted when we get a positive response from lead.
Create a process builder on the Message object:
- Create a process builder
- Add Message Object
Update lead’s status Working Contacted:
- Add criteria:
Name: chat started (outbounded)
Set Conditions:
- heymarket__Message__c.heymarket__Lead__c != null (check Message related to Lead)
- heymarket__Message__c.heymarket__Lead__c.Status == Open-Not Contacted (check chat is not started)
- heymarket__Message__c.heymarket__Heymarket_User_Id__c != null (check Message is outbound)
Click on Save Button.
- Add Immediate Action:
Action Type: Update Records
Acton Name: update status to Working Contacted
Record Type: [heymarket__Message__c].Lead Id
Criteria for Updating Records: No Criteria
Set Field values:
- Status = Working - Contacted
Click on Save Button.
Update lead’s status Closed - Not Converted: the negative response
- Add criteria
Name: the negative response
Set Conditions:
- heymarket__Message__c.heymarket__Lead__c != null (check Message related to Lead)
- heymarket__Message__c.heymarket__Heymarket_User_Id__c != null (check Message is inbound)
- heymarket__Message__c.heymarket__Text__c Contains not interested (keyword)
- heymarket__Message__c.heymarket__Text__c Contains I don’t need this. (keyword)
Conditions:
It Depends on your criteria, if you are using only one keyword, select the first option (AND) otherwise select custom
logic. There are two keywords in this example so we have selected custom logic
Logic:
1 AND 2 AND (3 OR 4)
You can add more keywords, all keywords must be in OR logic. Like (3 OR 4) in the example above.
Click on the Save button.
- Add Immediate Action:
Action Type: Update Records
Acton Name: update status to Closed - Not Converted
Record Type: [heymarket__Message__c].Lead Id
Criteria for Updating Records: No Criteria
Set Field values:
- Status = Closed - Not Converted
Update lead’s status Closed - Converted: positive response
- Add criteria
Name: positive response
Set Conditions:
- heymarket__Message__c.heymarket__Lead__c != null (check Message related to Lead)
- heymarket__Message__c.heymarket__Heymarket_User_Id__c != null (check Message is inbound)
- heymarket__Message__c.heymarket__Text__c Contains interested (keyword)
- heymarket__Message__c.heymarket__Text__c Contains I need this. (keyword)
Conditions:
It Depends on your criteria, if you are using only one keyword, select first option (AND) otherwise select custom
logic. There are two keywords in this example so we have selected custom logic
Logic:
1 AND 2 AND (3 OR 4)
You can add more keywords, all keywords must be in OR logic. Like (3 OR 4) in the example above.
Click on the Save button.
- Add Immediate Action:
Action Type: Update Records
Acton Name: update status to Closed - Converted
Record Type: [heymarket__Message__c].Lead Id
In the Criteria for Updating Records: No Criteria
Set Field values:
- Status = Closed -Converted
Click on the Save button.
Please activate your process builder after setting up all criteria.
Note: negative and positive keywords have some common phrases e.g interested and not interested both have ‘interested’ in common. In such situations please set negative criteria first.
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.
Feedback
Please contact us at help@heymarket.com if you run into any issues or queries.