---
title: "SSML reference for the Say node"
slug: "ssml-reference-for-the-say-node"
updated: 2026-07-23T10:06:34Z
published: 2026-07-23T10:06:34Z
canonical: "help.8x8.com/ssml-reference-for-the-say-node"
---
> ## Documentation Index
> Fetch the complete documentation index at: https://help.8x8.com/llms.txt
> Use this file to discover all available pages before exploring further.
# SSML reference for the Say node
This reference page lists supported Speech Synthesis Markup Language (SSML) tags, compatibility notes, and troubleshooting guidance.
Most users can use the built-in **Speech Editor** controls for common text-to-speech needs.
For advanced scenarios, you can manually add supported SSML tags to customize speech behavior.
> [!WARNING]
> **Important!**:
>
> All SSML content must be wrapped in: ... tags.
For detailed configuration steps and SSML reference guidance, see [Control IVR Speech in the Say Node with SSML Support](/documentation/docs/control-ivr-speech-in-the-say-node-with-ssml-support).
## SSML tags supported in the Say node
This section lists all supported SSML tags, including those that are manual-only.
You do not have to use every tag.
### Core and common SSML tags
Commonly supported SSML tags are typically sufficient for users to control speech playback without requiring advanced configuration.
| Tag | Purpose | Notes | Example |
| --- | --- | --- | --- |
| `<speak>` | Wraps the message | Required when using SSML | `<speak>Thank you for calling support.</speak>` |
| `<break>` | Adds pauses | Time or strength | `<break time="500ms"/>` |
| `<prosody> ` | Controls speed, pitch, volume | Commonly used | `<prosody rate="slow">account number</prosody> ` |
| `<say-as> ` | Formats structured data | Dates, time, currency, phones, ordinal | `<say-as interpret-as="telephone">1-800-555-1234</say-as>` |
| `<emphasis>` | Emphasizes words | Support varies | `<emphasis level="moderate">important</emphasis>` |
| `<p> / <s>` | Paragraph/sentence flow | Long prompts | `<p>Welcome to our service.</p>` |
| ` <sub>` | Speaks an alias | Acronyms, brands | `<sub alias="ACME">A C M E</sub>` |
### Advanced SSML tags
This section lists SSML tags that are supported only through manual entry..
| Tag | Purpose | Notes | Example |
| --- | --- | --- | --- |
| `<phoneme>` | Forces pronunciation | IPA / X-SAMPA | `<phoneme alphabet="ipa" ph="ˈæk.mi">ACME</phoneme>` |
| `<lang>` | Switches language | Provider dependent | `<lang xml:lang="es-ES">Gracias por llamar</lang>` |
| `<voice> ` | Switches voice | Voice-tier dependent | `<voice name="en-US-Wavenet-D">Please wait</voice> ` |
| `<audio> ` | Plays audio file | Public URL required | `<audio src="https://example.com/hold-music.mp3"/>` |
| `<mark>` | Speech markers | Runtime dependent | `<mark name="menu-start"/>` |
| `<w>` | Part-of-speech hint | Advanced usage | `<w role="verb">record</w>` |
## Voice compatibility
The Speech Editor automatically validates any SSML entered in the text field. If validation fails:
- A **Validation Failed** status appears.
- Detailed error messages are shown below the editor.
- The **Generate Audio Preview** option is disabled until all issues are resolved.
- **Saving (OK)** remains available, but validation errors should be corrected to ensure proper speech output.
> [!WARNING]
> **Important!**:
>
> All SSML content must be wrapped in tags. When using SSML tags — such as , , or — the entire message must be enclosed in: xml ...
If SSML tags are used without the `<speak>` wrapper, validation will fail, and audio preview will be unavailable.
The table below lists the common SSML errors, along with examples and guidance on how to fix them.
| Validation message or behavior | What it means | Example | How to fix it |
| --- | --- | --- | --- |
| “Tags detected. For SSML, surround the text with `<speak>` tags.” | SSML tags were used, but the message is not wrapped in `<speak>...</speak>` | `<break time="500ms"/> Thank you for calling.` | Wrap the entire message: `<speak><break time="500ms"/> Thank you for calling.</speak>`. |
| “Mismatched closing tag: `</speak>` Expected `</prosody>`” | A tag was closed in the wrong order. | `<speak>Hi <prosody rate="0.5">customer</speak>` | Close inner tags first: `<speak>Hi <prosody rate="0.5">customer</prosody></speak>` |
| “Unclosed tags: `<speak>`, `<prosody>`” | One or more opening tags are missing closing tags. | `<speak>Hello <prosody rate="slow">customer` | Add the missing closing tags: `</prosody></speak>.`. |
| “The element type ‘prosody’ must be terminated by the matching end-tag `</prosody>`.” | A required closing tag is missing. | `<prosody rate="slow">important message` | Add the matching closing tag: `</prosody>`. |
| **Generate Audio Preview** is disabled | Validation failed due to SSML errors. | Any invalid SSML structure | Resolve all validation errors. Preview becomes available once validation passes. |
| SSML has no audible effect | The selected voice does not support the SSML feature used. | `<emphasis level="strong">Important</emphasis>` | Try a different voice or remove the unsupported tag. |
### Quick checklist before previewing
**Before generating an audio preview, make sure that:**
- All SSML is wrapped in `<speak>...</speak>` tags.
- Every opening tag has a matching closing tag.
- Tags are nested correctly (inner tags must close before outer tags).
- The selected voice supports the SSML features used.
For detailed configuration steps of a Say node using the Speech Editor, see [Control IVR Speech in the Say Node with SSML Support](/documentation/docs/control-ivr-speech-in-the-say-node-with-ssml-support).