Channel Compatibility

This guide defines the normative capability matrix across nativeMsg-supported channel types, provides channel identifier reference strings, and specifies the rules for designing experiences that degrade gracefully across channels.

Channel Identifier Strings

The following strings are used in the action channel property and the condition channelTypes field.

Identifier
Channel Type
Description

rcs

Rich Communication Services

RCS Business Messaging over the native Android messaging app

dsc

DSC

Direct-to-consumer messaging channel with rich card support

dlc

DLC

10DLC SMS/MMS messaging (limited formatting)

circle-info

Channel identifier strings are case-sensitive. "RCS" and "rcs" are not equivalent in condition or action channel fields.

Feature × Channel Capability Matrix

The table below lists every schema feature and its support status per channel. Where a feature is supported, the exact maximum or constraint is stated. Where a feature is unsupported, the degradation behavior is noted.

Feature
RCS
DSC
DLC

Text message

✓ Max 3072 chars

✓ Max 3072 chars

✓ Max 160 chars per SMS segment; longer messages split into multiple segments

Message title

✓ Max 200 chars

✓ Max 200 chars

✗ Ignored

Media — image

✓ JPEG, PNG, GIF, WebP

✓ JPEG, PNG, GIF

✓ MMS only; file size limits apply per carrier

Media — video

✓ MP4, WebM

✓ MP4

✗ Not supported

Media — audio

✓ MP3, OGG, WAV

✗ Not supported

✗ Not supported

Media — file

✓ PDF and common document types

✓ PDF

✗ Not supported

Buttons — total per message

Max 4

Max 4

✗ Not supported

Button type: weburl

Button type: postback

Button type: call

Button type: text

Button type: location

Button type: viewLocation

Button type: calendar

Button type: datetime

Button title max

25 chars

25 chars

N/A

Button payload max

1000 chars

1000 chars

N/A

Quick replies

✓ Max 13

✓ Max 13

✗ Not supported

Quick reply title max

25 chars

25 chars

N/A

Quick reply — image

✓ (imageUrl)

✓ (imageUrl)

Quick reply type: location

Quick reply type: datetime

Quick reply type: calendar

Carousel

✓ Min 2, Max 10 cards

✓ Min 2, Max 10 cards

✗ Not supported

List

✓ Min 2, Max 4 items

✓ Min 2, Max 4 items

✗ Not supported

Rich card (standalone)

✗ Not supported

Rich card — VERTICAL orientation

Rich card — HORIZONTAL orientation

Rich card title max

200 chars

200 chars

N/A

Rich card description max

2000 chars

2000 chars

N/A

Rich card buttons max

4

4

N/A

mediaHeight: SHORT

mediaHeight: MEDIUM

mediaHeight: TALL

imageAlignment: LEFT / RIGHT

✓ (HORIZONTAL only)

✓ (HORIZONTAL only)

waitFor: text

waitFor: number

waitFor: datetime

✓ (typed by user)

waitFor: coordinates

waitFor: file

waitFor: quick reply

waitFor: multi select

send.email

send.request

send.note

send.rss

assignTags

assignAttributes

updateSettings.conversation.priority

updateSettings.rcsExperience.enabled

subscribe

Webview (webviewViewMode)

✓ full, half, tall

✓ full, half, tall

circle-exclamation

Designing for Cross-Channel Compatibility

Normative Rules

  1. Channel-restrict rich actions. Any action that uses a feature not supported on all target channels MUST include either a channel property (restricting execution to the capable channel) or a conditions array with a channelTypes filter.

  2. Always provide a text fallback. For every rich-content action (carousel, list, richCard, buttons), a parallel action restricted to non-rich channels MUST be defined, sending equivalent information as plain text.

  3. Do not rely on button-triggered execute on DLC. On DLC channels, buttons are not rendered and their execute callbacks never fire. All workflow branching on DLC MUST be driven by user-typed text or keyword matching.

  4. Quick replies MUST NOT be the only navigation mechanism. Any workflow that relies on quick reply selection for progression MUST include a waitFor step accepting "text" in addition to "quick reply", so text-only channel users can respond.

  5. Test DLC text length. Messages intended for DLC MUST be designed to fit within 160 characters where possible, or explicitly planned for multi-segment delivery. Attribute placeholder substitution happens before length evaluation; account for the expanded text length.

Channel-Restriction Pattern

Use the channel property on actions to serve channel-appropriate content from a single workflow:

Condition-Based Channel Routing

Use conditions with channelTypes when you need to branch execution logic (not just content) by channel:

RSS Feed Channel Restriction

RSS feed rendering (send.rss) is only supported on RCS and DSC. Always restrict this action and provide a fallback:

Last updated

Was this helpful?