Skip to contentSkip to navigationSkip to topbar
On this page

twilio/media


Twilio/media is used to send file attachments, or to send long text via MMS in the US and Canada. As such, the twilio/media type must contain at least ONE of text or media content. The total size of the text and media attachments must be less than 5MB (16MB for WhatsApp).

(information)

Info

If you plan to submit this template to WhatsApp for approval, a valid media sample is required. Static media urls should resolve to publicly hosted media files. Variable media urls should include a valid media URL suffix in the variable declaration.

Only one type of media can be sent per approved variable WhatsApp media template. WhatsApp classifies approved templates into 1 of 3 types of media headers (Image, Video, Document) based on the sample that was submitted. Once the template has been approved another type of media header cannot be sent using the template.

Ex. If a template is approved with an image then a video cannot be sent using the same template.

During a 24-hour user-initiated session, template approval is not required by WhatsApp for twilio/media templates.

For out of session (business-initiated) media templates, an additional approval step is required during the Beta. In the Media field of the template you create, provide the URL of the publicly hosted file.

If you are using a media template with a variable. Please submit a sample path of a publicly hosted image URL in the variable array. The combined URL must contain the file type. The combined URL must resolve to a publicly hosted file.

Example:

"media": ["https://twilio-cms-prod.s3.amazonaws.com/{{1}}"] would include a path sample in the variables definition. "variables": {"1": "images/library-logo-resource2x.width-1000.png"}

(warning)

Warning

Twilio/media templates can be sent via WhatsApp for out of session messages with variables. If the template's body starts or ends with a variable or has two variables next to each other, the template will not be approved by WhatsApp without a sample variable. For additional information about variables Using Variables with Content Templates.


Supported Channels

supported-channels page anchor

MMS, WhatsApp, Facebook Messenger


Content API - message preview.

body:

  • Type: string
  • Required: no (only required to get template approved by WA)
  • Variable Support: yes
  • Description: The text of the message you want to send. Maximum 1,600 characters. Each variable counts as 1 character at content creation time.

media:

  • Type: string[]
  • Required: yes
  • Variable Support: yes
  • Description: The URL of the media you want to send. Variables are only supported after the domain. For example: www.twilio.com/images/{{1}}. Supported and Accepted media types can be referenced here (MMS) and here (WhatsApp).
Create a Media TemplateLink to code sample: Create a Media Template
1
// Install the C# / .NET helper library from twilio.com/docs/csharp/install
2
3
using System;
4
using Twilio;
5
using Twilio.Rest.Content.V1;
6
7
TwilioClient.Init(accountSid, authToken);
8
9
// define the twilio/media type
10
var twilioMedia = new TwilioMedia.Builder();
11
twilioMedia.WithBody("Thank you for your order {{1}}");
12
var media1 = new Media.Builder()
13
.WithMedia("https://twilio-cms-prod.s3.amazonaws.com/images/library-logo-resource2x.width-1000.png")
14
.Build();
15
twilioMedia.WithMedia(new List<Media>() { media1 });
16
17
// define all the content types to be part of the template
18
var types = new Types.Builder();
19
types.WithTwilioMedia(twilioMedia.Build());
20
21
// build the create request object
22
var contentCreateRequest = new ContentCreateRequest.Builder();
23
contentCreateRequest.WithTypes(types.Build());
24
contentCreateRequest.WithLanguage("en");
25
contentCreateRequest.WithFriendlyName("media_template");
26
contentCreateRequest.WithVariables(new Dictionary<string, string>() { {"1", "OrderNumber"} });
27
28
// create the twilio template
29
var contentTemplate = await CreateAsync(contentCreateRequest.Build());
30
31
Console.WriteLine($"Created Twilio Content Template SID: {contentTemplate.Sid}");

Output

1
{
2
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
3
"date_created": "2022-08-29T15:12:22Z",
4
"date_updated": "2022-08-29T15:12:22Z",
5
"friendly_name": "media_template",
6
"language": "en",
7
"links": {
8
"approval_create": "https://content.twilio.com/v1/Content/HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/ApprovalRequests/whatsapp",
9
"approval_fetch": "https://content.twilio.com/v1/Content/HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/ApprovalRequests"
10
},
11
"sid": "HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
12
"types": {
13
"twilio/media": {
14
"body": "Thank you for your order {{1}}",
15
"media": [
16
"https://twilio-cms-prod.s3.amazonaws.com/images/library-logo-resource2x.width-1000.png"
17
]
18
}
19
},
20
"url": "https://content.twilio.com/v1/Content/HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
21
"variables": {
22
"1": "OrderNumber"
23
}
24
}

Need some help?

Terms of service

Copyright © 2024 Twilio Inc.