News & Announcements User Community Developer Community

Welcome to the RingCentral Community

Please note the community is currently under maintenance and is read-only.

Search
Make sure to review our Terms of Use and Community Guidelines.
  Please note the community is currently under maintenance and is read-only.
Home » Developers
Custom Salesforce status field to update RC embeddable status
Tags: integrations, webhooks, subscription
Jun 13, 2019 at 10:55am   •   2 replies  •  0 likes
Thomas Carlson

Howdy,

I have a custom Salesforce object 'User Setting' and I would like to add a custom field 'User Status'.

Ideally, updating the User Status would update the RC embeddable widget's status field as well as the desktop soft-phone status. We would like our system to look through the RC HUD and automatically route calls to a user based on their presence status.

Is it possible to accomplish this, to have the RC embeddable listening for changes on a custom Salesforce field ? Maybe by using RC event data subscriptions to Salesforce's streaming API, or webhooks that are listening for updates/changes to the custom User Status Salesforce field?

2 Answers
answered on Jun 18, 2019 at 7:41am  

Hey @Phong Vu

Thank you for the time, energy, and response! When you say a 'server-side' app, are you referring to the kind of application that I create in RingCentral Dev Portal? The Server/no ui option?

Would it be possible to change user presence status in the embeddable widget and have a custom 'User HUD Status' Salesforce field update accordingly? I'm new to Salesforce but I think that using the Streaming API to listen for user presence change events and then updating the custom SF field would be plausible. But where would I put the code telling Salesforce to listen for User Status Presence Changes? Where do I put the code that tells the RingCentral embeddble widget to emit User Status change events? Is the embeddable widget extensible to that degree? How does it get authorization to change a Users Salesforce Data?


Maybe you could point me in the right direction in regards to redirect url's; and why I'm unable to get a response when using cURL to submit requests.

I have thus far been unable to get a request to respond with anything other than an error. I've been trying to test my requests using cURL but I can't get an authorization token. The request I'm using (but with the account/password/clientid/clientsecret filled in appropriately) is from this medium article on using cURL to access the RC platform API.

Windows 10 Command Prompt uses the ^ for multiple lines so I use those instead of what is listed in the article "/".

curl -i -X POST "https://platform.devtest.ringcentral.com/restapi/oauth/token" ^
-H "Accept: application/json" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-u "<clientId>:<clientSecret>" ^
-d "username=<Account>&password=<password>&extension=&grant_type=password"


In Salesforce I have set up a Connected Application with two allowed callback URL's

https://ringcentral.github.io/ringcentral-embeddable/redirect.html

https://apps.ringcentral.com/restapi/oauth/authorize?response_type=code&client_id=myClientID&redirect_uri=https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/presence&prompt=login_consent

But in response I get,

Date: Tue, 18 Jun 2019 15:21:44 GMT
Content-Type: application/json;charset=utf-8
Content-Length: 199
Connection: keep-alive
X-Application-Context: application:8080
Content-Language: en
WWW-Authenticate: Bearer realm="RingCentral REST API", error="invalid_grant", error_description="Invalid resource owner credentials"
RCRequestId: c7c80804-91dc-11e9-943c-005056bb3a93
Pragma: no-cache
Cache-Control: no-store
AceRoutingKey: sjc11-c01-ace11.d4949dec-85f2-11e9-9962-005056bb6e9b
X-HLB-Server: sjc11-c01-hlb11
X-HLB-Connection: 320459994
X-HLB-RequestId: 507ff7b53a64258d5bbebf4b6364827a
X-HLB-Upstream-Server: 10.28.23.0:8080
X-HLB-Upstream-Status: 400

{
  "error" : "invalid_grant",
  "errors" : [ {
    "errorCode" : "OAU-140",
    "message" : "Invalid resource owner credentials"
  } ],
  "error_description" : "Invalid resource owner credentials"
}

Maybe I have an error in my connected application callback URL? Maybe I'm sending my request to the wrong place? I am using my live RC credentials in the sandbox RC Server/no Ui application, could this be the issue? I am using my live credentials because the password field in the Sandbox is 'inactive'; can I set the password for my sandbox account?

Thank you!


 0
answered on Jun 14, 2019 at 10:29am  

Hi Thomas,

You can implement a server-side app to listen for user presence status changes at the account level then update user settings in Salesforce accordingly.

Please refer to these documentations for more info:

1. Webhook notifications quick start (change the event type with presence)

2. Presence information explained

Hope this helps!


 0



A new Community is coming to RingCentral!

Posts are currently read-only as we transition into our new platform.

We thank you for your patience
during this downtime.

Try Workflow Builder

Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!

Try RingCentral Workflow Builder

PRODUCTS
RingEX
Message
Video
Phone
OPEN ECOSYSTEM
Developer Platform
APIs
Integrated Apps
App Gallery
Developer support
Games and rewards

RESOURCES
Resource center
Blog
Product Releases
Accessibility
QUICK LINKS
App Download
RingCentral App login
Admin Portal Login
Contact Sales
© 1999-2024 RingCentral, Inc. All rights reserved. Legal Privacy Notice Site Map Contact Us