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

circle-info

This documentation uses RFC 2119 terminology throughout all normative sections.

Keyword
Meaning

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

Section
Contents

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

Field
Value

$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?