Intro to SDK Objects
Currently the SDK defines 6 types of objects:
- Messages: publicly available messages exchanged between any number of users. Examples: blog comments, forum posts.
- PrivateMessages: messages between 2 or more users that cannot be seen by others. Examples: direct messages on Twitter.
- Threads: provide a way to structure the messages. Examples: blog posts, forum threads. Not mandatory (eg. Twitter).
- Users: every other object type must have an author. This is the only object type that has no actions available.
- Status: provides a way to update messages and private messages, like marking them as read. Only used in Send API
- Typing: provides a way of notifying RingCX Digital that an end-user is currently typing a message. Only used in Send API
Messages
We ignore extra fields and you only need to provide fields marked as required. Also, we consider a nulled field, an empty set, and the absence of a field as the same thing. Contents without required fields will be ignored.
Name | Type | Description |
---|---|---|
actions | Array | Possible actions for this content. Example: ["show", "reply"] |
attachments | Array | Required unless body is present. An array of objects containing the url or a base64 content and the associated filename for each attachment**. Example: [{ "url": "https://www.ringcentral.com/brand.png" }] or [{ "content": "iVBORw0KGgoAAAANSUhEUgAAAfUAAAH2CAIAAAD", "filename": "master.jpg" }] |
author | Hash | Required An User object. |
body | String | Required unless attachments are present. Maximum size is 20k characters. |
categories | Array | Example: ["TV", "Internet"] |
created_at | DateTime | Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601) |
context_data | Hash | A hash having the (expected) form: {'fieldname' => 'value'}. The keys must be [a-zA-Z-]. Example: {"country": "Germany", "age": "34", "fruits": ["Apple", "Pear"]} |
display_url | String | A full URI where anyone can see the specific comment. |
format | String | html or text. Default on html if not specified. |
id | String | Required |
in_reply_to_id | String | It has to be a valid content ID if present. |
ip | String | Example: 1.2.3.4 |
language | String | Example en |
structured_content | Hash | Optional. Please keep in mind that an author used for structured content creation must be marked as a "puppet" identity and configured as a controlled identity in RingCX Digital. Example: Structured contents. |
structured_reply | Hash | Optional. Can be used when object is a reply to a structured content with a payload. Example: { payload: "DEFINED_PAYLOAD" } |
thread_id | String | Required If the option messages.unthreaded is set this field will be ignored. |
updated_at | DateTime | Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601) |
** For .mp4 attachments you can disambiguate the type ("audio" or "video") by specifying it in the object. Example: { "url": "https://www.ringcentral.com/song.mp4", "type": "audio" }
When we post a message, we'll send the following attributes:
Name | Type | Description |
---|---|---|
attachments | Array | Example: [{ "url": "https://www.ringcentral.com/brand.png", "type": "image", "filename": "brand.png" }] |
author_id | String | |
body | String | |
content_id | String | The message's internal ID |
created_at | DateTime | Example: 2012-10-01T17:18:40Z |
format | String | Example: "text" |
in_reply_to_id | String | |
retry | Boolean | false if it's the first time we're trying to send this message, true otherwise |
sender_name | String | Example: "Jane from RingCentral" |
structured_content | Hash | Optional. Example: Structured contents. |
thread_id | String | Unless the messages.unthreaded option is set |
updated_at | DateTime | Example: 2012-10-01T17:18:40Z |
PrivateMessages
We ignore extra fields and you only need to provide fields marked as required. Also, we consider a nulled field, an empty set, and the absence of a field as the same thing. Contents without required fields will be ignored.
Please note that private messages don't use threads, but are organized based on in_reply_to_id
.
Name | Type | Description |
---|---|---|
actions | Array | Possible actions for this content. |
attachments | Array | Required unless body is present. An array of objects containing the url or a base64 content and the associated filename for each attachment**. Example: [{ "url": "https://www.ringcentral.com/brand.png" }] or [{ "content": "iVBORw0KGgoAAAANSUhEUgAAAfUAAAH2CAIAAAD", "filename": "master.jpg" }] . |
author | Hash | Required An User object. |
body | String | Required unless attachments are present. Maximum size is 20k characters. |
categories | Array | Example: ["TV", "Internet"] |
created_at | DateTime | Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601) |
context_data | Hash | A hash having the (expected) form: {'fieldname' => 'value'} . The keys must be [a-zA-Z-]. Example: {"country": "Germany", "age": "34", "fruits": ["Apple", "Pear"]} . |
display_url | String | A full URI where anyone can see the specific comment. |
format | String | html or text. Default on html if not specified. |
id | String | Required |
in_reply_to_id | String | It has to be a valid content ID if present. |
ip | String | Example: 1.2.3.4 . |
language | String | Example en . |
recipient | Hash | Required An User object. |
structured_content | Hash | Optional. Please keep in mind that an author used for structured content creation must be marked as a "puppet" identity and configured as a controlled identity in RingCX Digital. Example: Structured contents. |
structured_reply | Hash | Optional. Can be used when object is a reply to a structured content with a payload. Example: { payload: "DEFINED_PAYLOAD" } |
updated_at | DateTime | Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601) |
** For .mp4 attachments you can disambiguate the type ("audio" or "video") by specifying it in the object. Example: { "url": "https://www.ringcentral.com/song.mp4", "type": "audio" }
When we post a private message, we'll send the following attributes:
Name | Type | Description |
---|---|---|
attachments | Array | Example: [{ "url": "https://www.ringcentral.com/brand.png", "type": "image", "filename": "brand.png" }] |
author_id | String | |
body | String | |
content_id | String | The private message's internal ID |
created_at | DateTime | Example: 2012-10-01T17:18:40Z |
format | String | Example: "html" |
in_reply_to_id | String | |
sender_name | String | Example: "Jane from RingCentral" |
recipient_id | String | |
retry | Boolean | Set to false if it's the first time we're trying to send this message, true otherwise |
structured_content | Hash | Optional. Example: Structured contents. |
updated_at | DateTime | Example: 2012-10-01T17:18:40Z |
Threads
We ignore extra fields and you only need to provide fields marked as required. Also, we consider a nulled field, an empty set, and the absence of a field as the same thing. Contents without required fields will be ignored.
Name | Type | Description |
---|---|---|
actions | Array | Possible actions for this content. Example: ["show", "reply"] . |
author | Hash | Required unless no_content option activated. |
body | String | Required unless no_content option activated. Maximum size is 20k characters. |
categories | Array | Example: ["TV", "Internet"] |
created_at | DateTime | Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601) |
context_data | Hash | A hash having the (expected) form: {'fieldname' => 'value'} . The keys must be [a-zA-Z-]. Example: {"country": "Germany", "age": "34", "fruits": ["Apple", "Pear"]} . |
display_url | String | A full URI where anyone can see the specific comment. |
format | String | html or text. Default on html if not specified. |
id | String | Required |
ip | String | Example: 1.2.3.4 . |
title | String | |
updated_at | DateTime | Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601) |
When we post a thread, we'll send the following attributes:
Name | Type | Description |
---|---|---|
attachments | Array | Example: [{ "url": "https://www.ringcentral.com/brand.png", "type": "image", "filename": "brand.png" }] |
author_id | String | |
body | String | |
content_id | String | The thread's internal ID |
created_at | DateTime | Example: 2012-10-01T17:18:40Z |
format | String | Example: "text" |
retry | Boolean | Set to false if it's the first time we're trying to send this message, true otherwise |
sender_name | String | Example: "Jane from RingCentral" |
title | String |
Users
We ignore extra fields and you only need to provide fields marked as required. Also, we consider a nulled field, an empty set, and the absence of a field as the same thing. Contents without required fields will be ignored.
Name | Type | Description |
---|---|---|
id | String | Required, ID of the author on the third party system (yours). User with the same ID will be considered to be the same identity in RingCX Digital. |
firstname | String | Firstname of the user if you can provide it. |
lastname | String | Lastname of the user if you can provide it. |
screenname | String | Required Name we display for this user. |
avatar_url | String | |
String | Confirmed email of the user, can be used to send email PM if no PM mechanism is supported. | |
home_phone | String | Home phone number. |
mobile_phone | String | Mobile/cellular phone number. |
created_at | DateTime | Required Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601). |
updated_at | DateTime | Required Supported formats: 2012-02-10 , 2012-10-01T17:18:40Z (ISO 8601). |
puppetizable | Boolean | Whether RingCX Digital can use this user as identity to create message. False by default. |
gender | String | Accepted values are "man " or "woman ". |
context_data | Hash | Data specific to the User, that will be stored in RingCX Digital at the identity and identitygroup level. Expect a hash having the (expected) form: {'field_name' => 'value'} . The keys must be [a-zA-Z-]. Example: {"country": "Germany", "age": "34", "fruits": ["Apple", "Pear"]} . |
Status
We ignore extra fields and you only need to provide fields marked as required. Used only in Send API
Name | Type | Description |
---|---|---|
id | String | Required, ID of the message or private message on the third party system (yours). This is the ID you return on message.create and private_message.create actions |
Typing
We ignore extra fields and you only need to provide fields marked as required. Can only be used if the messaging.typing_indicator
option is enabled (see Options). Used only in Send API
Name | Type | Description |
---|---|---|
thread_id | String | Required if in_reply_to_id is not provided, ID of the thread on the third party system (yours). Will be used in priority over in_reply_to_id if both are provided. |
in_reply_to_id | String | Required if thread_id is not provided, ID of the message or private message on the third party system (yours). This is the ID you return on message.create and private_message.create actions |
preview | String | Required for typing.start event only, preview of the message being typed by the end user |