Overview
The RCS Experience Schema is a JSON Schema (draft-07) specification that defines the complete structure of an RCS conversational experience. An experience describes how a messaging agent responds to user input: which workflows are triggered by which intents, what messages are sent, how user data is captured, and how the conversation branches based on conditions.
Scope
This specification covers:
The root Experience object and its required properties
Workflow definition, intent matching, keyword recognition, and expression configuration
All Action types: message sending, HTTP requests, user-input capture, flow control, attribute assignment, and settings updates
Message variants: text, media, buttons, quick replies, carousels, lists, and rich cards
Condition and Operator structures for conditional action execution
Channel-specific constraints and compatibility rules
This specification does not cover:
Authentication or authorization for the nativeMsg API
How experiences are deployed or published to a channel
Webhook configuration or inbound event formats
AI model configuration or NLU training pipelines
Analytics, reporting, or conversation history APIs
Normative Language
This documentation uses RFC 2119 terminology throughout all normative sections.
MUST
Absolute requirement. Violations produce invalid experiences.
MUST NOT
Absolute prohibition. Violations produce invalid experiences.
SHOULD
Recommended. Non-conformance requires justification.
SHOULD NOT
Not recommended. Non-conformance requires justification.
MAY
Optional. Permitted but not required.
Normative requirements derive directly from the JSON Schema definition. Informative notes, tips, and implementation guidance are marked with
blocks.
What You Can Build
An experience built with this schema can:
Route conversations — Match user messages to workflows by intent name, keyword, or natural language expression
Send rich messages — Plain text, images, videos, interactive buttons, quick replies, carousels, lists, and RCS rich cards
Capture user input — Collect text, numbers, dates, locations, and files and store them as named attributes
Call external APIs — Make HTTP requests during a conversation and map response data into attributes
Branch conditionally — Execute different actions based on attribute values, channel type, tags, and device platform
Assign metadata — Tag conversations, set attributes, and update experience settings at runtime
Send notifications — Dispatch internal notes or emails as part of a workflow
Documentation Organization
Minimal working example, field annotations, and schema validation
Normative definitions of all core terms and a message-flow diagram
Root object specification
Workflow, Intent, Keyword, Expression specifications
All action types with complete property tables
Message variants, buttons, quick replies, carousels, rich cards
Condition, Operator, and comparison semantics
Validate and deploy an experience in 7 programming languages
Implementation cookbook: 8 complete recipes
Validation error reference and debugging checklist
Schema Identity
$schema
http://json-schema.org/draft-07/schema#
$id
https://docs.nativemsg.com/schemas/rcs-experience-schema-1-0-0.json
Root type
object
Required root properties
name, workflows
Minimal Valid Experience
The following is the smallest syntactically valid experience. It contains one workflow, one intent, and one action that sends a text message.
For a fully annotated version of this example, see Quick Start.
Last updated
Was this helpful?

