Conversations for Salesforce
IMPORTANT
For more information about the product utilization, contact your account manager or the Sales team.
Conversations for Salesforce is an omnichannel agent interface that is embedded directly within Salesforce. With this, you have a single connected system that provides personalized customer support and proactive customer engagement, along with scalability, flexibility, and faster customer issue resolution.
Enhance your customer service with an added level of excellence, equip agents with enhanced knowledge, and deliver exceptional customer engagements. Conversations for Salesforce merges the powerful features of our Cloud Contact Center Solution with the industry-leading CRM platform.
Infobip seamlessly integrates its agent interface into Salesforce, facilitating comprehensive integration of communication channels with any component such as contacts, accounts, opportunities, leads, or cases.
Functional description
Channel matrix
The table below shows which communication channels support Conversations for CRM in Salesforce, depending on whether the conversations are:
- Outbound (initiated over the channels from within the CRM)
- Inbound (initiated by the customer)
Channel | Outbound | Inbound |
---|---|---|
SMS | ✓ | ✓ |
Viber | ✓ | ✓ |
LINE | ✓ | ✓ |
✓ | ✓ | |
RCS | N/A | ✓ |
Live Chat | N/A | ✓ |
Live Chat RTC (Voice + Video) | N/A | N/A |
Messenger | N/A | ✓ |
Facebook Posts | N/A | N/A |
Google Business Messages | N/A | ✓ |
Telegram | N/A | ✓ |
Instagram DM | N/A | ✓ |
Instagram Posts | N/A | N/A |
KakaoTalk | N/A | ✓ |
|
N/A | N/A |
Video | N/A | N/A |
Voice | N/A | N/A |
Channel capability matrix
The table below shows which information can be transmitted over the available communication channels:
Channel | Text | Image | Video | Audio | Document | Location | Template |
---|---|---|---|---|---|---|---|
SMS |
✓ |
|
|||||
|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Live Chat |
✓ | ✓ | ✓ | ✓ | ✓ |
|
|
Messenger |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
Viber |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
LINE |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
Google Business Messages |
✓ |
|
|
|
|
|
|
Apple Business Chat |
✓ | ✓ |
|
✓ | ✓ | ✓ |
|
Telegram | ✓ | ✓ | ✓ | ✓ | ✓ | ||
KakaoTalk | ✓ | ||||||
Instagram DM |
✓ | ✓ |
|
|
|
|
Supervisor guide
To use Conversations for Salesforce, you need the following:
- Infobip self-service account
- Salesforce organization - Essentials edition or above
- Sales or Service Cloud
- Standard or platform licenses
- Infobip Conversations Named User Licenses
If you do not have a Salesforce organization, you can create a test account.
In the following section, you can find the mandatory steps for the Conversations for Salesforce implementation.
Install Conversations for Salesforce
The get the managed package for Salesforce, contact your account manager or the Sales team.
To be able to install it, you need to ensure you are installing inside the correct Salesforce organization. Browser cache might direct you to one of many different organizations you have historically authenticated with, so make sure to proceed with care.
Each Salesforce organization is defined with its URL, for example: https://test-dev-ed.develop.my.salesforce.com/
When installing the package version, the simplest way to ensure you are installing in the right organization is to:
- Log into your Salesforce organization
- Replace the suffix of the URL with the managed package URL
For example, you can remove: https://test-dev-ed.develop.lightning.force.com/lightning/o/Contact/list?filterName=Recent), and replace it with: https://test-dev-ed.develop.lightning.force.com/packaging/installPackage.apexp?p0=04t09000000aYMk&isdtp=p1
Once you have initiated the installation, you will be presented with the following screen:
- Enter the password.
- Select the installation for All Users.
- Click the acknowledgement link (non-authorized managed package).
NOTE
The Non-authorized package warning is shown because the package has yet to pass the Salesforce security review/be listed on their app exchange.
Set up OAuth policies
You first need to grant the relevant permissions for the managed package to integrate with your connected app.
After the installation is successful, go to Setup → Apps → Connected Apps → Manage Connected Apps.
Click the InfobipAccountMapping. Click Edit Policies.
Change (or confirm) the following settings and adjust as necessary in the Connected App Edit:
- Set Permitted users to Admin approved users are pre-authorized.
- Save, go back to the Manage Connected Apps page, and do the same for the InfobipAgentUI app.
- Click OK in the alert that appears.
- Set IP Relaxation to Enforce IP restrictions.
- Set Refresh Token Policy to Refresh token is valid until revoked.
Click Save. You should then be returned to the ClientSuccessAccountView configuration page. Scroll down to the Profiles section and click Manage Profiles.
Click into each of the connected apps (under Master Label) and select Manage Profiles. Add the profiles you want to have access to the relevant UIs. Click Save.
NOTE
Profiles are a construct in Salesforce that allow you to create specific roles/interfaces/experiences specific to user needs.
A Salesforce administrator may want to restrict which users can use the product based on these permissions.
IMPORTANT
If your organization was created after the Summer '23 Salesforce release, you will also need to ensure that it has the correct OAuth permissions.
Navigate to Setup → Identity → OAuth and Open ID Connect Settings and ensure the Allow OAuth Username-Password Flows setting is enabled.
Without this, Infobip will not be able to authenticate via the connected app (Conversations for Salesforce).
Create permission sets
In this section, you can learn how to create permission sets for agents and admins.
Cloning a permission set
It is not possible to add a connected app in a Permission Set added to a managed package, so it is necessary to clone Infobip Embedded Conversation Admin and Infobip Embedded Conversation Agent permission set and manually do some modifications.
To clone a permission set, do the following:
- Click Setup.
- Search Permission Sets in the quick find.
- Find and create clones of the permission sets as displayed in the image below.
Edit a permission set
Now you need to add the Conversations for Salesforce app to the list of the Connected Apps for our permission sets:
- Infobip Embedded Conversation Agent permission set - access to Infobip Conversation App with widget
- Infobip Embedded Conversation Admin permission set - agent access and permissions to add/remove agents and link Salesforce to Infobip
To add the connected app to the permission set, follow these steps:
- Click Setup.
- Search for Permission Sets.
- Click Edit.
- Click Assigned Connected Apps.
- Click Edit and add INFOBIPConversations CanvasApp (both) and Auth UI (admin only).
Add permission set for administrators/agents
To link your Infobip account to your Salesforce organization, you will need access to the Authentication Page inside the Conversations for Salesforce app.
Follow these steps to add the permission sets to the relevant users within your Salesforce organization:
- From Setup, enter Users in the Quick Find box, then select Users.
- Select your admin user(s)/agents.
- Click Edit Assignments in the Permission Set Assignments related list.
- To assign a permission set, select it under Available Permission Sets and click Add.
- Click Save.
Link Salesforce to Infobip
Create an Infobip account mapping object
To be able to use Conversations, you will need to create the necessary authentication for bi-directional communication between your Salesforce organization and the relevant Infobip account.
To create the Infobip account mapping, do the following:
- From Salesforce Lightning, click App Launcher → Conversations for Salesforce (top left menu).
- Click Infobip Account Mapping → New.
- Create a new mapping object (Infobip Production):
- Name it.
- Leave the credential ID blank.
- Ensure to include the Infobip authorization key.
Add authentication details to account mapping
Now that you have the object to create your authentication, you will need to fill in the following credentials:
Client ID:
- Type: variable
- String: 3MVG9SOw8KERNN0_HBJ5TAXaC7NRyTbrIHUh8bgMxyqCG3c0XUDTlpYbkUpjWgrZkDE1LP4Yzjkhd.Sm8P9bC
Client Secret:
- Type: variable
- String: 1157DCF13EB0FACB94A7E4F5E550374301040CF27698E5F60CB6FAAB2C3AD8ED
CRM Configuration ID:
- Type: Unique
- Location: in the URL of your account mapping object (as highlighted)
Organization ID:
- Type: Unique
- Location: Setup → Company information → Salesforce.com → Organization ID
- Type: Unique
- Location: https://{your org name}.my.salesforce.com/services/apexrest/INFB_EmbConv/
- The package namespace can be found in Setup → Installed Packages
NOTE
Make sure to enter this exactly as described above.
If you are using a developer edition, you will need to remove the lightning.force reference from the URL.
Example:
- the URL you see: https://{yourDomainName}-dev-ed.develop.lightning.force.com/lightning/r/EmbConv_INFB__CRM_Configuration__c/aCXr9pAAD/view
- including the lightning reference (incorrect): https://(yourDomainName}-dev-ed.develop.lightning.force.my.salesforce.com/services/apexrest/{installed package namespace}/
- removed dev reference (correct): https://{yourDomainName}-dev-ed.develop.my.salesforce.com/services/apexrest/{installed package namespace}/
Infobip API Key & Base URL:
- Type: Unique
- Location: Login to your Infobip Portal (using the credentials for the account you are linking to Salesforce) → visit this page for more info.
- Make sure to add https:// to your Infobip Base URL
Username:
- Type: Unique
- Location: the Salesforce username (email address) you will use to create the authentication between the organization and Infobip
NOTE
For production use, it is recommended to use an API user whose password is set to Never expire.
If the password is ever changed or the refresh token is ever reset, it will break the configuration and therefore the integration is needed.
Password:
- Type: Unique
- Location: Salesforce password+security token (no spaces)
NOTE
The security token is generated and sent to your dedicated email address for the Salesforce API/System Administrator user.
Once all fields have been populated, click Save. You should now see that the Infobip Account Mapping object has the credential ID automatically populated.
Automatically associate inbound conversations
When you use Conversations for Salesforce combined with Answers (or an external bot), you can identify the customer through their ID or inputs using this Conversation automation segment by combining API requests and verification of the customer.
Update the customer identity in Answers or your external chatbot
You need to utilize the CRM's API using the chatbot's API capabilities to update the customer identity automatically. For Answers, this is the Call API element.
Once you have identified the customer using their input, phone number, or both, you can use the Conversations Metadata API to update the customer objectId and objectType.
{
"objectId"
:
"contactId"
,
"objectType"
:
"Contact"
}
Create agents
Assign the permission set
The correct level of permissions needs to be granted to agents and admins in Salesforce before they can use the managed package products.
To add the permission sets to the relevant users within your Salesforce organization, follow these steps:
1. From Setup, enter Users in the Quick Find box, then select Users.
2. Select a user.
3. In the Permission Set Assignments related list, click Edit Assignments.
4. To assign a permission set, select it under Available Permission Sets and click Add.
5. Click Save.
Create agent associations
For agents to use the product, you need to link the agent entity in Infobip, to the user entity inside Salesforce. By doing this, you will ensure that activity creation, record association, etc., is associated with the correct person.
- From Salesforce Lightning, click App Launcher → Conversations for Salesforce (top left menu)
- Along the top tab menu, click Infobip Agent Associations:
- Name:
- Type: Unique
- Location: Custom string - recommend using the name of the agent
- Agent ID:
- Type: Unique
- Location: Infobip Portal → Conversations → Settings → General Setup → Agents → pick your agent → See browser URL
- Name:
NOTE
You can also get a list of all agent IDs directly via the Conversations API using applications such as Postman.
- User:
- Type: Unique
- Location: drop-down, select the user your want to tie to this agent
- CRM Configuration:
- Type: Unique
- Location: drop-down, you should only have one association
Add more agents
To add more agents as Salesforce users, navigate to Setup → Users → click the New User button and add the basic details.
Assign the following to your user:
- User Licence → select Salesforce
- Profile → select Standard User
Click Save.
After that, go to your agent profile email inbox and:
- Verify the account.
- Set up the password.
Return to Salesforce and make sure you are logged in as Admin. Click on the newly created agent profile and click on Permission Set Assignments → add the Clone permissions.
Navigate to Conversations for Salesforce → Infobip Agent Associations → create new association for your agent user. After that, you must first log into Salesforce with your agent profile and then log into the Conversations widget as an Infobip agent.
Customize agent interface
First, add the following objects to your Lightning app (Conversations for Salesforce):
- Account
- Lead
- Contact
Add Click-to-connect
To initiate an outbound conversation, you will need to add the Click-to-connect widget to the records you will be connecting from, e.g., account, lead, contact, etc. The following steps need to be completed:
1. Visit the Lightning app you want to add the component to (i.e., service console, etc.).
2. Visit the record you want to Click-to-connect from.
3. Settings → Edit Page.
4. Drag Click-to-connect from the Custom - Managed section of components – and place it anywhere on the page layout.
5. Drop it above the Activity widget.
6. Click Save.
Add agent UI to the utility bar (recommended)
It is recommended to add the agent UI to the utility bar of your Lightning app to offer users the best experience:
- Setup → App Manager → your selected app → Edit → Utility items → add utility item → Visualforce:
- Label: Conversations for Salesforce
- Panel width (custom): 700px
- Panel height (custom): 950px
- Start automatically: True
- Show label: False
- Visualforce page name: InfobipAgentUI
- Height in pixels: 870px
- Click Save
Add agent UI to object
Optionally, you can add the agent UI to the object your agent is working from:
1. Visit the Lightning app you want to add the component to (i.e., service console, etc.).
2. Visit the record you want to host the agent UI.
3. Settings → Edit Page.
4. Drag Visualforce from the standard section of components – this can be placed anywhere on the page layout.
5. You will now need to configure which Visualforce page you want to add.
6. Select InfobipAgentUI from the Visualforce Page Name.
7. Click Save.
Now, do not close the modal.
8. Click Assign to Apps, Record Types, and Profiles.
9. Select Conversations for Salesforce → Record Type (Master) → Profile (System Administrator).
10. Click Next → Review Assignments.
11. Save.
Now, log in as an Infobip agent using the utility bar widget or Object Agent UI widget. Click on an object (Account, Lead, Contact).
To find your username on the Infobip portal, go to Conversations Settings → General Setup → Agents.
Conversation assignment
You can use most of the underlying functionality within Conversations, including workflows, surveys, and routing rules when utilizing Conversations for Salesforce. For more information, see the Conversations Supervisor guide.
Agents can only view their assigned conversations through the embedded interface. They are not able to search across conversations in the account and select which ones to work on.
Considering this, supervisors are strongly advised to configure automatic assignment for all queues using Conversations for CRM to make sure that customers are routed to available agents as quickly as possible.
Customize conversation relationships
When using Conversations for Salesforce, you can configure relationships to be transported to any object in the system and relate leads, accounts, and contacts to your conversations right out of the box.
NOTE
The records must have the Allow Activities option enabled.
To customize the conversation relationship, do the following:
1. Create a new lookup field for your target record on the Conversation record. The lookup field must have the same name as the API name of the record.
2. Add this field to the page layout of the Conversation record. After creating the lookup field, add this record to the Infobip Conversation Mapping within Custom Metadata Types. To do this, click Manage Records.
3. Find your target record in the list and save it.
4. Add the Click-to-connect component to the page layout of your target record.
Agent guide
In this section, learn more about the different features and functionalities of Conversations for CRM through the agent experience using Salesforce.
Log into the system
Logging into the system is the first step to start with the Conversations for CRM experience.
You can log into the system using your standard Infobip username and password.
Visit the Supervisor guide to find out how to make this available for specific users. Once configured, the appropriate interface will be displayed on the Salesforce right-hand navigation.
NOTE
Agents will be logged out automatically if they are inactive for 60 minutes.
Set status
Across all CRMs, agents can set their status to reflect their availability for handling conversations. Only when your status is set to Available and you have enough capacity, you receive automatically distributed Conversations.
If a Conversation is assigned external to automatic assignment (i.e., transfer or supervisor change) it is presented to the agents irrespective of their status. This one-directional update allows the Infobip routing algorithm to be updated directly from within the embedded agent interface.
If the status is set from the Infobip application (portal.infobip.com), it is not updated in the agent interface automatically, however, it will impact the routing of interactions.
Set conversation status
Across all CRMs, agents can manage the status of a conversation.
To update the status of a conversation, the three dots on the rightmost side of the control panel.
Conversations in an Open or Waiting status remain in the agent's window. Solved or Closed conversations are removed from the agent UI to allow the agent to concentrate on more relevant activity.
Message types
Inbound messages
You will see an icon indicating that a conversation has one or more unread messages whenever you receive a new inbound message.
Outbound messages
Every outbound conversation will have a header stating that it is outbound.
Depending on the channel, you are also able to send attachments or locations to customers.
Attachments
Location
Receive an inbound conversation
An inbound conversation that has been assigned to an agent appears in their list of conversations. Newly assigned conversations are shown in pink, while the unread messages will display an unread message icon to prompt the agent to respond to the new messages.
The conversation topics will display the following:
- Direction (i.e., if the customer initiated the conversation, this would be considered inbound)
- Customer identifier
- Original conversation channel
When an inbound conversation is received, the customer identifier can be their:
- Name
- Phone number
- ID (the customer ID presentation depends on whether the customer was identified before they were assigned to an agent)
If you are using standalone Conversations for Dynamics, the customer identity for inbound conversations will always be unknown - the customer will be presented as the customer destination, i.e., the address used to send/receive messages.
For SMS, WhatsApp, KakaoTalk and LINE, this will be their phone number, and for other channels, this will be a unique customer ID for a specific channel.
Start an outbound conversation
Click-to-connect, a core feature of Conversations for Salesforce, allows agents to initiate an outbound conversation.
You can Click-to-connect from any record in the system. Lead, account, and contact are supported, however, this can be extended by a system administrator through configuration. For more information, see the Customize conversation relationships section.
The administrator needs to add the Click-to-connect component to the agent's record page layout so that it can search the record for phone numbers.
You can initiate the New Conversation dialog by clicking the target phone number.
Select the sender/channel you would like to contact from the list that is dynamically populated from your linked Infobip account.
Once you select the sender, write your first message and create the conversation.
Transfer a conversation
Transfers are required if the customer needs assistance outside the skill set of the currently assigned agent.
To transfer a conversation, do the following:
- Click the Transfer button in the upper right corner.
- Choose the agent you want to transfer the conversation to in the dialog box.
The queue is a mandatory field when transferring a conversation. The queue can remain the same if you are transferring the conversation to an agent with a different skill set, however, a new agent must be selected.
If you are transferring the conversation to a different queue, the selection of a specific agent is optional. You can select from a list of agents assigned to that queue, or you can transfer the conversation to the selected queue where the auto-assignment algorithm selects the next agent.
Log a conversation
All conversations are automatically logged inside Salesforce. The following information is automatically logged on the Conversation record:
- Currently assigned agent
- Related record
- Channel
- Topic
- Start time (delivered to agent)
- End time (closed by agent)
- Duration
- Link to the Conversation transcript
In Conversations for Salesforce, agents can log the following additional information to the Conversation record:
- Reviewing previous conversations
- Providing context when transferring to another team
The Conversation outcome field enables the agent to record a high-level summary of the conversation to use in reporting.
The agent can automatically link a conversation to another record in the CRM by updating the relationship when logging a conversation. For more information on how to update this, see Link Conversations to CRM objects.
Activity logging
The activity is logged inside Salesforce as a Conversation object which can be customized to offer greater context such as:
- Conversation outcome picklist(s)
- Conversation notes
- Attachments
Alternatively, a Conversation Note object is related to the Conversation which allows this information to be saved per agent.
Link Conversations to CRM objects
The Conversation record logged inside Salesforce will not be related to another account or contact record in the CRM when the identity of the customer is unknown.
The agent needs to update the Regarding field in the Conversations record. For more information see the Log a conversation section.
Once the agent updates the Regarding field, the Conversation topic will be updated as well. The Take me there screen-pop button will take you directly to this newly related record. For more information see the Screen-pop section.
To learn how to automatically identify customers in Salesforce, see Automatically associate inbound conversations.
Add attachments to a Conversation
Adding attachments to the messages is available through all communication channels, except SMS.
To add an attachment to a message, select the Upload an attachment icon and choose the file format which you want to send.
Screen-pop
Screen-pop inside Salesforce allows agents to quickly and easily navigate around the CRM. With this, the agents have access to the relevant information when handling multiple conversations at the same time.
Agents can choose between two screen-pop options to help them navigate the CRM:
- Open conversation - navigate to a conversation's log inside the CRM to, e.g., write notes or relate the conversation to another object.
- Take me there - navigate to the conversation's related record to, e.g., check specific details to resolve a customer inquiry.
For more information, see the Log a conversation and Link Conversations to CRM objects.
Note: When using Screen-pop, the agent will be navigated away from the current record.
Omnichannel conversations
You may have various communication channels based on your account settings.
To change the channel you are currently using, select the wanted one from the drop-down menu in the From field.
If you receive an inbound conversation from an inbound-only channel, you will only be able to communicate over that channel. However, if the customer provides an eligible phone number, you can add it to the conversation using the Add customer phone number option, which will then allow you to select a different communication channel.
For example, if a customer engages over Live Chat and requests that you provide them with certain information over a more permanent channel, or they want to leave their PC and continue the conversation via their mobile phone, you can switch to the wanted channel.
Widget placement
Conversations for Salesforce is available in Salesforce lightning. It can work inside standard or console lightning apps (out-of-the-box or custom apps).
The following options are available:
- Inside the Utility bar (recommended) - allows to determine the width and height of the embedded UI. This also allows agents to have the UI in/out of focus depending on how much of the CRM real estate they need at any given time.
- On the page layout of a specific object - page layout allows to determine the height and placement of the embedded UI.
Troubleshooting and limitations
Troubleshooting
In this section you can find useful troubleshooting steps if the following issues occur:
Inbound messages are not automatically delivered to the agent
If the agent is not receiving inbound messages, check if the Webhook is configured correctly:
- The Webhook for the inbound messages is configured for the account
- The Webhook is configured to send inbound messages
- The Webhook is the correct URL
- The CHID is configured to use the RBI_Integration feature flag
Use this Postman collection to validate per account.
Objects are not created
If your objects are not being created, check the following:
- The link between the accounts is configured as per the implementation guide
- The user who created the link has not recently changed their password
- Re-create the link using the implementation guide
Click-to-connect is not creating Conversations
Make sure the phone number inside the field you are clicking from excludes non-permitted characters. Numbers must be in the E.164 format and must exclude the + or representative 00.
Agents are transferred to off-platform agents
When transferring all agents, the selection to transfer is available inside the account. If that agent is not configured to use Conversations for CRM, the Conversations object will not be reassigned to this user.
Limitations
The following limitations are present when using Conversations for Salesforce:
Voice
Voice is not a supported channel yet. Conversations will not be routed to the advisor.
Email is not a supported channel yet. Conversations will not be routed to the advisor.
Social media posts
Social media posts are not a supported channel yet. If Social Media posts are delivered to the advisor, they are directed to use the portal. No activity logging, etc., is logged in the CRM.