Home Schema Example JSON Schema

Provider Settings


ProviderApplication.provider_settings are used by ratatoskr.providers.AbstractProviders to communicate with the Provider API. This field is not exposed to frontend. This is where we store secret credentials.

No Additional Properties

Type: object

The following properties are required:

  • botmdhospital
Type: object

The following properties are required:

  • line
Type: object

The following properties are required:

  • messagebird
Type: object

The following properties are required:

  • messenger
Type: object

The following properties are required:

  • mock
Type: object

The following properties are required:

  • noop
Type: object

The following properties are required:

  • pinpoint
Type: object

The following properties are required:

  • promotexter
Type: object

The following properties are required:

  • pusher
Type: object

The following properties are required:

  • qiscus
Type: object

The following properties are required:

  • qontak
Type: object

The following properties are required:

  • ses
Type: object

The following properties are required:

  • smooch
Type: object

The following properties are required:

  • smtp
Type: object

The following properties are required:

  • telegram
Type: object

The following properties are required:

  • twilio
Type: object

The following properties are required:

  • viber
Type: object

The following properties are required:

  • whatsapp

Bot MD Hospital

Type: object

Provider settings for Bot MD Hospital. This is a special provider that provides a PhoneBasedProviderMixin interface to Bot MD Hospital users.

No Additional Properties

Hospitals

Type: array of string

The list of hospitals (organization_key or uid) to find profiles from. If not set, will look for profiles in all hospitals.

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

Multiple Profiles

Type: enum (of string)

What to do when we encounter multiple possible profiles: deliver to all matching profiles, first matching profile (by hospital primary key), or raise an exception.

Must be one of:

  • "all"
  • "first"
  • "exception"

Native Devices Only

Type: boolean

Delivers to native devices only. Defaults to delivery to both native and web devices.

Line

Type: object

Provider settings for Line.

No Additional Properties

User ID

Type: string

Bot user ID which can be obtained by querying Line API: curl -H 'Authorization: Bearer <token>' https://api.line.me/v2/bot/info.

Must match regular expression: ^U[0-9a-f]{32}$

Basic ID

Type: string

Bot basic ID starting with @.

Must match regular expression: ^\@.+$

Channel Access Token

Type: string

Token for accessing Line API. Found under Channel > Messaging API.

Must be at least 1 characters long

Channel Secret

Type: string

Secret for validating incoming webhooks. Found under Channel > Basic Settings.

Must be at least 1 characters long

Login

Type: object

When generating invitation URLs via Line login API, these settings are required.

No Additional Properties

Client ID

Type: string

Client ID for Login API.

Must be at least 1 characters long

Client Secret

Type: string

Client secret for Login API.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Messagebird

Type: object

Provider settings for Messagebird.

No Additional Properties

Key

Type: string

The Messagebird API key.

Must be at least 1 characters long

Channel Id

Type: string

The Messagebird Channel Id.

Must be at least 1 characters long

Signing Key

Type: string

The Messagebird Signing Key.

Must be at least 1 characters long

Business Number

Type: string

The business number registered on Messagebird.

Must match regular expression: ^\+\d{5,}$

Namespace

Type: string

The Messagebird namespace. This is required for sending WhatsApp template messages.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Messenger

Type: object

Provider settings for Messenger.

No Additional Properties

Access Token

Type: string

Page access token for interacting with Messenger API. Found in Meta for Developers under Messenger > Settings > Access Tokens.

Must be at least 1 characters long

App ID

Type: string

App ID for use with the Facebook Javascript SDK. This is needed for the /ratatoskr/login view. Found in Meta for Developers on the Dashboard.

Must be at least 1 characters long

Verify Token

Type: string

Token for verifying webhook challenge. You choose this and set this in Meta for Developers under Messenger > Settings > Callback URLs or via the upsert webhook feature.

Must be at least 1 characters long

Page ID

Type: string

Page ID where the user will be able to send messages. Found in the page's URL or Meta for Developers under Messenger > Settings > Pages.

Must be at least 1 characters long

Page Username

Type: string

Username alias of page. Used for generating invite links. If not set, we will get this from the API.

Must be at least 1 characters long

App Secret

Type: string

App secret for verifying payload signature and various other uses. Found in Meta for Developers under Settings > Basic.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

No-op

Type: object

Provider settings for NoopProvider.

No Additional Properties

Skip Create Delivery

Type: boolean

Returns SKIP_CREATE_DELIVERY for all incoming payloads. Defaults to false.

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

AWS Pinpoint

Type: object

Provider settings for PinpointProvider.

No Additional Properties

Phone

Type: string

The OriginationIdentity or phone number we are sending SMSes from.

Must match regular expression: ^\+\d{5,}$

Keyword

Type: string

The keyword associated with the phone number.

Must be at least 1 characters long

SNS Topic Arn

Type: string

The SNS topic ARN associated with this provider. This field is required to receive inbound messages.

Must match regular expression: ^arn\:aws\:sns\:[\w\-]+:\d+\:[\w\-]+$

PromoTexter

Type: object

Provider settings for PromoTexter.

No Additional Properties

Type: object

The following properties are required:

  • api_key
  • api_secret
  • viber_id
Type: object

The following properties are required:

  • api_key
  • api_secret
  • sender_id

API Key

Type: string

The PromoTexter apiKey.

Must be at least 1 characters long

API Secret

Type: string

The PromoTexter apiSecret.

Must be at least 1 characters long

Viber ID

Type: string

Viber ID associated with this account. Also known as channel_id in PromoTexter.

Must be at least 1 characters long

SMS From

Type: string

Number to send SMS from.

Must match regular expression: ^\+\d{5,}$

Sender ID

Type: string

This would appear as the sender of the message. Value must be whitelisted to your account.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Read Timeout

Type: integer

Number of seconds to wait before giving up on sending a message.

Value must be greater or equal to 5

Connect Timeout

Type: integer

Number of seconds to wait before giving up on connecting to Promotexter API.

Value must be greater or equal to 3

Pusher

Type: object

Provider settings for Pusher.

No Additional Properties

App ID

Type: string

The Pusher app_id.

Must be at least 1 characters long

Key

Type: string

The Pusher App key.

Must be at least 1 characters long

Secret

Type: string

The Pusher app secret.

Must be at least 1 characters long

Qiscus

Type: object

Provider settings for Qiscus.

No Additional Properties

API Key

Type: string

The Qiscus App ID which can be found in the Settings -> App Information page.

Must be at least 1 characters long

The Qiscus secret key which can be found in the _Settings -> App Information_ page.

Type: string

The Qiscus apiSecret.

Must be at least 1 characters long

Agent ID

Type: stringFormat: email

This is the Qiscus agent ID from Integration -> Bot Integration page. This is used to verify the webhook request. Defaults to <app_id>_admin@qismo.com.

WA

Type: object

Additional settings for WhatsApp channel.

No Additional Properties

Channel ID

Type: integer

The Qiscus WhatsApp channel ID. See https://documentation.qiscus.com/multichannel-customer-service/whatsapp-business-api#glossary on how to find it. Note that channel ID for Qiscus is an integer. Required for WhatsApp.

From Number

Type: string

The number we are sending WhatsApp messages from. Use E.164 format.

Must match regular expression: ^\+\d{5,}$

Namespace

Type: string

The WhatsApp namespace. This is required for sending WhatsApp template messages. See https://documentation.qiscus.com/multichannel-customer-service/whatsapp-business-api#glossary on how to find it. Preferred to have for WhatsApp.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Read Timeout

Type: integer

Number of seconds to wait before giving up on sending a message.

Value must be greater or equal to 5

Connect Timeout

Type: integer

Number of seconds to wait before giving up on connecting to Qiscus API.

Value must be greater or equal to 3

Qontak

Type: object

Provider settings for Qontak.

No Additional Properties

Omnichannel Access Token

Type: string

This is Omnichannel API Access Token which can use for omnichannel related API.

API Access Token

Type: string

This is BOT API Access Token which can use for bot related API.

Account's phone no

Type: string

This is qontak's whatsapp account phone number identifier.

Qontak's channel account identifier

Type: string

This is channel integration id of a Qontak's account. Used for sending a direct broadcast messages

Qontak's channel account client_id

Type: string

Client ID is used for logging in to get non-bot token.

Qontak's channel account client_secret

Type: string

Client Secret is used for logging in to get non-bot token.

Agent division fallback

Type: string

Agent division to fallback when the desire division has no agent.

Send agent handover message

Type: boolean

Send agent handover message through incoming message flow.

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

SES

Type: object

Provider settings for AWS Simple Email Service.

No Additional Properties

From

Type: string

The From email when sending emails through this provider. Defaults to Bot MD <noreply@botmd.io>.

Must be at least 1 characters long

SNS Topic Arn

Type: string

The SNS topic ARN associated with this provider. This field is required to receive inbound emails. Currently used in us-east-1 (N. Virginia) region and ap-southeast-1 (Singapore) region.

Must match regular expression: ^arn\:aws\:sns\:(us\-east\-1|ap\-southeast\-1):\d+\:[\w\-]+$

SNS Client Region

Type: enum (of string) Default: "us-east-1"

The Region of the SNS webhook associated with this provider. Default value is us-east-1.

Must be one of:

  • "us-east-1"
  • "ap-southeast-1"

Delete Immediately

Type: boolean

Delete email immediately after successfully reading it (in iter_messages_from_payload). Inbound emails are stored in the temporary buckets so they will be automatically deleted after a day. Defaults to true.

Allowed Incoming

Type: array of string

The list of sender email addresses this provider will allow.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Allowed Outgoing

Type: array of string

The list of email addresses this provider will deliver to.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Denied Incoming

Type: array of string

Array of emails that are denied for incoming messages. If set, any emails not in this list will be allowed.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Denied Outgoing

Type: array of string

Array of emails that are denied for outgoing messages. If set, any emails not in this list will be allowed.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Type: boolean Default: false

true if this provider will skip the usual SNS payload validation. Use only if you trust the webhook caller.

Smooch (Deprecated)

Type: object

Provider settings for Smooch. This is deprecated.

No Additional Properties

App ID

Type: string

The Smooch App ID.

Must be at least 1 characters long

Key ID

Type: string

The key_id for authenticating against the Smooch API.

Must be at least 1 characters long

Secret

Type: string

The secret for authenticating against the Smooch API.

Must be at least 1 characters long

Integration ID

Type: string

The Smooch Integration ID.

Must be at least 1 characters long

Webhook Secret

Type: string

A shared webhook secret to authenticate that the incoming webhook is from Smooch and not bogus.

Must be at least 1 characters long

Namespace

Type: string

The Smooch namespace. This is required for sending WhatsApp template messages.

Must be at least 1 characters long

Phone No.

Type: string

The "from" phone number where WhatsApp messages are sent from.

Must match regular expression: ^\+\d{5,}$

SMTP

Type: object

Provider settings for sending emails using SMTP. TLS is always assumed.

No Additional Properties

Server URI

Type: string

SMTP server URI of the form smtp://username:password@hostname:[port]. Port defaults to 465.

Must be at least 1 characters long

From

Type: string

The From email when sending emails through this provider. Defaults to Bot MD <noreply@botmd.io>.

Must be at least 1 characters long

Allowed Incoming

Type: array of string

The list of sender email addressmtp this provider will allow.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Allowed Outgoing

Type: array of string

The list of email addresses this provider will deliver to.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Denied Incoming

Type: array of string

Array of emails that are denied for incoming messages. If set, any emails not in this list will be allowed.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Denied Outgoing

Type: array of string

Array of emails that are denied for outgoing messages. If set, any emails not in this list will be allowed.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Telegram

Type: object

Provider settings for Telegram.

No Additional Properties

Username

Type: string

The Telegram bot's username.

Must be at least 1 characters long

API Token

Type: string

The API token for accessing Telegram API.

Must be at least 1 characters long

Allowed Incoming

Type: array of string

The list of usernames this provider will allow.

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

Allowed Outgoing

Type: array of string

The list of usernames this provider will deliver to.

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

Denied Incoming

Type: array of string

Array of usernames that are denied for incoming messages. If set, any usernames not in this list will be allowed.

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

Denied Outgoing

Type: array of string

Array of usernames that are denied for outgoing messages. If set, any usernames not in this list will be allowed.

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

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Twilio

Type: object

Provider settings for Twilio.

No Additional Properties

App ID

Type: string

The Twilio account_sid.

Must be at least 1 characters long

Phone Number

Type: string

The phone number Twilio will use to send SMS/WhatsApp messages .

Must match regular expression: ^\+\d{5,}$

Key

Type: string

The Twilio API key.

Must be at least 1 characters long

Secret

Type: string

The Twilio API secret.

Must be at least 1 characters long

Auth Token

Type: string

The auth_token is used for validation of incoming webhook requests.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

viber

Type: object

Provider settings for viber.

No Additional Properties

Type: string

The sender’s avatar URL. Avatar size should be no more than 100 kb. Recommended 720x720

Must be at least 1 characters long

Type: string

The sender’s name to display

Must be at least 1 characters long

Token

Type: string

The viber token.

Must be at least 1 characters long

Type: string

bot's URI generated by viber. It can be found in the your bot’s Admin Panel or in the response to the get-account-info API request.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

WhatsApp

Type: object

Provider settings for WhatsApp by Meta.

No Additional Properties

WhatsApp Business Account ID

Type: string

The WhatsApp business account ID associated with this provider. Get it from Meta for Developers under App -> WhatsApp -> Getting Started.

Must match regular expression: ^\d{5,}$

App Secret

Type: string

App secret for verifying payload signature and various other uses. Found in Meta for Developers under Settings > Basic.

Must be at least 1 characters long

Access Token

Type: string

Access token for use with the Graph API. Access tokens should be assigned to System Users and be permanent. See instructions at here to create one.

Must be at least 1 characters long

Namespace

Type: string

WhatsApp namespace associated with this WABA.

Must be at least 1 characters long

Phone No. ID

Type: string

The ID associated with the WhatsApp Business phone number. Get it from Meta for Developers under App -> WhatsApp -> Getting Started.

Must match regular expression: ^\d{5,}$

Phone No.

Type: string

The phone number where we will send WhatsApp messages from. Get it from Meta for Developers under App -> WhatsApp -> Getting Started.

Must match regular expression: ^\+\d{5,}$

Verify Token

Type: string

Token for verifying webhook challenge. You choose this and set this in Meta for Developers under App > WhatsApp > Configure Webhook.

Must be at least 1 characters long

Retry Attempts Limit

Type: integer

Number of times to retry sending a message before giving up.

Value must be greater or equal to 1

Retry Seconds Ahead

Type: integer

Number of seconds to wait before retrying sending a message.

Value must be greater or equal to 30

Read Timeout

Type: integer

Number of seconds to wait before giving up on sending a message.

Value must be greater or equal to 5

Connect Timeout

Type: integer

Number of seconds to wait before giving up on connecting to WhatsApp API.

Value must be greater or equal to 3

Action State

Type: object

Provider settings for ActionState support.

No Additional Properties

Is Enabled

Type: boolean

Whether action state handling is enabled on this provider. Defaults to value of provider class variable use_action_state.

Expiry Seconds

Type: number

Number of seconds for action state IDs before they are invalid. Defaults to 3600 seconds.

Billing

Type: object

Settings related to billing.

No Additional Properties

Ignored Devices

Type: array of string

Devices to ignore for billing purposes. Can be either UID or device identifier.

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

FCM

Type: object

Provider settings for Firebase Cloud Messaging.

No Additional Properties

Type: object

The following properties are required:

  • api_key
Type: object

The following properties are required:

  • credentials

API Key

Type: string

The FCM server API key for authenticating against FCM.

Must be at least 1 characters long

Google Cloud Credentials

Type: object

GCP service account credentials

Type

Type: const

Credential type. Must be service_account

Specific value: "service_account"

Project ID

Type: string

Project ID this credential corresponds to

Must be at least 1 characters long

Private Key ID

Type: string

Private key unique ID associated with this credential

Must be at least 1 characters long

Private Key

Type: string

Private key associated with the credential

Must be at least 1 characters long

Additional Properties of any type are allowed.

Type: object

Phone-based

Type: object

Provider settings for providers inheriting from PhoneBasedProviderMixin.

No Additional Properties

Allow Short Code

Type: boolean

Whether to allow incoming/outgoing deliveries to short codes (usually SMS). Defaults to false.

Allowed Incoming

Type: array of string

Array of numbers that are allowed for incoming messages. If set, any numbers not in this list will be denied.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string
Must match regular expression: ^\+\d{5,}$

Allowed Outgoing

Type: array of string

Array of numbers that are allowed for outgoing messages. If set, any numbers not in this list will be denied.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string
Must match regular expression: ^\+\d{5,}$

Denied Incoming

Type: array of string

Array of numbers that are denied for incoming messages. If set, any numbers not in this list will be allowed.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string
Must match regular expression: ^\+\d{5,}$

Denied Outgoing

Type: array of string

Array of numbers that are denied for outgoing messages. If set, any numbers not in this list will be allowed.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string
Must match regular expression: ^\+\d{5,}$

Ratatoskr

Type: object

Settings related to Ratatoskr.

No Additional Properties

Send Technical Error Message

Type: boolean

Send a technical error message whenever we encounter an unhandled provider/application level exception. Defaults to true.

Technical Error Messages

Type: object

The content of the technical error message to send. Defaults to: Sorry! I am currently experiencing technical issues. Don't worry, our team is on it! if not set.

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:

Weight

Type: number

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

Value must be strictly greater than 0