Posting to Zoho Cliq
Table of Contents
Description
The examples listed below illustrate the different types of content that can be posted to chat, channel, and bot in Zoho Cliq. This section also includes an example to change the username and profile picture of the message sender.
Text Message
The following script posts the message Hello in the chat window of the intended recipient.
response = zoho.cliq.postToChat("2230642502700000000","Hello");
(or)
response = zoho.cliq.postToChat("2230642502700000000",{"text":"Hello"});
where,
response
"2230642502700000000"
"text"
"Hello"
The response of the above script is as follows:
The following script displays the message, Hello in the channel - DelugeChannel in bold format.
response = zoho.cliq.postToChannel("DelugeChannel","*Hello*");
The following table displays the syntax for different formats.
Format | Example |
Bold | response = zoho.cliq.postToChannel("DelugeChannel","*Hello*"); |
Italics | response = zoho.cliq.postToChannel("DelugeChannel","_Hello_"); |
Strike | response = zoho.cliq.postToChannel("DelugeChannel","~Hello~"); |
Quote | response = zoho.cliq.postToChannel("DelugeChannel","`Hello`"); |
Blockquote | response = zoho.cliq.postToChannel("DelugeChannel","!Hello"); |
Large Heading | response = zoho.cliq.postToChannel("DelugeChannel","#Hello"); |
Small Heading | response = zoho.cliq.postToChannel("DelugeChannel","###Hello"); |
Insert link | response = zoho.cliq.postToChannel("DelugeChannel","refer [this link](https://www.zoho.com/deluge/help/)"); |
Horizontal line | response = zoho.cliq.postToChannel("DelugeChannel","---"); |
Send text inside a box | response = zoho.cliq.postToChannel("DelugeChannel","```Hello```"); |
where,
response
"DelugeChannel"
"Hello"
Attachments
The various types of attachment content that can be posted are:
The following script posts a message with a table to the chat window of the intended recipient.
table_data = { "text":"New interns will be joining these teams from July", "slides": [{ "type":"table", "title":"Details", "data":{ "headers":["Name","Team"], "rows":[{"Name":"John","Team":"Marketing"}, {"Name":"Charlie","Team":"Sales"} ] } }] }; response = zoho.cliq.postToChat("2230642502700000000",table_data);
Let us now break down the above example. To define a table, it requires you to create a nested collection.
table_data:
It is a KEY-VALUE variable which holds the content (a text and a table) to be posted. The below table, lists the keys and its associated values.
Key Data Type Value text
TEXT
holds the message to be posted. This field is mandatory.
LIST of KEY-VALUE
holds the attachment content
Attaching contents of various types can be done using the slides key.
Key Data Type Value type
TEXT
informs the type of data to be attached. In our case, the type of data is table.
title
TEXT
specifies the title of the data to be attached. This field is optional.
KEY-VALUE
holds the content of the attachment table
Key Data Type Value headers
LIST
contains the headers of the table
rows
KEY-VALUE
specifies the data to be added in the attachment table. The elements of the headers field are the keys for every KEY-VALUE element of the rows field.
For instance, in our example, Name and Team are the elements of the headers field which acts as the keys for rows.The response of the above script is as follows:
The following script posts a message with the text Image and an image to the channel - DelugeChannel.
image_data = { "text":"Image", "slides": [{ "type":"images", "data":[("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSz4pZuwLofV4goZVT0e2R3K5bElhWk3oMDuUgP3XT9p9d4_Tkv4g")] }] }; response = zoho.cliq.postToChannel("DelugeChannel",image_data);
The nested collection defined for attaching an image is quite similar to that of attaching a table, except for the value of the slides key.
slides
Key Data Type Value type
TEXT
type of data, in our case is images.
data
LIST
specifies the address of the image to be attached
The response of the above script is as follows:
-
The following example posts a message with a list of items in the channel - DelugeChannel.
list_data = { "text":"New interns will be joining from July", "slides": [{ "type":"list", "title":"Names", "data":["John","Peter","Kate","James","Hanna"] }] }; response = zoho.cliq.postToChannelAsAdmin("DelugeChannel",list_data);
Here, the slides key is altered as follows.
slides
Key Data Type Value type
TEXT
type of data, in our case is list.
title
TEXT
is the title of the attachment image. This field is optional.
data
LIST
holds the elements of the list to be attached
The response of the above script is as follows:
The following example posts a message with labelled content in the Bot - Bookaholics.
label_data = { "text":"Books", "slides": [{ "type":"label", "data":[ {"Artemis Fowl": "[Artemis Fowl - PDF](https://www.readingstudios.com/uploads/5/2/4/6/52467441/artemis_fowl.pdf)"}, {"Charlie and the chocolate factory":"[Charlie and the chocolate factory - PDF](https://www.readingstudios.com/uploads/5/2/4/6/52467441/charlie_and_the_chocolate_factory.pdf)"}, {"The Book Thief": "[The Book Thief - PDF](https://www.readingstudios.com/uploads/5/2/4/6/52467441/grade9gt--thebookthiefmarkuszusak.pdf)"}] }] }; response = zoho.cliq.postToBot("Bookaholics",label_data);
Here, the value of the slides key is altered as follows.
slides
Key Data Type Value type
TEXT
type of data, in our case is label.
data
LIST
holds a collection of KEY-VALUE, each key representing a label and value representing its attached link
The response of the above script is as follows:
Files
The following script posts a file in the Bot - Bookaholics.
file_object = invokeUrl [ url: "https://www.readingstudios.com/uploads/5/2/4/6/52467441/artemis_fowl.pdf" type: GET ]; response = zoho.cliq.postToBot("Bookaholics",file_object);
where,
invokeUrl
file_object
Note: Click here to know more about the invokeUrl task.
The response of the above script is as follows:
Buttons
The following script posts three buttons with three different functions in the chat window of the recipient - charlie@zylker.com.
buttons_data = { "text":"Buttons", "card":{"theme":"modern-inline"}, "buttons":[ { "label":"Built-in functions", "type":"+", "action": {"type":"open.url","data":{"web":"https://www.zoho.com/creator/help/"} } }, { "label":"Invoke Function", "type":"+", "action": {"type":"invoke.function","data":{"name":"TicketStatus","owner":"shawn@zylker.com"} } }, { "label":"Click here to chat", "type":"+", "action": {"type":"system.api","data":{"api":"startchat/123456"} } } ]}; response = zoho.cliq.postToUser("charlie@zylker.com",buttons_data);
where,
message:
Key | Data Type | Value |
text | TEXT | holds the message to be posted |
card | KEY-VALUE | is a themed message that can be customized. Refer this to know more about message cards. |
LIST of KEY-VALUE | contains the list of buttons to be posted |
Key | Data Type | Value |
label | TEXT | specifies the display name of the button |
type | TEXT | specifies the color of the button. "+" indicates green and "-" indicates red. This field is optional. |
KEY-VALUE | decides the action to be performed on button click |
There are three types of actions,
type | data | action |
open.url | {web:<web_address>} | opens the page specified by <web_address> |
invoke.function | {name:<function_name>, owner:<function_owner>} | triggers the function <function_name> which is created by <function_owner> |
system.api | {api:<action/ZUID>} | triggers a system api like: audiocall, videocall, startchat, and invite. In our example, it starts a chat. |
The response of the above script is as follows:
Customize username and profile picture of message sender
The following script customizes the username and profile picture of the message sender to Greetings and posts the message Good Morning, in the chat window of the recipient whose ZUID is 12345678.
message = { "text":"Good Morning", "bot": { "name":"Greetings", "image":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSz4pZuwLofV4goZVT0e2R3K5bElhWk3oMDuUgP3XT9p9d4_Tkv4g" } }; response = zoho.cliq.postToUser("12345678",message);
where,
message:
It is a KEY-VALUE variable that holds the content to be posted.
Key | Data Type | Value |
text | TEXT | holds the message to be posted. |
KEY-VALUE | holds the new sender name and profile photo |
Key | Data Type | Value |
name | TEXT | specifies the new sender name |
image | TEXT | specifies the new profile photo |
The response of the above script is as follows: