The Enterprise Communications API can send multi-part messages to any channel. You can add images, files, and any other MIME type attachment to your messages.
Create a multi-part message
You don’t need to specify a body
property in your call to the API, as you specify the message content using the messageParts
property. The messageParts
property should contain an array of the parts you want to use to create your message.
Choose your message content source
The API uses either a
body
property ormessageParts
property to create your message content but not both. Any custom bodies that have been defined override the message parts for that channel.
Part 1: Text for the message
The first part in your array is used for the text in your message, and so is usually the MIME type text/plain. It can be text/html, but this only works with channels that support HTML.
Additional parts
You can add any number of additional parts to your call of any valid MIME type; common uses include adding images and files. The data for the parts can be defined either inline in the data
property or in a URL in the url
property.
If you have large files we recommend using the URL option and, if necessary, uploading the files to our content hosting service to obtain a URL for accessing the file.
Attachments using URLs
When attaching a file using a URL in the message part, you must ensure that the following properties are populated and no others, as we calculate the name and size from the file at the URL:
- type
- url
Attachments using Base64
When attaching a file using a Base64 data string in the message part, you must ensure the following properties are populated and no others, so we’re able to understand what the file should look like:
- name
- type
- data
- size (Optional)
messageParts structure
The messageParts property is an array of messagePart as defined below:
messagePart
Property | Type | Description |
---|---|---|
name * | string | The name of your part, usually the file name |
type * | string | The MIME type for the part, for example, image/png. |
channels | array of string | If specified, this message part is only applied to the list of channels in this array. This is a list of channel identifier strings, for example, SMS, WhatsApp. |
url | string | The URL to the file data. If this isn't specified then the data property must be specified. |
data | string | The base64 encoded data for the file. If this isn't specified then the url property must be specified. |
size | int | The size in bytes of the data for the message part. This is optional. |
Choose URL or base64 data
You must choose to get your file data from either a URL or inline using base64 encoded data, but not both.
Examples
{
"title": "Your order has been dispatched",
"to": {
"email": "[email protected]"
},
"rules": [
"email"
],
"messageParts": [
{
"name": "Body html",
"type": "text/html",
"data": "<h2>Item Repaired</h2><p>Your return number: <b>ABC1245</b> has been repaired and is being retuned to you</p>"
},
{
"type": "image/png",
"url": "http://cdn.dnky.co/3rdparty/comapi/images/laptop.png"
}
],
"metadata": {
"data": "My correlation data"
}
}
{
"title": "Your order has been dispatched",
"to": {
"email": "[email protected]"
},
"rules": [
"email"
],
"messageParts": [
{
"name": "Body html",
"type": "text/html",
"data": "<h2>Item Repaired</h2><p>Your return number: <b>ABC1245</b> has been repaired and is being retuned to you</p>"
},
{
"name": "image.png",
"type": "image/png",
"data": "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"
}
],
"metadata": {
"data": "My correlation data"
}
}
{
"title": "Your order has been dispatched",
"to": {
"phoneNumber": "447123123123"
},
"rules": [
"sms"
],
"messageParts": [
{
"name": "Body text",
"type": "text/plain",
"data": "Your order: ABC1245 has been dispatched."
},
{
"type": "image/png",
"url": "http://cdn.dnky.co/3rdparty/comapi/images/laptop.png"
}
],
"metadata": {
"data": "My correlation data"
}
}
{
"title": "Your order has been dispatched",
"to": {
"phoneNumber": "447123123123"
},
"rules": [
"whatsApp",
"sms"
],
"messageParts": [
{
"channels": [
"whatsApp"
],
"type": "whatsapp/hsm",
"data": {
"namespace": "ce0464f9_3d87_fb42_b0d7_d7651ab3337a",
"templateName": "dispatch_confirmation",
"languageCode": "en",
"parameters": [
{
"default": "{{profile.forename}}"
},
{
"default": "1234"
}
]
}
},
{
"channels": [
"sms"
],
"name": "Body text",
"type": "text/plain",
"data": "Your order: ABC1245 has been dispatched."
},
{
"channels": [
"sms"
],
"type": "image/png",
"url": "http://cdn.dnky.co/3rdparty/comapi/images/laptop.png"
}
],
"metadata": {
"data": "My correlation data"
}
}