Apple Messages for Business

Understand various Apple Messages for Business message types supported by Webex Connect and access API Payloads for sending these messages to your customers.

📘

Please note:

  • Apple Messages for Business channel is supported via Webex Connect Messaging API v1. The endpoint for it is: [https://{YourRegion}.webexconnect.io/resources/v1/messaging].

    Please modify YourRegion in the URL to reflect your tenant’s region. See Know your endpoint page.

  • While the payload samples for various message types are covered below, you can use our Try It feature (click on the Message Type name to get routed to it) to send some test messages. You would be required to provide the Apple Messages for Business asset details, service key, message content, etc. from your account to use this. This apart you can use our Postman Collection for trying variations that are not covered through the Try It feature.

Types of Apple Messages for Business Messages Supported

Here's a list of Apple Message for Business message types supported by Webex Connect with payload samples. Click the hyperlinks below to see the API documentation for each of these.

A plain text message that businesses can send to their customers.

ParameterMandatoryDescription
typeYesOptions: text, richlink, interactive
textYesThe text of the text message, which can contain URLs and formatting
attachmentsNoContains the attachment object
{
	"deliverychannel": "AppleBusinessChat", //Channel used to send the message i.e., AppleBusinessChat for Apple Messages for Business in this case.
	"appid": "{{ambAppid}}", //The ID of the app asset that you can obtain from the Connect platform.
	"destination": [{
		"abcUserId": ["{{ambUserId}}"] //User's Opaque ID that uniquely identifies a user and is specific to the business
	}],
	"channels": {
		"AppleBusinessChat": {
			"type": "text", //Type of the outbound event. It can be text ; typing_start, typing_end.
			"text": "" //The content of the text message, which can contain URLs.
		}
	},
    "correlationid": "", //The CorrelationID is a unique identifier that you can attach to every request as a reference a particular transaction or event. This is configured as a part of the request.
    "callbackData": "", //Data that you have configured to receive on the notify Url. This is configured as a part of the request.
    "notifyurl": "" //Configure a URL to get notifications on delivery reports for a Apple message. This field accepts only a valid URL or a variable. If an invalid URL is passed in API request or via a variable, then such request will not be considered eligible for retries.

}
"channels":{  
        "AppleBusinessChat":{  
            "type":"text",
            "text":"plain mt text message\uFFFC",
            "attachments":[  
                {  
                    "url":"https://4.img-dpreview.com/files/p/E~TS590x0~articles/3925134721/0266554465.jpeg",
                    "mimeType":"image/jpeg"
                }
            ]
        }
    }
"channels":{
        "AppleBusinessChat":{
            "type":"interactive",
            "interactiveData":{
                "data":{
                    "version":"1.0",
                    "requestIdentifier":"21d4a1c4-327c-ba35-45b1-36a050b15ad2",
                    "images":[
                        {
                            "identifier":"6de6a59c-846f-45d8-a1d7-24382d9919db",
                            "url":"http://drohnemieten.dein-betrieb.com/wp-content/uploads/2017/05/maxresdefault.jpg"
                        },
                        {
                            "identifier":"c020521e-cc3c-41fa-876e-a445237a6f83",
                            "url":"https://www.lens-rumors.com/wp-content/uploads/2014/10/Nikon-AF-S-DX-Nikkor-18-140mm-f3.5-5.6G-ED-VR-sample-images1.jpg"
                        },
                        {
                            "identifier":"b70de3eb-a412-4fdd-a4b1-cb4eef853ded",
                            "url":"http://www.tompetty.com/sites/g/files/g2000007521/f/sample1_1.jpg"
                        }
                    ],
                    "listPicker":{
                        "sections":[
                            {
                                "items":[
                                    {
                                        "style":"default",
                                        "title":"iPhone X",
                                        "imageIdentifier":"c020521e-cc3c-41fa-876e-a445237a6f83",
                                        "subtitle":"So immersive the device itself disappears into the experience",
                                        "order":0,
                                        "identifier":"0"
                                    },
                                    {
                                        "style":"default",
                                        "title":"iPhone 8",
                                        "imageIdentifier":"b70de3eb-a412-4fdd-a4b1-cb4eef853ded",
                                        "subtitle":"iPhone 8 introduces an all new glass design",
                                        "order":1,
                                        "identifier":"1"
                                    },
                                    {
                                        "style":"default",
                                        "title":"iPhone SE",
                                        "imageIdentifier":"6de6a59c-846f-45d8-a1d7-24382d9919db",
                                        "subtitle":"A big step for small",
                                        "order":2,
                                        "identifier":"2"
                                    }
                                ],
                                "title":"Available offers!",
                                "multipleSelection":true,
                                "order":0
                            }
                        ]
                    }
                },
                "useLiveLayout":true,
                "receivedMessage":{
                    "style":"small",
                    "title":"The best deals on new iPhones!",
                    "subtitle":"Upgrade to a brand new iPhone this summer",
                    "imageIdentifier":"6de6a59c-846f-45d8-a1d7-24382d9919db"
                }
            }
        }
    }
{
   "deliverychannel": "AppleBusinessChat",
   "channels": {
      "AppleBusinessChat": {
         "type": "interactive",
         "interactiveData": {
            "data": {
               "version": "1.0",
               "requestIdentifier": "21d4a1c4-327c-ba35-45b1-36a050b15ad2",
               "quick-reply": {
                  "summaryText": "Summary text",
                  "items": [
                     {
                        "identifier": "0",
                        "title": "Yes"
                     },
                     {
                        "identifier": "1",
                        "title": "No"
                     }
                  ]
               }
            }
         }
      }
   },
   "destination": [
      {
         "abcUserId": [
            "urn:mbid:AQAAY2E1PqGghksrQ71ziwk4Ay68GU1usB+ndGNJuY3QSw+85VM5n29jm9TYilv0fErP38RydQve86uT4d6V8ObPFgIZSELoC4xVpg7oVuz9lkeYIqbwyWgvywHAfeZpus86WvI4dhZUTDJl21P4SUKeaOO5K/A="
         ]
      }
   ]
}

A text message with unicode object replacement character (\uFFFC) at the text position where the attachment should appear in the message text.

The attachments object

ParameterMandatoryDescription
urlYesPublicly accessible URL that is a direct link to the media
mimeTypeYesThe MIME type

Rich link messages contain an inline image or video as a preview of the hyperlink that business sends to customer

  • richlinks
ParameterMandatoryDescription
typeYesOptions: text, richlink, interactive
richlinkDataYesRich link object

The rich link object

ParameterMandatoryDescription
urlYesPublicly accessible URL that is a direct link to the media
titleYesTitle of the rich link message
assetsYesContains image or video asset
"channels":{
        "AppleBusinessChat":{
            "type":"richLink",
            "richLinkData":{
                "url":"https://youtu.be/gM0qOa_H-rs",
                "title":"Mpbile Testing",
                "assets":{
                    "video":{
                        "url":"https://youtu.be/gM0qOa_H-rs",
                        "mimeType":"video/mp4"
                    }
                }
            }
        }
    }
    "destination": [
    {
     "userid":["4545"]
    }
  ]
"assets":{
    "video":{
        "url":"https://youtu.be/gM0qOa_H-rs",
        "mimeType":"video/mp4"
    }
}
  • interactive
ParameterMandatoryDescription
typeYesOptions: text, richlink, interactive
interactiveDataYesContains the list/Time Picker (Date Picker) and Quick Reply data

interactiveData object

ParameterMandatoryDescription
versionYesA string representing the version number of the message extension schema. Should be 1.0.
requestIdentifierYesA string that representing a unique identifier for the request. imiconnect returns the ID in the response it sends back to the client application
imagesYesAn array of image dictionaries
listPickerYes if you want to send list pickerA dictionary that tells Messages how the list picker should behave and what content it should show to the customer.
eventYes if want to send Time Picker (Date Picker)A dictionary that tells Messages how the Time Picker (Date Picker) should behave and what content it should show to the customer.

Provides a simple way for the user to make an inline choice with a single tap during an ongoing conversation. You can have between two and five customizable choices, and the user can select only a single item.

Quick Reply

ParameterMandatoryDescription
quick-replyYesAn array of objects for quick reply message.
summaryTextYesSummary text that will be used for device notification but will also shown in the transcript after the end user selects one of the quick reply options.
itemsYesAn array of quick reply items.
identifierYesAn identifier to identify the item.
titleYesTitle of the respective quick reply item. Max 1 line of text.

images

ParameterMandatoryDescription
dataYesDirect link to the image
identifierYesA string containing the image identifier, which must be unique within the list of images.

Allows the customer to choose from a list of items. A list picker displays a list of items, and information about the items-such as product name, description, and image—in the Messages app on the customer's device. The customer can choose one or more items from the list to send with a reply.

list picker

"listPicker":{
                        "sections":[
                            {
                                "items":[
                                    {
                                        "style":"default",
                                        "title":"iPhone X",
                                        "imageIdentifier":"c020521e-cc3c-41fa-876e-a445237a6f83",
                                        "subtitle":"So immersive the device itself disappears into the experience",
                                        "order":0,
                                        "identifier":"0"
                                    },
                                    {
                                        "style":"default",
                                        "title":"iPhone 8",
                                        "imageIdentifier":"b70de3eb-a412-4fdd-a4b1-cb4eef853ded",
                                        "subtitle":"iPhone 8 introduces an all new glass design",
                                        "order":1,
                                        "identifier":"1"
                                    },
                                    {
                                        "style":"default",
                                        "title":"iPhone SE",
                                        "imageIdentifier":"6de6a59c-846f-45d8-a1d7-24382d9919db",
                                        "subtitle":"A big step for small",
                                        "order":2,
                                        "identifier":"2"
                                    }
                                ],
                                "title":"Available offers!",
                                "multipleSelection":true,
                                "order":0
                            }
                        ]
                    }
                },
                "useLiveLayout":true,
                "receivedMessage":{
                    "style":"small",
                    "title":"The best deals on new iPhones!",
                    "subtitle":"Upgrade to a brand new iPhone this summer",
                    "imageIdentifier":"6de6a59c-846f-45d8-a1d7-24382d9919db"
                }
            }
        }
    }

Allows the customer to schedule an appointment.The customer can also get directions to the location or add the event to their calendar by tapping Get Directions or Add to Calendar.

Date Picker (Time Picker)

{
    "deliverychannel": "AppleBusinessChat", //Channel used to send the message i.e., AppleBusinessChat for Apple Messages for Business in this case.
    "appid": "{{ambAppid}}", //The ID of the app asset that you can obtain from the Connect platform.
    "destination": [
        {
            "abcUserId": [
                "{{ambUserId}}"
            ] //User's Opaque ID that uniquely identifies a user and is specific to the business
        }
    ],
    "channels": {
        "AppleBusinessChat": {
            "type": "interactive", //Options: text, richlink, interactive
            "interactiveData": {
                "bid": "com.apple.messages.MSMessageExtensionBalloonPlugin:0000000000:com.apple.icloud.apps.messages.business.extension",
                "data": {
                    "version": "", //A string representing the version number of the message extension schema. Should be 1.0.
                    "requestIdentifier": "", //A string that representing a unique identifier for the request. Webex connect returns the ID in the response it sends back to the client application
                    "images": [
                        {
                            "identifier": "", //A string containing the image identifier, which must be unique within the list of images.
                            "data": "" //Direct link to the image
                        }
                    ],
                    "event": {
                        "timezoneOffset": -100, //An integer representing the number of minutes from GMT, specifying the timezone of the event’s location. If not set, times are shown according to the customer’s current time zone. If set, the times are shown according to the event’s time zone, regardless of the customer’s location.
                        "identifier": "", //A string field identifying the event that must be unique within the payload, if more than one exists.
                        "title": "", //A string field of the event title.
                        "timeslots": [
                            {
                                "duration": 1800, //An integer representing the duration of the time slot, in seconds.
                                "startTime": "", //A UTC date string, represented by a valid date in ISO-8601 format and specified as absolute GMT +0000 date; for example, 2017-05-26T08:27:55+00:00, 2017-05-26T08:27:55+0000, or 2017-05-26T08:27:55Z. The timezoneOffset, from the event object, determines whether the startTime is in a specific time zone or in the customer's current time zone.
                                "identifier": "" //A string field identifying the time item that must be unique within the payload, if more than one exists.
                            }
                        ],
                        "location": {
                            "title": "", //A string field of the location title.
                            "latitude": 51.5209041, //Representing the latitude of the location.
                            "longitude": -0.1025591, //Representing the longitude of the location.
                            "radius": 16 //Representing the location radius, in meters. Messages for Business ignores this field when latitude and longitude are missing or empty.
                        }
                    }
                },
                "useLiveLayout": true, //A Boolean that determines whether the Messages app should use Live Layout. The default is true. Default: true
                "replyMessage": {
                    "style": "", //A style that controls the size of the view rendered by Live Layout. The default is icon. The list of possible values: icon, small, large
                    "title": "", //The main title that the Messages app shows in the header of the reply message bubble. When the user taps the reply message bubble, the Messages app replaces the title with the user’s selection. Limited to 512 characters.
                    "alternateTitle": "" //Alternate Title of the reply message
                },
                "requestIdentifier": "", //An identifier for the authenticate request. Recommended value: uuid.
                "receivedMessage": {
                    "style": "", //A style that controls the size of the view rendered by Live Layout. The default is icon. The list of possible values: icon, small, large.
                    "title": "", //The main title that the Messages app shows in the header of the received message bubble. Limited to 512 characters.
                    "subtitle": "", //The subtitle that appears under the main title in the received message bubble. Limited to 512 characters.
                    "imageIdentifier": "" //The identifier for one of the images specified in data.images.
                }
            }
        }
    },
    "correlationid": "", //The CorrelationID is a unique identifier that you can attach to every request as a reference a particular transaction or event. This is configured as a part of the request.
    "callbackData": "", //Data that you have configured to receive on the notify Url. This is configured as a part of the request.
    "notifyurl": "" //Configure a URL to get notifications on delivery reports for a Apple message. This field accepts only a valid URL or a variable. If an invalid URL is passed in API request or via a variable, then such request will not be considered eligible for retries.
}

Messages for Business Forms allow you to create rich, multipage interactive flows for users on iOS and iPadOS devices

Form Specifications
The specifications below define the content of the JSON payloads used to render the Form on user devices. Sample JSON Request Payload is mentioned below.

{
    "appid": "a_637818908588360000",
    "notifyurl": "https://requestinspector.com/inspect/01gfx7mnd38xfjswd0am8zev52",
    "correlationid": "ABCTextmorethan10k",
    "callbackData": "ABCTextmorethan10k",
    "deliverychannel": "AppleBusinessChat",
    "channels": {
        "AppleBusinessChat": {
            "type": "interactive",
            "interactiveData": {
                "data": {
                    "requestIdentifier": "76dbffd0-7f2b-4c92-a396-ae533d8a68e7_1",
                    "dynamic": {
                        "version": "1.1",
                        "private": true,
                        "data": {
                            "startPageIdentifier": "0",
                            "showSummary": true,
                            "splash": {
                                "header": "Hello! How may I help you?",
                                "splashtext": "Kindly fill the form to raise your complaint",
                                "buttonTitle": "Continue",
                                "imageIdentifier": "vimg3"
                            },
                            "pages": [
                                {
                                    "pageIdentifier": "0",
                                    "type": "select",
                                    "title": "Select the Defective Product",
                                    "subtitle": "Select one of the purchased products for which there's a complain?",
                                    "multipleSelection": false,
                                    "items": [
                                        {
                                            "title": "Tulips Vacuum Cleaner",
                                            "value": "vacuum",
                                            "identifier": "101",
                                            "nextPageIdentifier": "2",
                                            "imageIdentifier": "vimg1"
                                        },
                                        {
                                            "title": "Tulips Air Fryer",
                                            "value": "airfryer",
                                            "identifier": "102",
                                            "nextPageIdentifier": "2",
                                            "imageIdentifier": "vimg2"
                                        }
                                    ]
                                },
                                {
                                    "pageIdentifier": "2",
                                    "type": "select",
                                    "title": "Details of the complaint",
                                    "subtitle": "Please choose one or more of the following as applicable",
                                    "multipleSelection": true,
                                    "nextPageIdentifier": "3",
                                    "items": [
                                        {
                                            "title": "Air fryer is not heating up",
                                            "value": "heat",
                                            "identifier": "301",
                                            "imageIdentifier": "vimg2"
                                        },
                                        {
                                            "title": "Power plug is damaged",
                                            "value": "plug",
                                            "identifier": "302",
                                            "imageIdentifier": "vimg2"
                                        }
                                    ]
                                },
                                {
                                    "pageIdentifier": "3",
                                    "type": "picker",
                                    "nextPageIdentifier": "4",
                                    "selectedItemIndex": 2,
                                    "subtitle": "Select Your Preferred Resolution",
                                    "items": [
                                        {
                                            "title": "Refund",
                                            "value": "refund",
                                            "identifier": "401"
                                        },
                                        {
                                            "title": "Replace",
                                            "value": "replace",
                                            "identifier": "402"
                                        }
                                    ]
                                },
                                {
                                    "pageIdentifier": "4",
                                    "type": "datePicker",
                                    "title": "Delivery Date",
                                    "subtitle": "When did you receive the product?",
                                    "nextPageIdentifier": "5",
                                    "hintText": "Select the date of delivery",
                                    "options": {
                                        "startDate": "01/22/2022",
                                        "maximumDate": "09/21/2022",
                                        "minimumDate": "01/01/2020",
                                        "dateFormat": "",
                                        "labelText": ""
                                    }
                                },
                                {
                                    "pageIdentifier": "5",
                                    "type": "input",
                                    "title": "Additional Details",
                                    "subtitle": "Please provide additional details if any",
                                    "options": {
                                        "required": false,
                                        "inputType": "multiline",
                                        "maximumCharacterCount": 500,
                                        "keyboardType": "UIKeyboardTypeEmailAddress",
                                        "placeholder": ""
                                    },
                                    "submitForm": true
                                }
                            ]
                        }
                    },
                    "images": [
                        {
                            "url": "https://media.croma.com/image/upload/v1663261950/Croma%20Assets/Small%20Appliances/Vacuum%20Cleaners/Images/259150_qs58bu.png",
                            "identifier": "vimg1"
                        },
                        {
                            "url": "https://media.croma.com/image/upload/v1632142476/Croma%20Assets/Small%20Appliances/Fryers%20and%20Grills/Images/243342_osqmdr.png",
                            "identifier": "vimg2"
                        },
                        {
                            "url": "https://res.cloudinary.com/jerrick/image/upload/f_jpg,fl_progressive,q_auto,w_1024/609a695d49932b001dce1ce5.jpg",
                            "identifier": "vimg3"
                        }
                    ]
                },
                "receivedMessage": {
                    "title": "Raise a complaint",
                    "subtitle": "Please fill the form to raise your complaint",
                    "style": "",
                    "imageIdentifier": "vimg3"
                },
                "replyMessage": {
                    "title": "You've successfully submitted the form",
                    "subtitle": "Thanks for your patience. You'll hear from us shortly",
                    "style": "",
                    "imageIdentifier": "vimg3"
                }
            }
        }
    },
    "destination": [
        {
            "abcUserId": [
                "urn:mbid:AQAAY1cYZy/EMyGTtdo8Hn5/hmvhF9EAzi0briUvglmQ2T4OGaIUXqK/BV+bUNosaolxurhgVhyzPn24nIb6bHAlajJeNfHlQNENNL2m6zCOxBRz5bvVH6JoUmPOGCh1bFOHjF1WOQZd+jS7jG+Zh78clXae8D8="
            ]
        }
    ]
}
{
    "type": "interactive",
    "interactiveData": {
        "appIcon":"<app icon URL>",
        "appId": "<app - store - id>",
        "appName": "Name of the App",
        "bid": "com.apple.messages.MSMessageExtensionBalloonPlugin:{team-id}:{ext-bundle-id}",
        "URL": "?data=passed-to-app&data2=more-data-passed-to-app",
        "sessionIdentifier": "uuid-for-this-interaction",
        "receivedMessage": {
            "title": "Title of Bubble",
            "subtitle": "Subtitle to be displayed under title",
            "imageTitle": "Title of image attachment",
            "imageSubtitle": "Subtitle of the image attachment.",
            "secondarySubtitle": "Title that is aligned right",
            "tertiarySubtitle": "Subtitle that is aligned right"
        }
    },
    "sourceId": "",
    "destinationId": "",
    "v": 1,
    "id": "d2f99c0e-f64c-4c3b-abbf-4a8567891ef5"
}
{
  "v": 1,
  "sourceId": "<sourceId>",
  "destinationId": "<destinationId>",
  "type": "interactive",
  "locale": "en_us",
  "interactiveData": {
    "bid": "com.apple.messages.MSMessageExtensionBalloonPlugin:0000000000:com.apple.icloud.apps.messages.business.extension",
    "data": {
      "version": "2.0",
      "requestIdentifier": "f8ad656-12a0-4fc9-a28d-22d103a0ae5d",
      "authenticate": {
        "oauth2": {
          "state": "3D138r1234ru3e1%26ABCDE+jbFom1SW+wCRR2yq3eh+k0VtLQrTRnVPYF9V2fQ5LM5c53uamshW1DYOF2d+jnENvo5c1sV+UWvjV2+rmGwJ+q2GsvPziBDsgw+Jps7YjbvqwtB+SVdLV2EJC4H0l3cVj8tMuEC0gSw3lGeRP4z+QhhPQ=",
          "responseType": "code",
          "scope": ["r_liteprofile"],
          "redirectURI" : "https://example.com/auth/linkedin/callback"
        }
      }
    },
    "receivedMessage": {
      "title": "Lets Sign In"
    },
    "replyMessage": {
      "title": "Sign In Completed"
    }
  }
}

Request Payload
The type of interactive message that initiates the experience is dynamic.

ParameterMandatoryDescription
versionYesShould be 1.1 or the specified value when the feature launches.
templateYesType is 'messageForms'. Tells the client which template to use to render the view.
dataYesPlace all the data in this field.

Data Dictionary Objects

ObjectParameter with in the ObjectMandatoryDescription
versionJSON ObjectShown at the start of the form. When using splash, ensure the appropriate fields listed below display:
headerNoIf set, it displays in bold the title on the page underneath the image.
splashtextNoUse this to display the body copy for the page.
buttonTitleYesText on the button shown on the page. If buttonTitle is missing then this view doesn't display and continues onto the first module.
imageIdentifierNoImage to be shown at the top of the view.
startPageIdentifierYesIdentifier for the starting page of the form. Must match one of the string identifiers for the configured pages. See pageIdentifier under pages below.
privateNoDefaults to false. Boolean value indicates whether to mark the response as private. If value is true, the response object contains this property (interactiveData > data > dynamic > private).
showSummaryNoDefaults to false. If set to true then it shows the summary of all the selections made within the form.
pagesArray of ObjectYesAn array of different pages to be shown in the form. Every page object has following common objects.
pageIdentifierYesA unique identifier, as a string, for the page being shown, that is less than 20 characters in length. Do not reuse. Ex: "firstNamePage" or "0001".
typeYesUse one of the following values: select, picker, datePicker, or input.
titleIf set this displays the title in bold on the page.
subtitleYesUse this object to display the question for the page.
nextPageIdentifierYesExcept for single select option page, where you specify the nextPageIdentifier within each of the item objects. If a page does not have a nextPageIdentifier set on it, the client assumes the current page to be the final page and proceeds to send or provides a summary page based on the data. This is a unique page identifier to show the next page.
submitFormNoA Bool value placed on the pages to denote the end page of the form. Since multiple pages can act as an end page, this object can be set on multiple pages.

The supported page types are as mentioned in the “Types of Pages“ section of the link: https://register.apple.com/resources/messages/msp-rest-api/type-interactive#types-of-pages

ObjectParameter with in the ObjectMandatoryDescription
select
multipleSelectionNoA Bool value that defaults to false or singleSelect. Set to true to enable multipleSelection on the page.
itemsNoAn array of objects defining the user experience.
title - Localized string value for display.
value- A string value of the object itself.
identifier-A unique identifier for the item.
imageidentifier- string containing the image identifier, from the imageItem dictionary. For more information about sending an image, see ImageItem dictionary.
nextPageIdentifier-A unique page identifier to show the next page. Set this value only when multipleSelection is not defined or set to false.
picker
pickerTitleA string value representing optional text shown next to the picker text field. This value defaults to an empty string. When empty the picker text field centers to the page
selectedItemIndexA zero-indexed number identifying the item in the picker wheel should be selected by default. Defaults to item at index 0.
itemsAn array of objects defining the user experience.
-title: Localized string value for display.

-value: A string value of the object itself.

-identifier: A unique identifier for the item.
datePicker
hintTextA string representing optional text to give the user more input context that displays below the Date field.
optionsDictionary containing optional values for the Date Picker element.-

dateFormat: A string representing the date format on the page. Defaults to MM/dd/yyyy. Unless this property is explicitly set, all of the date properties are defined using this format. For format string specifications see: Use Format Strings to Specify Custom Formats.-startDate: A string representing the date displayed by the date picker. Defaults to current date.

-maximumDate: A string representing the maximum date that a date picker can show. Defaults to current date.
-minimumDate: A string representing the minimum date that a date picker can show.-labelText: A string representing the text string to be shown next to date field. Defaults to text 'Date'.
dateFormatA string representing the date format on the page. Defaults to MM/dd/yyyy. Unless this property is explicitly set, all of the date properties are defined using this format. For format string specifications see: Use Format Strings to Specify Custom Formats.
startDateA string representing the date displayed by the date picker. Defaults to current date.
maximumDateA string representing the maximum date that a date picker can show. Defaults to current date.
minimumDateA string representing the minimum date that a date picker can show.
labelTextA string representing the text string to be shown next to date field. Defaults to text 'Date'.
inputhintTextA string representing optional text to give the user more input context that displays below the Input field.
optionsDictionary containing optional values for the input field.
regex: A string representing a JSON encoded regular expression (regex) string to limit the type of input for input field to use. An example is when you want to limit input to only have proper decimal values provide a regex string: ^\d*\.?\d?\d?$. JSON encode all regex strings
placeholder: A text string used when there is no other text in the input text field. Default value are Required or Optional.
required: A Boolean value that defaults to false. When set to true, the next button on page is disabled until the user provides input.
inputType: A string value that defaults to singleline. Other values are multiline or singleline.
labelText: A string value representing a text label shown to identify the input field. This value defaults to an empty string. Only applies to inputType : singleline.
prefixText: A string value representing optional text shown next to the text field. This value defaults to an empty string. For example, you can set this value to denote the $ character for the field. Only applies to inputType : singleline.
maximumCharacterCount: An integer value representing the field size in characters for singleline and multiline. The field size defaults to 30 characters for singleline and 300 characters for multiline.
keyboardType: Optional string value. Type of keyboard to be shown. Possible values:e
default: Default value. Specifies the default keyboard for the current input method.
asciiCapable: Specifies a keyboard that displays standard ASCII characters.
numbersAndPunctuation: Specifies the numbers and punctuation keyboard.
URL: Specifies a keyboard optimized for URL entry. This keyboard type prominently features the period (.), forward slash (/) characters, and the .com string.
numberPad: Specifies a numeric keypad designed for PIN entry. This keyboard type prominently features the numbers 0 through 9. This keyboard type does not support autocapitalization.
phonePad: Specifies a keypad designed for entering telephone numbers. This keyboard type prominently features the numbers 0 through 9 and the asterisk (*) and hash tag (#) characters.
namePhonePad: Specifies a keypad designed for entering a person’s name or phone number. This keyboard type does not support auto-capitalization.
emailAddress: Specifies a keyboard optimized for entering email addresses. This keyboard type prominently features the at (@), period (.), and space characters.
decimalPad: Specifies a keyboard with numbers and a decimal point.
webSearch: Specifies a keyboard optimized for web search terms and URL entry. This keyboard type prominently features the space and period (.) characters.
textContentType: A string value representing the keyboard and system information about the expected semantic meaning for the content that users enter. Supported values are name, namePrefix, givenName, middleName, familyName, nameSuffix, nickname, jobTitle, organizationName, location, fullStreetAddress, streetAddressLine1, streetAddressLine2, addressCity, addressState, addressCityAndState, sublocality, countryName, postalCode, telephoneNumber, emailAddress, URL, creditCardNumber, username, password, newPassword, and oneTimeCode. For a full description of each supported value, see UITextContentType on Apple Developer.

Provides a unique user experience with custom interactive messages.iMessage app is one of the interactive type messages. It’s also referred to as CustomInteractiveData. In addition to the keys from the BaseInteractiveMessage dictionary, the message can also include the keys from the CustomInteractiveData dictionary.

iMessage App

ParameterMandatoryDescription
appIconNoIt’ll be an image URL, which we will convert to base64-encoded string. URL validation should be in place. Only .png files are accepted
appIdyesThe App Store identifier of the iMessage app.
appNameYesThe name of the iMessage app.
receivedMessageYesA dictionary with information telling the Messages app what content and how to display it in the received message bubble. This object / dictionary is same as for any other interactive message type
replyMessageYesA dictionary with information telling the Messages app what and how to display it in the reply message bubble. This object / dictionary is same as for any other interactive message type
URLYesA URL string containing data that the Messages app sends to the iMessage app.
useLiveLayoutNoA Boolean that determines whether the Messages app should use Live Layout. The default is true. Default: trueo

Provides an easy and secure way for customers to buy goods and services through Messages for Business using Apple Pay. When a business asks for payment from a customer who is purchasing goods and services through Messages for Business, the customer can use Apple Pay to make the payment.

InteractiveData Properties

The New Authentication Message is an Interactive Message Type, which has the following properties. See Common Specifications for interactive messages types

InteractiveData Dictionary

ParametersMandatoryDescription
bidYescom.apple.messages.MSMessageExtensionBalloonPlugin:0000000000:
com.apple.icloud.apps.messages.business.extension
dataYes A collection of name and values used for interactive message types.
receivedMessageYesA dictionary with information telling the Messages app how and what content to display the received message bubble. See ReceivedMessage.
replyMessageYesA dictionary with information telling the Messages app how and what to display in the reply message bubble. See ReplyMessage.

InteractiveData.Data Dictionary

ParametersMandatoryDescription
imagesAn array of image dictionaries.
requestIdentifierYesAn identifier for the authentication request.
versionYesA numerical version number of the message extension schema. Set 2.0 for the New Authentication Message.
authenticateYesAn array object to construct the authorization URL.

InteractiveData.Data.Authenticate Dictionary

ParametersMandatoryDescription
oauth2YesA dictionary that describes the authentication request.

Data.Authenticate.Oauth2 Dictionary

ParametersMandatoryDescription
responseTypeYesA string indicating the type of authentication request. Set code for authorization flow.
scopeYesAn array of scope items that specifies the scope of the request.This dictionary entry gives the exact fields of data that the authentication service provides to the client requesting the authentication.
stateYesA string indicating the state of the authentication request.
redirectURIYesA string representing the redirect URL that the OAuth provider redirects the user.
additionalParametersNoA string value that you can add on the authorization URL query parameter.

The typing indicator is used to let the customer know the business agent started or ended typing.