Skip to content

Commit 95f5f51

Browse files
committed
Merge branch 'RCINT-47903' into 'main'
RCINT-47903 Add and update Q&A's for Salesforce integration. See merge request integration/ringcentral-integration-docs!39
2 parents 40fdbfb + 8d2aada commit 95f5f51

1 file changed

Lines changed: 65 additions & 78 deletions

File tree

docs/salesforce/questions.md

Lines changed: 65 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,33 @@ If all browser permissions are allowed and the error persists, recommend checkin
4242

4343
A. Users require access to the RingCentral Visualforce page in their profile. To set up this access, go to the user's profile in Salesforce. Under Visualforce Page Access, check that the page OpenCTIIndex is included.
4444

45+
## Q. Why can't I connect my Salesforce org in the integration console, and why do I see "Your connection is not set up successfully" or a server error?
46+
47+
A. That message means the connection did not complete successfully. In some cases Salesforce returns an error like "sObject type 'ApexClass' is not supported" with code INVALID_TYPE. The integration then cannot finish setup because it expects Salesforce objects related to Apex (Apex is Salesforce's code layer; ApexClass is part of that). Turning on the API add-on does not change your edition: if your org does not include Apex, those objects are not available, and the connection can fail even when general API access works.
48+
49+
This situation often appears on Salesforce Pro Suite–style orgs that are "clicks, not code" and do not include the Apex engine. RingCentral's Salesforce integration is not supported on orgs that cannot expose Apex metadata. Permissions or extra add-ons cannot replace a missing Apex platform.
50+
51+
**What to do:** Confirm your Salesforce edition with your admin. If Apex is not part of your edition, move to an Apex-capable edition (for example Enterprise or another edition Salesforce documents as including Apex), then connect again. For Salesforce's own comparison of capabilities, see [Salesforce Help: compare capabilities](https://help.salesforce.com/s/articleView?id=000385436&type=1) and [Extend, click, automate (PDF)](https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/extend_click_automate.pdf). If you already use a higher edition and still see the error, contact RingCentral support with the exact message, edition, and time of the attempt.
52+
4553
## Q. Why is the Related To field not auto-populated when logging a call?
4654

4755
A. To ensure the "Related To" field is auto-populated when logging a call, follow these steps:
4856

4957
Enable the "Enhanced autofill 'Contact Relationship' when using click to dial" checkbox.
5058
Access the "Autofill Related-To in Call Log for Click to Dial" settings from the RingCentral Admin for Lightning advanced settings in the Admin UI.
5159

60+
## Q. Do Not Call is set on my Person Account (or Contact / Lead), but RingCentral for Salesforce still lets the call go through. Why?
61+
62+
A. In RingCentral for Salesforce, blocking outbound calls based on the Salesforce Do Not Call field only happens when Do Not Call verification is turned on in the RingCentral for Salesforce Admin settings for your org. If that verification is off in the configuration the CTI is actually using, the app does not treat the Salesforce Do Not Call checkbox as a hard block for Person Accounts, Contacts, or Leads, and the call can still be placed.
63+
64+
The CTI keeps a saved copy of the last configuration it received (including Admin options such as Do Not Call verification) in local storage for the user. On startup, if that saved copy is still recent (within about one hour), the app may reuse it and refresh settings in the background in some cases, so the panel may not always wait on the latest values before you dial. Signing out of RingCentral in the CTI clears that saved configuration so the next sign-in loads a fresh copy from Salesforce.
65+
66+
**What to do**
67+
68+
- In the RingCentral for Salesforce Admin UI, open Do Not Call settings, turn Do Not Call verification on, choose Save, then refresh the Admin page and confirm it still shows on.
69+
- Have the user sign out of RingCentral in the CTI (to clear cached integration settings), optionally sign out of Salesforce and back in, reopen the CTI, and test again on a record with Do Not Call checked.
70+
- If calls still connect when they should be blocked, submit a diagnostic report (for example Contact Support / CPR) right after the test so support can confirm the new configuration shows Do Not Call verification enabled. If it still shows as disabled in that fresh data, the issue is treated as configuration or caching, not the Salesforce field alone.
71+
5272
## Q. How to create a custom field and add it to the create call log screen in RingCentral CTI?
5373

5474
A. Salesforce administrators can create a new custom field of various data types (e.g., Date, Text, Text Area, Picklist) and add it to the create call log screen. Users can update this field while on a call with an agent, which will ultimately update the Task object. This feature is beneficial for users who need to update a particular field inside the task during or after a call with an agent. Follow these steps to add a RingCentral custom field or a new custom field to the Call Log Screen:
@@ -79,15 +99,15 @@ A. Below are the RingCentral custom fields
7999

80100
1. Call Identification Fields:
81101

82-
CALL_UNIQUE_ID_c
102+
CALL_UNIQUE_ID__c
83103

84104
- Type: Text
85105
- Length: 255
86106
- External ID: true
87107
- Unique: true
88108
- Purpose: Unique identifier for each call
89109

90-
CALL_UUID_c
110+
CALL_UUID__c
91111

92112
- Type: Text
93113
- Length: 255
@@ -96,25 +116,25 @@ A. Below are the RingCentral custom fields
96116

97117
2. Call Recording Fields:
98118

99-
Call_Recording_c
119+
Call_Recording__c
100120

101121
- Type: Text (Formula)
102122
- Formula: Creates a hyperlink to the call recording
103123
- Purpose: Links to the call recording in RingCentral
104124

105-
Recording_Information_c
125+
Recording_Information__c
106126

107127
- Type: Text
108128
- Purpose: Stores recording metadata
109129

110130
3. Call Details Fields:
111131

112-
call_start_time_c
132+
call_start_time__c
113133

114134
- Type: DateTime
115135
- Purpose: Start time of the call
116136

117-
call_end_time_c
137+
call_end_time__c
118138

119139
- Type: DateTime
120140
- Purpose: End time of the call
@@ -131,126 +151,126 @@ A. Below are the RingCentral custom fields
131151

132152
4. Caller/Callee Information:
133153

134-
caller_name_c
154+
caller_name__c
135155

136156
- Type: Text
137157
- Purpose: Name of the caller
138158

139-
callee_name_c
159+
callee_name__c
140160

141161
- Type: Text
142162
- Purpose: Name of the callee
143163

144-
caller_location_c
164+
caller_location__c
145165

146166
- Type: Text
147167
- Purpose: Location of the caller
148168

149-
callee_location_c
169+
callee_location__c
150170

151171
- Type: Text
152172
- Purpose: Location of the callee
153173

154-
from_number_c
174+
from_number__c
155175

156176
- Type: Text
157177
- Purpose: Caller's phone number
158178

159-
to_number_c
179+
to_number__c
160180

161181
- Type: Text
162182
- Purpose: Callee's phone number
163183

164184
5. Logging Type Field:
165185

166-
RC_Logging_Type_c
186+
RC_Logging_Type__c
167187

168188
- Type: Text
169189
- Length: 255
170190
- Purpose: Indicates the type of logging (e.g., 'sms', 'call')
171191

172192
6. Additional Fields:
173193

174-
external_whoid_c
194+
external_whoid__c
175195

176196
- Type: Text
177197
- Purpose: External Who ID reference
178198

179-
hvs_disposition_c
199+
hvs_disposition__c
180200

181201
- Type: Text
182202
- Purpose: HVS disposition field
183203

184-
key_c
204+
key__c
185205

186206
- Type: Text
187207
- Purpose: Key field for additional data
188208

189209
7. Contact Fields:
190210

191-
SMS_Number_c
211+
SMS_Number__c
192212

193213
- Type: Text
194214
- Purpose: SMS number for the contact
195215

196-
SendSMS_c
216+
SendSMS__c
197217

198218
- Type: Boolean
199219
- Purpose: Flag to indicate if SMS can be sent
200220

201221
8. Admin Settings Fields:
202222

203-
AutoFill_c
223+
AutoFill__c
204224

205225
- Type: Boolean
206226
- Purpose: Auto-fill setting
207227

208-
AutoSave_c
228+
AutoSave__c
209229

210230
- Type: Boolean
211231
- Purpose: Auto-save setting
212232

213-
HvsDispositionField_c
233+
HvsDispositionField__c
214234

215235
- Type: Text
216236
- Purpose: HVS disposition field setting
217237

218-
HvsMode_c
238+
HvsMode__c
219239

220240
- Type: Text
221241
- Purpose: HVS mode setting
222242

223-
IsUnMandatory_c
243+
IsUnMandatory__c
224244

225245
- Type: Boolean
226246
- Purpose: Mandatory field setting
227247

228-
ToVoiceMail_c
248+
ToVoiceMail__c
229249

230250
- Type: Boolean
231251
- Purpose: Voicemail setting
232252

233-
accountRelatedTo_c
253+
accountRelatedTo__c
234254

235255
- Type: Text
236256
- Purpose: Account relation setting
237257

238-
autoSelect_c
258+
autoSelect__c
239259

240260
- Type: Boolean
241261
- Purpose: Auto-select setting
242262

243-
fieldOrder_c
263+
fieldOrder__c
244264

245265
- Type: Number
246266
- Purpose: Field order setting
247267

248-
popOnRinging_c
268+
popOnRinging__c
249269

250270
- Type: Boolean
251271
- Purpose: Pop on ring setting
252272

253-
saveOnRinging_c
273+
saveOnRinging__c
254274

255275
- Type: Boolean
256276
- Purpose: Save on ring setting
@@ -383,7 +403,9 @@ Ringing queue calls are ignored because we can only determine the outcome of the
383403
Missed calls are ignored as presumably some other member will pick up the call and log it.
384404

385405
The above behavior is intended. The call should be logged by another member if it is picked up.
386-
If the call is completely missed, it will likely not be logged. The logic to log this would conflict with the logic to avoid duplications. As a workaround, users should follow the server-side call logging logic, which requires an admin to complete the setup in the integration console (integrations.ringcentral.com) and enable Activity Sync. Our server component handles the logging of calls and will be able to log missed call queue calls correctly, as the service sees the call logs from the standpoint of the entire account.
406+
If the call is completely missed, it may still not appear as an automatically created Task from the CTI, because the same duplicate-avoidance rules apply while the call is ringing or missed on a queue leg from that agent's perspective.
407+
408+
Activity Sync (server-side automatic call logging configured in the RingCentral integration console at integrations.ringcentral.com) logs eligible call types from RingCentral's account-wide call history, but it does **not** override every client-side queue rule in the CTI. Ringing or missed **call queue** legs may still be skipped or treated differently depending on Activity Sync call-type settings and how the session appears for the account. Do not assume that enabling Activity Sync alone guarantees a Task for every missed queue scenario. If a specific interaction must be recorded, use manual logging from call history when available, or contact RingCentral support with time, queue name, and extension after confirming admin settings.
387409

388410
##Q. I have audio issues with RingCentral for Salesforce.
389411
A. Users experiencing audio issues may encounter:
@@ -543,6 +565,16 @@ A. There could be 2 reason why users does not see a specific field or it is empt
543565
- Drag the missing field (Call Recording, Call Duration) onto the layout
544566
- Save
545567

568+
## Q. Why do my Salesforce Task show the same Call Start Time and Call End Time (or zero duration) for calls I place from the RingCentral desktop or mobile app, even though the call really lasted several minutes?
569+
570+
A. The RingCentral for Salesforce integration creates or updates the call Task early in the call (for example while the call is still ringing or before final duration is known). In that phase the integration does not yet have a final call length, so duration and call end time fields may be empty or zero. That can make start and end look the same on the Task if you open it before the call has fully finished and the follow-up update has run.
571+
572+
After the call connects and ends, the integration builds the final duration and end time and sends an update to Salesforce (the same path that keeps disposition, recording, and timing in sync). So the correct end time and duration are normally written in a later step, not on the first screen you might see during ringing.
573+
574+
**Salesforce UI behavior:** If you leave the Task record open in a tab, Salesforce does not always redraw every field the moment the server receives the update. You may need to refresh the page or open the Task again (and if several Salesforce tabs are open, refresh the one showing the Task) to see the updated end time and duration. That display delay is Salesforce UI behavior, not proof that the final values were never saved.
575+
576+
**What to do:** After the call ends, refresh the Task (or re-open it). If start and end are still identical after a refresh and enough time has passed, collect when the screenshot was taken (during the call vs days later), the Task Id or session, and contact RingCentral support with that detail. If backend logs already show the correct duration but the Task still does not show it after refresh, your admin may need Salesforce support to look at Task layout, formulas, or automation that might overwrite fields.
577+
546578
## Q. Why are the calls logged (Tasks are created) to Contact and Lead but not to the Accounts, Cases, and Opportunities?
547579

548580
A. When logging calls involving Contacts or Leads associated with Accounts, Cases, or Opportunities, tasks are only being created for the Contact/Lead but not for the related Account/Case/Opportunity records. This is the intended behavior of the Salesforce integration. However, to log tasks to Accounts, Cases, and Opportunities, follow the solutions mentioned below.
@@ -711,56 +743,11 @@ This is a configuration issue, not a code defect, and can be resolved through pr
711743

712744
## Q. Why don't I see caller ID when there is an incoming call to the call queue in Salesforce CTI?
713745

714-
A. This is expected behavior in the Salesforce CTI integration. Caller ID information is not displayed for call queue calls due to the way the system handles queue-based routing and privacy considerations.
746+
A. Inbound **call queue** calls are handled differently from **direct** inbound calls in the CTI. The UI often emphasizes **queue routing** (for example the **queue name** or how the queue leg is labeled) while the call is still offered to agents. What you see depends on the **telephony session** data for that queue leg, how **matches** are built for queue numbers, and the call state (for example **ringing** versus **connected**). That can make the external caller’s number or name **less obvious** than on a non-queue inbound call, but it is **not** documented in the product as a deliberate “privacy mask” of caller ID in application code.
715747

716-
**Root Cause Analysis:**
717-
718-
**1. Call Queue Call Handling**
719-
When calls come through a call queue, the Salesforce CTI integration treats them differently from direct calls:
720-
721-
- Queue calls are routed through the call queue system before reaching individual agents
722-
- Caller information is masked during the queue routing process for privacy and security
723-
- The system prioritizes queue management over individual caller identification
724-
725-
**2. Privacy and Security Considerations**
726-
The integration is designed to protect caller privacy when calls are routed through queues:
727-
728-
- Caller ID masking prevents unauthorized access to caller information
729-
- Queue-based routing ensures calls are distributed according to business rules
730-
- Agent-level restrictions limit what information is visible during queue calls
731-
732-
**3. Technical Implementation**
733-
The Salesforce CTI integration has specific logic for handling call queue calls:
734-
735-
- Queue calls bypass normal caller ID display mechanisms
736-
- System focuses on queue name and call routing information
737-
- Caller details are intentionally withheld until the call is properly routed
738-
739-
**Solutions and Workarounds:**
740-
741-
**Solution 1: Use Queue Name Tooltip (Available Feature)**
742-
743-
- Hover over the call queue name in the CTI interface
744-
- Wait for the tooltip to appear (short delay)
745-
- View the complete queue information in the tooltip
746-
- This provides queue-specific details about the incoming call
747-
748-
**Solution 2: Check Call Assignment**
749-
750-
- Wait for the call to be assigned to an agent
751-
- Caller information may become available after assignment
752-
- Check the call details once the call is in progress
753-
754-
**Why This Design Exists:**
755-
756-
1. **Queue Management Priority**
757-
2. **Privacy Protection**
758-
3. **Performance Optimization**
759-
760-
**Summary:**
761-
The absence of caller ID for call queue calls is intentional behavior in the Salesforce CTI integration. This design prioritizes queue management, protects caller privacy, and optimizes system performance. While caller ID is not displayed during queue routing, users can access queue information through the hover tooltip feature and may see caller details once the call is assigned to an agent.
748+
After you **answer** the call, open the **active call** or **call log** details and confirm whether the caller number and name appear there. If they never appear after connect, collect **approximate time**, **queue name**, and **RingCentral for Salesforce** version and open a **RingCentral support** case with a **diagnostic (CPR)** so support can compare the session payload to what the CTI displayed.
762749

763-
This is not a bug or configuration issue, but rather the expected behavior for queue-based call handling in the Salesforce CTI system.
750+
**Tips:** If your build shows a **tooltip** on the queue name, use it for extra context while the call is ringing. If behavior changes after an upgrade, check the latest **RingCentral for Salesforce** release notes or support articles for queue display updates.
764751

765752
## Q. Why can't I change my presence in RingCentral for Salesforce CTI? It always stays on 'Invisible' presence, and I cannot switch to Busy/Available.
766753

0 commit comments

Comments
 (0)