Home Schema Example JSON Schema

Roster Provider Settings

Type: object

Roster Provider Settings define the schema of their source data and how the data should be displayed on the frontend.

Hospitals

Type: array

Array of Hospital keys that will have access to the resource. Defaults to allow any hospital if not specified. Empty array (i.e., []) will deny all access.

Must contain a minimum of 1 items

All items must be unique

No Additional Items

Tuple Validation

Item at 1 must be:

Organization Keys

Type: object

List of organization keys that double up as tags. These tags are for access control at the hospital and organizational level.

Alexandra

Type: const

Alexandra Hospital

Specific value: "alexandra"

AHI

Type: const

Association of Healthtech Indonesia

Specific value: "ahi"

Digihealth

Type: const

Digihealth

Specific value: "digihealth"

Bot MD Demo Hospital

Type: const

Bot MD Demo Hospital for our internal testing purposes.

Specific value: "bdh"

CGH

Type: const

Changi General Hospital

Specific value: "cgh"

Cleo

Type: const

All cleo dialogues are nested under this hospital. Permissions to different clinics are separated by tags of the form cleo:<domain>.

Specific value: "cleo"

Dharmais

Type: const

Rumah Sakit Kanker Dharmais

Specific value: "dharmais"

Fleming Hospital

Type: const

Fleming Hospital is our hospital for public users.

Specific value: "fleminghospital"

Bot MD

Type: const

Bot MD.

Specific value: "botmd"

Bot MD ID Web

Type: const

Bot MD ID Demo Web

Specific value: "botmd_id_web"

EB Medicine Demo

Type: const

EB Medicine Demo

Specific value: "eb_medicine"

Faithful Empire

Type: const

Faithful Empire Webbot

Specific value: "faithful_empire_web"

Harapan Kita

Type: const

Pusat Jantung Nasional Harapan Kita

Specific value: "pjnhk"

ICC

Type: const

Icon Cancer Centre

Specific value: "icc"

IDI

Type: const

Indonesian Medical Association

Specific value: "idi"

IDI Web

Type: const

Indonesian Medical Association Web

Specific value: "idi_web"

IDI Whatsapp

Type: const

Indonesian Medical Association Whatsapp

Specific value: "idi_whatsapp"

Iskandar Demo

Type: enum (of string)

Iskandar demo project.

Must be one of:

  • "iskandar_demo"
  • "iskandar"

Indonesia Care

Type: const

Indonesia care

Specific value: "indonesia_care"

Indonesia Hospital

Type: const

Indonesia hospital

Specific value: "indonesia_hospital"

Klinik In Harmony

Type: const

Klinik In Harmony

Specific value: "inharmony"

KONSULTAMD

Type: const

Konsulta MD

Specific value: "konsultamd"

KKWCH

Type: const

KK Women's and Children's Hospital

Specific value: "kkwch"

KTPH

Type: const

Khoo Teck Puat Hospital

Specific value: "ktph"

MOH Singapore

Type: const

Ministry of Health (Singapore)

Specific value: "moh_sg"

National Hospital

Type: const

National Hospital

Specific value: "nationalhospital"

NCCS

Type: const

National Cancer Centre Singapore

Specific value: "nccs"

NCIS

Type: const

National University Cancer Institute Singapore

Specific value: "ncis"

NCIS Engage

Type: const

NCIS Engage

Specific value: "ncis_engage"

NCIS Engage Web

Type: const

NCIS Engage Web

Specific value: "ncis_engage_web"

NEMG

Type: const

Northeast Medical Group

Specific value: "nemg"

NEMG WEB

Type: const

NEMG WEB

Specific value: "nemg_web"

NKTI

Type: const

National Kidney Transplant Institute

Specific value: "nkti"

NTFGH

Type: const

Ng Teng Fong General Hospital

Specific value: "ntfgh"

NUHS

Type: const

National University Health System

Specific value: "nuhs"

NUH

Type: const

National University Hospital

Specific value: "nuh"

NUS Med

Type: const

NUS School of Medicine

Specific value: "nus_med"

Parkway Radiology

Type: const

Parkway Radiology

Specific value: "parkwayradio"

Philippine General Hospital

Type: const

Philippine General Hospital

Specific value: "pgh"

Prodia Demo

Type: const

Prodia Demo

Specific value: "prodia_demo"

PPhA

Type: const

Philippine Pharmacists Association, Inc

Specific value: "ppha"

Roche Singapore

Type: const

Roche Singapore

Specific value: "roche"

Roche Brunei

Type: const

Roche Brunei

Specific value: "roche_brunei"

Roche HCP

Type: const

Roche HCP is the public bot hosted on https://roche.com.sg

Specific value: "roche_hcp"

Roche HCP Private

Type: const

Roche HCP Private is the private bot hosted on https://roche.com.sg

Specific value: "roche_hcp_private"

Philippine General Hospital

Type: const

Philippine General Hospital

Specific value: "upcm"

Sanglah

Type: const

Sanglah General Hospital

Specific value: "sanglah"

SGH

Type: const

Singapore General Hospital

Specific value: "sgh"

SKH

Type: const

Sengkang General Hospital

Specific value: "skh"

SingHealth

Type: const

SingHealth

Specific value: "singhealth"

Siloam Hospitals

Type: const

Siloam Hospitals

Specific value: "siloam"

Speedoc

Type: const

Speedoc

Specific value: "speedoc"

Stanford

Type: const

Stanford Health Care

Specific value: "stanford"

Sunway

Type: const

Sunway

Specific value: "sunway"

TTSH

Type: const

Tan Tock Seng Hospital

Specific value: "ttsh"

Ultravioleta

Type: const

Ultravioleta hospital

Specific value: "ultravioleta"

UPCM

Type: object

College of Medicine - University of the Philippines Manila

Profile Tags

Type: array

Profile tags are used to identify certain properties of users and control their access to data.

All items must be unique

No Additional Items

Each item of this array must be:


Accessible Tags

Type: object

Tags for controlling access to information. These tags are for gating at the module level and unaffilated with any hospital or organizations.

AHFS

Type: const

Profile can access AHFS DI monographs.

Specific value: "AHFS_accessible"

Calculators

Type: const

Profile can access calculators.

Specific value: "calculators_accessible"

EB Medicine

Type: const

Profile can access EB medicine module.

Specific value: "ebmedicine_accessible"

Guidelines

Type: const

Profile can access guidelines module.

Specific value: "guidelines_accessible"

Sanford

Type: const

Profile can access Sanford module.

Specific value: "Sanford_accessible"

NCIS ChemoCalc

Type: const

Profile can access NCIS chemocalc module.

Specific value: "ncis_chemocalc_accessible"

UpToDate

Type: const

Profile can access Uptodate module.

Specific value: "Uptodate_accessible"

Mediview

Type: const

Profile can access Mediview module.

Specific value: "Mediview_accessible"

MIMS

Type: const

Profile can access MIMS monographs.

Specific value: "MIMS_accessible"

Bot MD Tags

Type: object

Our internal tags for managing users. Usually used for testing and billing purposes.

Internal User

Type: const

This profile belongs to an internal user.

Specific value: "botmd:internal"

Jarvis

Type: const

Users with this tag will be redirected to Jarvis instead.

Specific value: "botmd:jarvis"

Jarvis V2

Type: const

Users with this tag will be redirected to Jarvis v2 for certain queries.

Specific value: "botmd:jarvisv2"

Test

Type: const

This tag is used for testing purpose (e.g., unit tests).

Specific value: "botmd:testtag"

Documents Beta

Type: const

This profile is on the waitlist for the documents Beta programme

Specific value: "botmd:beta-documents-waitlist"

Documents Beta

Type: const

This profile is enrolled onto the documents Beta programme

Specific value: "botmd:beta-documents"

Directory Assistant

Type: const

This profile has access to the directory Jarvis V2 assistant

Specific value: "botmd:assistant-directory"

Organization Keys

Type: object

List of organization keys that double up as tags. These tags are for access control at the hospital and organizational level.

Same definition as Organization Keys

Department Tags

Type: object

List of departments we count as tags.

BDH

Type: string

This represents demo-groups within BDH (e.g. bdh_upcn, bdh_healthway, etc)

Must match regular expression: ^bdh\_\w+$

CGH

Type: string

This represents departments, services, or content-groups within CGH (e.g. cgh_rccm, cgh_edgeri, etc)

Must match regular expression: ^cgh\_\w+$

Cleo

Type: string

This separates various clinics within Cleo using their domain.

Must match regular expression: ^cleo\:\w+$

KKWCH

Type: string

This represents departments, services, or content-groups within KKWCH (e.g. kkwch_rccm, kkwch_edgeri, etc)

Must match regular expression: ^kkwch\_\w+$

NCIS

Type: string

This represents departments, services, or content-groups within NCIS (e.g. ncis_rccm etc)

Must match regular expression: ^ncis\_\w+$

NTFGH

Type: string

This represents departments, services, or content-groups within NTFGH (e.g. ntfgh_rccm, ntfgh_edgeri, etc)

Must match regular expression: ^ntfgh\_\w+$

NUHS

Type: string

This represents departments, services, or content-groups within NUHS (e.g. nuhs_rccm, nuhs_edgeri, etc)

Must match regular expression: ^nuhs\_\w+$

NUH

Type: string

This represents departments, services, or content-groups within NUH (e.g. nuh_rccm, nuh_edgeri, etc)

Must match regular expression: ^nuh\_\w+$

Alexandra

Type: string

This represents departments, services, or content-groups within AH (e.g. alexandra_rccm, alexandra_edgeri, etc)

Must match regular expression: ^alexandra\_\w+$

SKH

Type: string

This represents departments, services, or content-groups within SKH (e.g. skh_rccm, skh_edgeri, etc)

Must match regular expression: ^skh\_\w+$

TTSH

Type: string

This represents departments, services, or content-groups within TTSH (e.g. ttsh_rccm, ttsh_edgeri, etc)

Must match regular expression: ^ttsh\_\w+$

National University Polyclinics (Deprecated)

Type: const

NUHS polyclinics

Specific value: "nupoly"

Bot MD Philippines

Type: const

For users in Philippines.

Specific value: "botmdphilippines"

Intents

Type: array of string

Intent phrases that will trigger this module.

Must contain a minimum of 1 items

All items must be unique

No Additional Items

Each item of this array must be:

Type: string

Must be at least 1 characters long

Timezone

Type: string

Default timezone (eg. Asia/Singapore) if not specified in hospital settings (to be used for time related display information such as last synced time).

Must be at least 1 characters long

Fields

Type: array

The list of fields mapped to the table columns that are searchable by Jarvis in this mini-app.

Must contain a minimum of 1 items

All items must be unique

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Key

Type: string

Uniquely identifiable key used internally for this field. It will be used as the key when storing values associated with this field.

Must be at least 1 characters long

Column

Type: string

The corresponding column name. Defaults to the value of key.

Value

Type: string

Variable substituted string (to be used with type:composite).

Type

Type: enum (of string)

The type of this field. This is used to determine how to parse values from the source data. Defaults to string.
The strings type will assume the raw field value is a comma separated string and will parse it to an array of strings.
The object or json type will assume the raw field value is a well-formed JSON and parse it as such. An exception will be raised if it is neither.
The composite type used with value indicates that this field with be generated using variable substitution from other field keys.

Must be one of:

  • "string"
  • "strings"
  • "object"
  • "json"
  • "composite"

Sorry Message


Optional sorry message to display if there is an intent present without answers.

Message Template

Type: object

A convenience schema for representing a variety of message formats when editing via Mastermind.

No Message

Type: enum (of boolean)

No message will be sent.

Must be one of:

  • false

Text Message

Type: string

Simple text message to send.

Must be at least 1 characters long

Array of Text Messages

Type: array of string

A text message will be uniformly selected from this array.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string

Must be at least 1 characters long

Message

Type: object

Ratatoskr Message.schema that will be sent to the user.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "message"

Message


Message element metadata.

Type: object

Title

Type: object

Title primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "title"

Title

Type: string

Title content.

Must be at least 1 characters long

Subtitle

Type: object

Subtitle primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "subtitle"

Subtitle

Type: string

Subtitle content.

Must be at least 1 characters long

Text

Type: object

Text primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "text"

Text

Type: string

Text content.

Must be at least 1 characters long

Type: object

Image

Type: object

Image primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "image"

Image Metadata

Type: object

Image element metadata.

URL

Type: object

URL to the image file.

Scale

Type: enum (of string)

Overrides frontend's default image scaling algorithm.

Must be one of:

  • "center"
  • "center-crop"
  • "center-inside"

Actionable

Type: object

Action to take when clicking on the image (or preview image). Defaults to opening the image in viewer.

URL

Type: string

URL to the link file. Could be application internal links too. Currently supported internal links are: botmd://hospital/postMessage, botmd://hospital/emobot, botmd://hospital/gql, and `botmd://hospital/jarvisQuery.

Must be at least 1 characters long

External Browser

Type: boolean

Whether to open the url in an external browser instead of our own webview. Defaults to false.

Content Type

Type: string

The MIME type of the content at URL. This is guessed from the extension of the url. If it is a http/https URL and there are no file extensions, text/html is assumed.
This is useful to override the default app responsible for opening it.
See scalpel.messages.url.ContentTypeMixin for content type guessing logic.

Must be at least 1 characters long

Event Metadata

Type: object

Metadata to describe an event that can be posted to Shadowfax. This is usually part of an Actionable.

No Additional Properties

Type

Type: string

Event type that will be posted to Shadowfax (i.e., event_type) when this action is taken.

Must be at least 1 characters long

Properties

Type: object

Optional event properties that will be posted to Shadowfax (i.e., event_properties) when this action is taken.

Additional Properties of any type are allowed.

Type: object

Additional Properties of any type are allowed.

Type: object

Audio

Type: object

Audio primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "audio"

Audio Metadata

Type: object

Audio element metadata.

URL

Type: object

URL to the audio file.

Preview Image

Type: object

Preview image of audio. Defaults to a generic audio icon.

URL

Type: object

URL to the image file.

Scale

Type: enum (of string)

Overrides frontend's default image scaling algorithm.

Must be one of:

  • "center"
  • "center-crop"
  • "center-inside"

Actionable

Type: object

Action to take when clicking on the image (or preview image). Defaults to opening the image in viewer.

URL

Type: string

URL to the link file. Could be application internal links too. Currently supported internal links are: botmd://hospital/postMessage, botmd://hospital/emobot, botmd://hospital/gql, and `botmd://hospital/jarvisQuery.

Must be at least 1 characters long

External Browser

Type: boolean

Whether to open the url in an external browser instead of our own webview. Defaults to false.

Content Type

Type: string

The MIME type of the content at URL. This is guessed from the extension of the url. If it is a http/https URL and there are no file extensions, text/html is assumed.
This is useful to override the default app responsible for opening it.
See scalpel.messages.url.ContentTypeMixin for content type guessing logic.

Must be at least 1 characters long

Event Metadata

Type: object

Metadata to describe an event that can be posted to Shadowfax. This is usually part of an Actionable.

No Additional Properties

Type

Type: string

Event type that will be posted to Shadowfax (i.e., event_type) when this action is taken.

Must be at least 1 characters long

Properties

Type: object

Optional event properties that will be posted to Shadowfax (i.e., event_properties) when this action is taken.

Additional Properties of any type are allowed.

Type: object

Additional Properties of any type are allowed.

Type: object

Additional Properties of any type are allowed.

Type: object

Video

Type: object

Video primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "video"

Video Metadata

Type: object

Video element metadata.

URL

Type: object

URL to the video file.

Preview Image

Type: object

Preview image of video. Defaults to first frame of video.

URL

Type: object

URL to the image file.

Scale

Type: enum (of string)

Overrides frontend's default image scaling algorithm.

Must be one of:

  • "center"
  • "center-crop"
  • "center-inside"

Actionable

Type: object

Action to take when clicking on the image (or preview image). Defaults to opening the image in viewer.

URL

Type: string

URL to the link file. Could be application internal links too. Currently supported internal links are: botmd://hospital/postMessage, botmd://hospital/emobot, botmd://hospital/gql, and `botmd://hospital/jarvisQuery.

Must be at least 1 characters long

External Browser

Type: boolean

Whether to open the url in an external browser instead of our own webview. Defaults to false.

Content Type

Type: string

The MIME type of the content at URL. This is guessed from the extension of the url. If it is a http/https URL and there are no file extensions, text/html is assumed.
This is useful to override the default app responsible for opening it.
See scalpel.messages.url.ContentTypeMixin for content type guessing logic.

Must be at least 1 characters long

Event Metadata

Type: object

Metadata to describe an event that can be posted to Shadowfax. This is usually part of an Actionable.

No Additional Properties

Type

Type: string

Event type that will be posted to Shadowfax (i.e., event_type) when this action is taken.

Must be at least 1 characters long

Properties

Type: object

Optional event properties that will be posted to Shadowfax (i.e., event_properties) when this action is taken.

Additional Properties of any type are allowed.

Type: object

Additional Properties of any type are allowed.

Type: object

Preview Autostart

Type: boolean

Whether to auto play video in preview view. Defaults to false.

Additional Properties of any type are allowed.

Type: object

Attachment

Type: object

Attachment primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "attachment"

Attachment Metadata

Type: object

Attachment element metadata.

No Additional Properties

URL

Type: string

URL to the attachment file.

Must match regular expression: ^((https|s3|gs|file)\:\/\/|\$)

Filename

Type: string

Filename for attachment. This is useful when the filename cannot be inferred from the URL.

Must be at least 1 characters long

Content Type

Type: string

The MIME type of the attachment. This is guessed from the extension of the filename followed by the url. See scalpel.messages.url.ContentTypeMixin for content type guessing logic.

Must be at least 1 characters long

Preview Image

Type: object

Preview image of attachment. Defaults to first frame of attachment.

URL

Type: object

URL to the image file.

Scale

Type: enum (of string)

Overrides frontend's default image scaling algorithm.

Must be one of:

  • "center"
  • "center-crop"
  • "center-inside"

Actionable

Type: object

Action to take when clicking on the image (or preview image). Defaults to opening the image in viewer.

URL

Type: string

URL to the link file. Could be application internal links too. Currently supported internal links are: botmd://hospital/postMessage, botmd://hospital/emobot, botmd://hospital/gql, and `botmd://hospital/jarvisQuery.

Must be at least 1 characters long

External Browser

Type: boolean

Whether to open the url in an external browser instead of our own webview. Defaults to false.

Content Type

Type: string

The MIME type of the content at URL. This is guessed from the extension of the url. If it is a http/https URL and there are no file extensions, text/html is assumed.
This is useful to override the default app responsible for opening it.
See scalpel.messages.url.ContentTypeMixin for content type guessing logic.

Must be at least 1 characters long

Event Metadata

Type: object

Metadata to describe an event that can be posted to Shadowfax. This is usually part of an Actionable.

No Additional Properties

Type

Type: string

Event type that will be posted to Shadowfax (i.e., event_type) when this action is taken.

Must be at least 1 characters long

Properties

Type: object

Optional event properties that will be posted to Shadowfax (i.e., event_properties) when this action is taken.

Additional Properties of any type are allowed.

Type: object

Additional Properties of any type are allowed.

Type: object

Einstein attachment metadata

Type: object

Einstein-specific metadata for this attachment

Document UID

Type: string

Einstein Document UID for attachment.

Must be at least 1 characters long

Type: object

Button

Type: object

Button action primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "button"

Button Metadata

Type: object

Button action element metadata.

Visuals

Type: object

Metadata to describe the visual aspect of a button.

Text

Type: string

Display text.

Must be at least 1 characters long

Style

Type: enum (of string)

Button styling options. cta refers to call to action buttons that have a blue background, while link buttons have white background. Defaults to link.

Must be one of:

  • "cta"
  • "link"

Additional Properties of any type are allowed.

Type: object

Actionable metadata

Type: object

Metadata to describe actions that are taken when a UI element is triggered (e.g., tapped, clicked, etc).

Same definition as actionable
Type: object

Quick Reply

Type: object

Quick reply primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "quick_reply"

Quick Reply Metadata

Type: object

Quick reply element metadata.

Visuals

Type: object

Metadata to describe the visual aspect of a quick reply.

Text

Type: string

Display text.

Must be at least 1 characters long

Actionable metadata

Type: object

Metadata to describe actions that are taken when a UI element is triggered (e.g., tapped, clicked, etc).

Same definition as actionable
Type: object

Location Request

Type: object

Location request primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "location_request"

Location Request Metadata

Type: object

Location request element metadata.

No Additional Properties

Text

Type: string

Prompt for the user when requesting for location.

Must be at least 1 characters long

Location Response

Type: object

Location request primitive element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "location_response"

Location Response Metadata

Type: object

Location response element metadata.

No Additional Properties

Name

Type: string

Name of the location.

Must be at least 1 characters long

Address

Type: string

Human-readable address of the location.

Must be at least 1 characters long

Container Types

Type: object

Container types wrap around other primitive types.

Quick Replies

Type: object

Quick replies container element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "quick_replies"

Quick Replies

Type: array

Array of quick replys.

Must contain a minimum of 1 items

Must contain a maximum of 16 items

No Additional Items

Each item of this array must be:

Sections

Type: object

Sections are container types for up to at most 3 elements. These are most likely to be used for rich messages that include media, paragraphs, and actions.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "sections"

Sections

Type: array

An array of section elements.

Must contain a minimum of 1 items

Must contain a maximum of 5 items

No Additional Items

Each item of this array must be:


Paragraphs

Type: object

Paragraphs container element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "paragraphs"

Favorite metadata

Type: object

When specified, the message / carousel item can be favorited on the frontend.

No Additional Properties

Title

Type: string

Title to show in the favorites menu.

Must be at least 1 characters long

URL

Type: string

URL to favorite item. This could be an internal botmd:// link or an external link.

Must be at least 1 characters long

Expires On

Type: stringFormat: date-time

This is used with botmd://hospital/jarvisQuery links using uids. If frontend decides to cache the content of this favorite message, it should be refreshed against the backend after the expiry.

Actions

Type: object

Actions container element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "actions"

Favorite metadata

Type: object

When specified, the message / carousel item can be favorited on the frontend.

Same definition as favorite

Favorite metadata

Type: object

When specified, the message / carousel item can be favorited on the frontend.

Same definition as favorite

Carousel

Type: object

Carousel container element.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "carousel"

Application Payload

Type: object

Application payload message.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "application_payload"

Application Payload Metadata

Type: object

Application payload element metadata.

No Additional Properties

Application

Type: string

Application origin of the data payload

Must be at least 1 characters long

Payload

Type: object or string

Arbitrary payload to be used by application. Can be any JSON object.

Email

Type: object

This is a high level representation of MIME emails.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "email"

Email Metadata

Type: object

Email element metadata.

Subject

Type: string

A short string identifying the topic of the message (RFC 2822).

Must be at least 1 characters long

Text

Type: string

The main body of the email in plain text.

HTML

Type: string

The main body of the email in HTML.

Must be at least 1 characters long

Attachments

Type: array

Attachments to the email.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

WhatsApp Template

Type: object

A message type encapsulating the WhatsApp template syntax. It is currently used by MessageBird.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "whatsapp_template"

WhatsApp Template

Type: object

WhatsApp template element metadata.

No Additional Properties

Template Name

Type: string

WhatsApp template name to use for this message.

Must be at least 1 characters long

Namespace

Type: string

WhatsApp namespace associated with the WABA. Defaults to the provider settings namespace.

Must be at least 1 characters long

Fallback Text

Type: string

For non-WhatsApp capable providers, it will be sent as a text message containing this string.

Must be at least 1 characters long

Language code

Type: string

Language code of the template. Note that language policy of the template message will always be deterministic. Defaults to en.

Must be at least 1 characters long

Header Parameters

Type: array of object

Array of parameters in header component of the template message. Applies to media templates only.

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type

Type: enum (of string)

Type of header

Must be one of:

  • "image"
  • "document"
  • "video"

Video

Type: object

Video header.

The following properties are required:

  • url

URL

Type: string

URL to the videos.

Must match regular expression: ^((https|s3|gs)\:\/\/|\$)

Document

Type: object

Document attachment in media template.

URL

Type: string

URL to the document.

Must match regular expression: ^((https|s3|gs)\:\/\/|\$)

Caption

Type: string

Caption to accompany the document attachment.

Must be at least 1 characters long

Filename

Type: string

Filename of document attachment. If caption is not specified, filename will be used instead.

Must be at least 1 characters long

Body Parameters

Type: array of object

Array of parameters in body component of the template message. Applies to both text and media templates.

No Additional Items

Each item of this array must be:

Button Parameters

Type: array of object

Array of parameters in button component of the template message. Note that dynamic CTA is a very new feature (as of 2021-09-24).

No Additional Items

Each item of this array must be:


No Additional Properties

URL

Type: string

Either the full URI or path to use for CTA button. Note that only the path, query, and fragment will be used.

Must be at least 1 characters long

Text (Legacy)

Type: string

Either the full URI or path to use for CTA button. Note that only the path, query, and fragment will be used.

Must be at least 1 characters long

Index

Type: enum (of integer)

Position index of the button. You can have up to 3 buttons using index values of 0 to 2. Defaults to 0.

Must be one of:

  • 0
  • 1
  • 2

Empty Message

Type: object

An empty message with no content whatsoever.

No Additional Properties

Type

Type: const

The type of this element.

Specific value: "empty"

Favorite metadata

Type: object

When specified, the message / carousel item can be favorited on the frontend.

Same definition as favorite

Message Provider Metadata

Type: object

Message.provider_metadata is used on Messages to provide additional context to the provider for delivery.

No Additional Properties

MessengerProvider

Type: object

Delivery metadata for MessengerProvider.

No Additional Properties

Message Tag

Type: enum (of string)

Use MESSAGE_TAG when sending this message. This is useful when sending messages outside of the 24 hour window. Do make sure that the tag corresponds to the actual content of the message. See Message Tags documentation for more details on what content is allowed by each tag.

Must be one of:

  • "CONFIRMED_EVENT_UPDATE"
  • "POST_PURCHASE_UPDATE"
  • "ACCOUNT_UPDATE"
  • "CUSTOMER_FEEDBACK"

ReplyTo

Type: object

This is the schema for the ReplyTo metadata representing replyee message information

No Additional Properties

Replyee Delivery UID

Type: null or string

The UID of the replyee delivery object. Used when replyee edits/deletes their message.

Replied on datetime

Type: stringFormat: date-time

Replied On datetime to track when we "copied" the replyee message (may be used to check if original message was edited post-reply)

Replyee name

Type: string

Name of replyee to render on Frontend

Must be at least 1 characters long

Message

Type: object

This is the schema for messages as described and proposed in the Ratatoskr: Data Models for Messages RFC.

Same definition as Message

Series of Messages

Type: array

Series of Ratatoskr Message.schemas will be sent to the user.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Message

Type: object

This is the schema for messages as described and proposed in the Ratatoskr: Data Models for Messages RFC.

Same definition as Message

Random Choices

Type: object

Choose from one of the arrays of Ratatoskr Message.schemas randomly.

No Additional Properties

Choices

Type: array of object

Array of choices of messages to choose from.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Messages

Type: array

An array of messages that form this random message choice.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Message

Type: object

This is the schema for messages as described and proposed in the Ratatoskr: Data Models for Messages RFC.

Same definition as Message

Weight

Type: number

The relative weight of this message used to perform weighted choice. Defaults to 1.

Value must be strictly greater than 0

Array of Messages

Type: array

Used to support more than 1 message (eg. Text and Quick Reply)

No Additional Items

Each item of this array must be:


Type: object

Container Types

Type: object

Container types wrap around other primitive types.

Same definition as Container Types

Email

Type: object

This is a high level representation of MIME emails.

Same definition as Email

Empty Message

Type: object

An empty message with no content whatsoever.

Same definition as Empty Message

Stop Words

Type: array of string

Stop words to apply to this miniapp only.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string

Must be at least 1 characters long

Logo URL

Type: stringFormat: uri

Logo of the hospital to be used in the app.

Name Suffix Column

Type: boolean

Flag to indicate if the name_suffix should be shown in a separate column in the miniapp table (defaults to False).

Time Column

Type: boolean

Flag to indicate if the valid_from and valid_to should be shown in the miniapp table (defaults to False).

Max entries

Type: integer

Number of entries to display before 'Show more' is shown.

Perfect Requires Intent

Type: boolean

Determines if intent is required for an answer to be is_perfect, when an answer is exact, it is_perfect and can cause it to swamp other answers (default: False)

Show time

Type: boolean

Flag to indicate if pretty time (eg. 8am-5pm) should be shown in message for each entry.

Show Only Relevant

Type: boolean

Show only relevant persons and roles in bot response instead of just sorting the entries (defaults to False).

Style

Type: object

Configurations that affect how the data is presented to the user.

Quick Reply

Type: object

Used to customize how the quick replies looks in the chat application.

Type: string

Must be at least 1 characters long

Einstein DataSource

Type: object

Configuration settings when used with Einstein as the data source.

Einstein DataSource UID

Type: string

The corresponding Einstein DataSource will be used during syncing

Must be at least 1 characters long

Amion Module

Type: object

Configuration settings when used with amion as the data source.

Amion API Key

Type: string

Amion API key needed for pulling roster data from amion.

Must be at least 1 characters long

Auto Generate Synonyms

Type: boolean

Automatically does shingle expansion on terms (defaults to False).

Days

Type: integer

Amount of roster data to pull from amion denoted in days (use either days or months).

Months

Type: integer

Amount of roster data to pull from amion denoted in months (use either days or months).

Additional Properties of any type are allowed.

Type: object