What are the properties of HSL?

This doc will describe the various valid attributes and their values that can be used while generating the HSL JSONs as and when applicable.

HSL Data Attribute/Parameter Descriptions

The data part of the HSL holds most of the complex information enabling us to create complex chat elements. The data varies for every different type of the HSL. Before we dig into what all different data we could have, let’s quickly look into what actionable are how are they used along with different HSLs. Actionable is one of the most important parts of the data is used heavily across all kinds of HSL.

Actionable

Actionables exist to define both the existence & action of CTAs. Anatomy of an actionable object:

{
  "actionable_text": "<text on the CTA>",
  "location_required": "<true or false>",
  "uri": "<URI>",
  "is_default": "<0 or 1>",
  "type": "<type of actionable>",
  "payload": {
    "link": "<link>",
    "gogo_message": "<message>"
  }
}
Property Name Description
actionable_text This is the text shown on the actionable
location_required true or false, if true, location information is sent to the backend
uri dictates the screen interaction
is_default 0 or 1, if 1, on click of the element, this actionable will get triggered
type We have a type for an actionable, similar to types of HSL's
payload dictionary which carries the meta-data required for the actionable to do its job.

Possible values for "URI"

Values Description
CAROUSEL_DETAIL Opens a screen that has a carousel of image
GALLERY_PICKER Pops up the dialog to choose an image from the camera/gallery.
SEND_LOCATION Opens Place Picker and enables a user to send a particular location.
CAROUSEL_DEFAULT opens carousel with title and actionable (buttons)
SAVED_ADDRESSES Opens up the Saved Addresses screen with the list of saved addresses, if empty, the user can add
CALL Makes a phone call to a number provided in the payload.
LINK Fires up web view with a link provided in the payload.
SEND_MULTIPLE_LOCATIONS To allow a user to select two locations and send it back as a message.

Possible values for "type"

Like we have the type of HSL, we also have the type of an actionable. This type defines the nature of the actionable. The available types are:

Values Description
APP_ACTION Indicates an action that should happen when you tap on it. Usually combined with a URI.
MESSAGE_BAR Indicates an action that should happen when you tap on it. Usually combined with a URI.
TEXT Used to send a message in the same channel
TEXT_ONLY Mainly used by quick replies
TAB_LIST_TEXT_ONLY Used to send a message based on the chosen option in the TAB_LIST element.
FORM_SHOW Used to present a form in the same channel where the actionable is.
SHARE_RECEIPT Used along with the RECEIPT HSL object to take a snapshot of the receipt and make it shareable.
APP_FEEDBACK Used to allow a user to give feedback.
SHARE_REFERRAL Used to share referral message

Keys of "payload" object

An actionable payload is a dictionary that carries the meta-data required for the actionable to do its job. Some of the keys used in this payload are:

Values Description
url URL to redirect to
message This message is sent when the user taps on the actionable. Mostly used with the BUTTON element.
title Used to pass the information for the Carousel Details screen.
sub_title Used to pass the information for the Carousel Details screen.
description Used to pass the information for the Carousel Details screen.
images List of images. Used to pass the information for the Carousel Details screen.
lat_key lat key to be sent back along with the latitude. Used with the SEND_LOCATION & SEND_MULTIPLE_LOCATIONS URIs
lng_key lng key to be sent back along with the longitude. Used with the SEND_LOCATION & SEND_MULTIPLE_LOCATIONS URIs.
callback_link The URL is to be called once the apps get the Uber/Ola auth token.
lng_key lng key to be sent back along with the longitude. Used with the SEND_LOCATION & SEND_MULTIPLE_LOCATIONS URIs.
items a list of carousel elements
 

Can’t find what you’re looking for? Email us at support@haptik.ai.