diff --git a/fern/products/call-flow-builder/pages/core/overview.mdx b/fern/products/call-flow-builder/pages/core/overview.mdx
index 984a92d4ba..2802d5d2bd 100644
--- a/fern/products/call-flow-builder/pages/core/overview.mdx
+++ b/fern/products/call-flow-builder/pages/core/overview.mdx
@@ -27,6 +27,12 @@ You can easily add, remove, and rearrange elements in the call flow using the vi
+
+
+Sample topology: **Handle Call** → **Answer Call** → **Gather Input**. Pressing `1` plays a busy message and records voicemail; pressing `2` connects to AI Agent `Ally`; **Unknown** and **No Input** route to another voicemail recording. Both voicemail paths and the AI Agent end at **Hang Up Call**.
+
+
+
Add or remove any element from the call flow by dragging it into the desired location,
and define links between them using the connection lines.
@@ -85,6 +91,11 @@ After creating the call flow, the Call Flow will show up in the list of call flo
+
+
+In the Dashboard, open **Tools** > **Call Flow Builder**, select **Add New**, enter a name, and select **Save**.
+
+
---
@@ -101,6 +112,11 @@ From here, click on the `Edit` option to open the Call Flow Builder page.
+
+
+On the Call Flow list, open the flow's **More Options** menu and select **Edit**.
+
+
#### Add a node
When you first open a new Call Flow, you will see a canvas with a single node:
@@ -124,6 +140,12 @@ You will see an arrow connecting the two nodes, indicating that they are connect
+
+
+Drag a node from the left panel onto the canvas, then drag from an existing node's right-side output connector to the new node's left-side input connector.
+
+
+
---
#### Configure nodes
@@ -139,6 +161,12 @@ For example, the [Play Audio or TTS](/docs/call-flow-builder/reference/play-audi
+
+
+Select a node on the canvas to open its configuration panel and edit its settings.
+
+
+
---
#### Delete a node
@@ -153,3 +181,9 @@ Additionally, you can delete a node if they have configuration options open by c
+
+
+
+Delete a node with the trash icon on the node or **Delete node** in its open configuration panel.
+
+
diff --git a/fern/products/call-flow-builder/pages/core/variables.mdx b/fern/products/call-flow-builder/pages/core/variables.mdx
index bab6a6d77c..c4c54a28d7 100644
--- a/fern/products/call-flow-builder/pages/core/variables.mdx
+++ b/fern/products/call-flow-builder/pages/core/variables.mdx
@@ -46,10 +46,20 @@ but the other values are very useful and can be referenced throughout the whole
#### Variable Example
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Forward to Phone**. Set **To** to the destination number and **From** to `%{call.to}` to present the SignalWire number that received the inbound call.
+
+
+
---
### Request Variables
@@ -117,6 +127,16 @@ A second condition in the same node checks for a 419 area code and forwards the
Condition 1: `%{area_code}==321||%{area_code}==407`
Condition 2: `%{area_code}==419`
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → **Set Variables** (`area_code = %{call.from.slice(2,5)}`) → **Conditions**. Condition 1 (`321` or `407`) forwards to `+15552223333`; Condition 2 (`419`) forwards to `+15553334444`; **Else** forwards to `+15557778888`.
+
+
diff --git a/fern/products/call-flow-builder/pages/core/version.mdx b/fern/products/call-flow-builder/pages/core/version.mdx
index 84dc447238..62f08febae 100644
--- a/fern/products/call-flow-builder/pages/core/version.mdx
+++ b/fern/products/call-flow-builder/pages/core/version.mdx
@@ -14,10 +14,20 @@ and to revert to a previous version if needed.
Once a Call Flow has been created, you can click on the `Version History` button located in the top left corner of the Call Flow Builder interface.
This will open a panel showing all the versions of the call flow, along with a timestamp of when the version was created.
+
+

+
+
+
+
+Select **Version History** in the top-left of the builder to open the version panel and its timestamped entries.
+
+
+
---
## Deploy a new version
@@ -27,10 +37,20 @@ Once you are satisfied with the new version, you can click the `Deploy` button t
When a new version is saved, it will add a new entry to the version history. The name of the
version will be `+1` from the previous version. E.g. `Version 1.0`, `Version 2.0`, `Version 3.0`, etc.
+
+

+
+
+
+
+After editing the draft, select **Deploy** to make it live and add the next numbered entry to Version History.
+
+
+
---
@@ -41,6 +61,16 @@ open the version history panel by clicking the `Version History` button.
Select the version to which you wish to revert.
Click the `Restore` button to confirm.
+
+

+
+
+
+
+
+Open **Version History**, select the desired prior version, and select **Restore**.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/ai_agent.mdx b/fern/products/call-flow-builder/pages/nodes/ai_agent.mdx
index d861332b59..d3898eb295 100644
--- a/fern/products/call-flow-builder/pages/nodes/ai_agent.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/ai_agent.mdx
@@ -23,8 +23,18 @@ Learn more in the [SignalWire AI overview](/docs/platform/ai).
In this example, we will create a simple call flow that connects to an AI agent after the call is answered.
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **AI Agent**. Select the existing `AI Resource` from **AI Agent Name**.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/answer_call.mdx b/fern/products/call-flow-builder/pages/nodes/answer_call.mdx
index 8af08f62af..a82c68de9d 100644
--- a/fern/products/call-flow-builder/pages/nodes/answer_call.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/answer_call.mdx
@@ -14,12 +14,22 @@ This node is not strictly required, as all notes that progress the flow will als
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Answer Call**.
+
+
+
## Node Settings
**None**
diff --git a/fern/products/call-flow-builder/pages/nodes/conditions.mdx b/fern/products/call-flow-builder/pages/nodes/conditions.mdx
index 93695264de..189c09a786 100644
--- a/fern/products/call-flow-builder/pages/nodes/conditions.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/conditions.mdx
@@ -40,8 +40,18 @@ In this example, we immediately hang up calls from specific numbers on our block
All other calls will connect to the main reception number.
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Conditions**. Condition 1 matches a blocked `%{call.from}` number and routes to **Hang Up Call**; Condition 2 matches the VIP number and routes to **Forward to Phone** at `sip:admin@example.com`; **Else** routes to `sip:reception@example.com`.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/execute_swml.mdx b/fern/products/call-flow-builder/pages/nodes/execute_swml.mdx
index 7966300b41..d1ddfa1704 100644
--- a/fern/products/call-flow-builder/pages/nodes/execute_swml.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/execute_swml.mdx
@@ -47,12 +47,22 @@ This play field will be used for TTS (Text-to-Speech) in the current document
and will welcome the user with the `User` parameter and say the `Token` parameter.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Execute SWML**. Configure the remote URL and parameters, then evaluate `%{return_value.return_value} === 1`; the **Else** output goes to **Play Audio or TTS** with “SWML Execute Failed.”
+
+
+
### Execute SWML Node Settings
@@ -171,4 +181,3 @@ if __name__ == "__main__":
-
diff --git a/fern/products/call-flow-builder/pages/nodes/forward_to_phone.mdx b/fern/products/call-flow-builder/pages/nodes/forward_to_phone.mdx
index 742aa4c726..862a10e012 100644
--- a/fern/products/call-flow-builder/pages/nodes/forward_to_phone.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/forward_to_phone.mdx
@@ -98,12 +98,22 @@ phone number, ensuring that the person receiving the forwarded call will see the
If the forward is successful, the call connects directly. If the call fails for any reason (no answer, busy, declined, or error), the flow routes to **Hang Up Call**.
This approach is particularly useful for business scenarios where you want to maintain transparency about who is calling.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Forward to Phone**, with **From** set to `%{call.from}`. **Success** completes the forward; **No Answer**, **Busy**, **Decline**, and **Error** converge on **Hang Up Call**.
+
+
+
### Forward to SIP
@@ -115,12 +125,22 @@ For example:
If the endpoint is unavailable, the flow will follow one of the four failed routes depending on the SIP signaling that is received.
You can give individual actions for each signal, or route them all back into the same node.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Forward to Phone** with **To** set to `sip:alice@example.com`. Route **No Answer**, **Busy**, **Decline**, and **Error** to an unavailable-message **Play Audio or TTS** node; **Success** remains the completed-call path.
+
+
+
---
@@ -130,8 +150,18 @@ You can combine SIP dialing and Phone number dialing in the same node.
The example below is set to `Sequential` dialing, so the sales endpoint will first ring for 20 seconds.
After that, the call will ring the support endpoint for 20 more seconds before finally dialing out to +15552223333.
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → one **Forward to Phone** node configured for **Sequential** dialing: `sip:sales@example.com` for 20 seconds, `sip:support@example.com` for 20 seconds, then `+15552223333` for 45 seconds.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/gather_input.mdx b/fern/products/call-flow-builder/pages/nodes/gather_input.mdx
index 5c37ee246e..10d7ca56d5 100644
--- a/fern/products/call-flow-builder/pages/nodes/gather_input.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/gather_input.mdx
@@ -94,12 +94,22 @@ For every input option you can configure, an output node connection will be crea
You can choose to accept both Speech and DTMF tones with your IVR.
The caller in this example can either press 1 or say “sales” to connect with the sales line.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Gather Input**. Option 1 (press `1` or say `sales`) routes to **Forward to Phone** at `sip:sales@example.com`; Option 2 (press `2` or say `support`) routes to `sip:support@example.com`. **Unknown** and **No Input** remain separate outputs.
+
+
+
### Input with infinite loop prevention
If you plan to loop your “No Input” route, you probably want to disconnect a call if the Gather Input node attempts to loop the call more than 2 times.
@@ -107,12 +117,22 @@ You can do that with a combination of a [Set Variables](/docs/call-flow-builder/
and a [Conditions](/docs/call-flow-builder/reference/conditions) node.
If a caller dials your number and sits on the line in silence, your Flow will disconnect the call after a couple of loops.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Gather Input**. Route **Unknown** through a “could you repeat that?” TTS and back to **Gather Input**. Route **No Input** directly to **Set Variables** (`count = %{count} + 1`), then **Conditions** (`%{count} > 2`). The true branch goes to **Hang Up Call**; **Else** loops through a “didn't hear a response” TTS and back to **Gather Input**.
+
+
+
### Accept any speech option
The “Unknown” route from the Gather Input node can be useful if you want to accept any and all speech recognition from your caller.
@@ -121,10 +141,18 @@ A word or phrase is required in your Option 1 “Or Says” field so that your G
You can route that option to the same flow as the “Unknown” route so all speech options continue the same path.
The variable `%{prompt_value}` can then be used in any node and will contain all speech that was detected.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Gather Input**. Route both **Option 1** and **Unknown** to **Play Audio or TTS** with `You just said %{prompt_value}`, then to **Hang Up Call**. Giving Option 1 an **Or says** value enables speech collection while the **Unknown** path accepts other speech.
+
diff --git a/fern/products/call-flow-builder/pages/nodes/handle_call.mdx b/fern/products/call-flow-builder/pages/nodes/handle_call.mdx
index 2686cee551..92fb079d55 100644
--- a/fern/products/call-flow-builder/pages/nodes/handle_call.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/handle_call.mdx
@@ -21,8 +21,18 @@ The first node connected to the Handle Call node is the starting point of the ca
In the example below, the `Handle Call` node is connected to the `Answer Call` node, which is the starting point of the call flow.
After the call is answered, the call flow continues with the `Play Audio or TTS` node to play a TTS message to the caller.
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Play Audio or TTS**.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/hangup_call.mdx b/fern/products/call-flow-builder/pages/nodes/hangup_call.mdx
index 24c7884451..f2d7a8264f 100644
--- a/fern/products/call-flow-builder/pages/nodes/hangup_call.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/hangup_call.mdx
@@ -15,10 +15,20 @@ This node is not strictly required, as calls will automatically end when the cal
The **Reason** parameter is used for logging purposes and does not change the behavior of the Hang Up Call node.
+
+

+
+
+
+
+Connect the terminal output of a branch to **Hang Up Call** to disconnect it. This example labels the reason **Hang Up**.
+
+
+
## Node Settings
diff --git a/fern/products/call-flow-builder/pages/nodes/play_audio_or_tts.mdx b/fern/products/call-flow-builder/pages/nodes/play_audio_or_tts.mdx
index be287ec7d3..27e75bd5ab 100644
--- a/fern/products/call-flow-builder/pages/nodes/play_audio_or_tts.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/play_audio_or_tts.mdx
@@ -49,6 +49,16 @@ Node options for Play Audio File.
## Example
+
+

+
+
+
+
+
+Configure **Play Audio or TTS** for **Text to Speech**, language **English (US)**, gender **male**, voice `en-US-Standard-A`, and text `Hello, you're calling from %{call.from}`.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/request.mdx b/fern/products/call-flow-builder/pages/nodes/request.mdx
index 4191785eaa..4b739520e7 100644
--- a/fern/products/call-flow-builder/pages/nodes/request.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/request.mdx
@@ -53,10 +53,20 @@ so either use them immediately or store them with a [Set Variables](/docs/call-f
You can test the Request node with [webhook.site](https://webhook.site/#!/).
In the Request node, use the unique URL provided by webhook.site and copy the Body of the example below. You will get a POST to your webhook with details about the incoming call.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Request** (POST to the webhook.site URL with `Inbound call from %{call.from} going to %{call.to}`) → **Forward to Phone**. The Request's **Condition**, **Else**, and **Failure** outputs all continue to the forward.
+
+
+
---
### Route a call based on a request to check time
@@ -68,9 +78,18 @@ You may want your Flow to behave differently depending on the time of day. You c
If the time is between 10am and 8pm, the success condition TTS will play. If a condition is not met, the call will be routed to the `Else` connector, which
will play the TTS node. If the request fails, the call will be routed to the `Failure` connector, which will also play the TTS node.
+
+

+
+
+
+
+Flow topology: **Handle Call** → **Request** (GET timeapi.io with response variables enabled). **Condition 1** for business hours routes to **Play Audio or TTS** (“We are open. Come on in!”); **Else** and **Failure** route to **Play Audio or TTS** (“We're closed”).
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/send_sms.mdx b/fern/products/call-flow-builder/pages/nodes/send_sms.mdx
index ca9cccbb65..6111799619 100644
--- a/fern/products/call-flow-builder/pages/nodes/send_sms.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/send_sms.mdx
@@ -31,16 +31,36 @@ The example below is connected with a Request node that sends a request to a jok
Knowing the parameters of the API response, the node can pull the request’s response with `%{request_response.joke}`.
This example also includes messaging opt-out verbiage since this is important to avoid SMS spam blocks.
+
+

+
+
+
+
+After the joke **Request**, configure **Send SMS** with text `%{request_response.joke} Reply STOP to end`, plus the destination and originating phone numbers.
+
+
+
---
### Send SMS notification as Call Whisper
You might be using Call Flow Builder to forward calls to a personal cell phone. The example below will send an SMS to the specified phone number just before forwarding a call to that same number. This way you’ll receive a text letting you know this is a forwarded call from SignalWire and which original SignalWire number your caller dialed.
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → **Send SMS** → **Forward to Phone**, using the same destination number for the SMS and forward. The message includes `Inbound call from %{call.from} to your SignalWire number %{call.to}`.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/set_variables.mdx b/fern/products/call-flow-builder/pages/nodes/set_variables.mdx
index 8e29e0dff7..05aa7750f0 100644
--- a/fern/products/call-flow-builder/pages/nodes/set_variables.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/set_variables.mdx
@@ -39,7 +39,16 @@ In order to make a new request to a new webhook, the Set Variables node is essen
the second Request node will overwrite the `request_response`.
Your first variables will remain accessible using `%{vars.my_temperature}` and `%{vars.my_location}`.
+
+

+
+
+
+
+Flow topology: the first **Request** node's **Condition**, **Else**, and **Failure** outputs converge on **Set Variables**. It saves `my_temperature = %{request_response.temperature}` and `my_location = %{request_response.location}` before a second **Request** overwrites the response; **Play Audio or TTS** later reads both saved variables.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/start_call_recording.mdx b/fern/products/call-flow-builder/pages/nodes/start_call_recording.mdx
index 79e27e1efd..96a7b0a671 100644
--- a/fern/products/call-flow-builder/pages/nodes/start_call_recording.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/start_call_recording.mdx
@@ -35,6 +35,16 @@ To manually stop the recording, use the [Stop Call Recording](/docs/call-flow-bu
## Example
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Start Call Recording**. The example names the recording `My Recording`, enables stereo and the start beep, uses `#` as a terminator, and saves WAV format.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/stop_call_recording.mdx b/fern/products/call-flow-builder/pages/nodes/stop_call_recording.mdx
index 8c078b2d2a..bcd4f4845e 100644
--- a/fern/products/call-flow-builder/pages/nodes/stop_call_recording.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/stop_call_recording.mdx
@@ -25,6 +25,16 @@ Please note that any later recordings in the Flow will overwrite the `%{record_c
so the Request node should immediately follow this Stop Call Recording node or use
[Set Variables](/docs/call-flow-builder/reference/set-variables) to save this URL for a later request.
+
+

+
+
+
+
+
+Flow topology: **Start Call Recording** (`Sales Call`) → **Forward to Phone**. Its **Success**, **No Answer**, **Busy**, **Decline**, and **Error** outputs all converge on **Stop Call Recording** (`Sales Call`) → **Set Variables**, which stores `%{record_call_url}` as `sales_recording_url`.
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/unset_variables.mdx b/fern/products/call-flow-builder/pages/nodes/unset_variables.mdx
index d82b4027f1..fa27d41787 100644
--- a/fern/products/call-flow-builder/pages/nodes/unset_variables.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/unset_variables.mdx
@@ -21,6 +21,16 @@ You can unset multiple variables in one node by selecting multiple variables fro
In the example below, we answer the call and set a variable `from_number` with the value
of the caller's number. We then play a message to the caller and unset the `from_number` variable.
+
+

+
+
+
+
+
+Flow topology: **Handle Call** → **Answer Call** → **Set Variables** (`from_num = %{call.from}`) → **Play Audio or TTS** (reads `from_num`) → **Unset Variables** (`from_num`).
+
+
diff --git a/fern/products/call-flow-builder/pages/nodes/voicemail_recording.mdx b/fern/products/call-flow-builder/pages/nodes/voicemail_recording.mdx
index aa21b6826b..fd6674b8da 100644
--- a/fern/products/call-flow-builder/pages/nodes/voicemail_recording.mdx
+++ b/fern/products/call-flow-builder/pages/nodes/voicemail_recording.mdx
@@ -51,10 +51,20 @@ For a traditional voicemail experience, we recommend pairing the Voicemail Recor
[Play Audio or TTS](/docs/call-flow-builder/reference/play-audio-or-tts) node and including a beep before recording.
Including a terminator (in this case, a `#` sign) will allow nodes to run after the caller is finished leaving their voicemail.
+
+

+
+
+
+
+Route **Forward to Phone**'s **No Answer**, **Busy**, **Decline**, and **Error** outputs to an unavailable-message **Play Audio or TTS** node → **Voicemail Recording** → a thank-you **Play Audio or TTS** node. Enable the recording beep, use `#` as the terminator, and save WAV format.
+
+
+
---
### Record voicemail and send recording URL as a POST request
@@ -64,10 +74,20 @@ Please note that any later recordings in the Flow will overwrite the `%{record_u
so the Request node should immediately follow this Voicemail Recording node or use
[Set Variables](/docs/call-flow-builder/reference/set-variables) to save this URL for a later request.
+
+

+
+
+
+
+Use the same failed-forward branches for **Play Audio or TTS** → **Voicemail Recording** → **Request**. Configure the Request as POST with a body containing `New voicemail from %{call.from} calling into %{call.to}. Recording URL: %{record_url}`.
+
+
+
---
### Record voicemail and send recording URL as SMS
@@ -76,6 +96,16 @@ You may want to be notified about a new voicemail with an SMS.
You can follow the Voicemail Recording node with a Send SMS node and again access call data and the recording URL with
the `{call.}` and `{record_url}` variables.
+
+

+
+
+
+
+
+Use the same failed-forward branches for **Play Audio or TTS** → **Voicemail Recording** → **Send SMS**. Include `%{call.to}`, `%{call.from}`, and `%{record_url}` in the notification text.
+
+
diff --git a/fern/products/platform/pages/calling/voice/SIP/byoc/index.mdx b/fern/products/platform/pages/calling/voice/SIP/byoc/index.mdx
index 3a07aeeb60..1268545dbc 100644
--- a/fern/products/platform/pages/calling/voice/SIP/byoc/index.mdx
+++ b/fern/products/platform/pages/calling/voice/SIP/byoc/index.mdx
@@ -74,10 +74,20 @@ If you are using a Call Flow to handle incoming calls, you will need to:
In the below example, we have a Call Flow that answers the call and plays a TTS message.
+
+

+
+
+
+
+Example topology: **Handle Call** → **Answer Call** → **Play Audio or TTS**.
+
+
+
---
#### Using Relay
@@ -213,10 +223,20 @@ sections:
To create an outbound call using a Call Flow, you can use the `Forward to Phone` node to dial out to a SIP endpoint:
+
+

+
+
+
+
+Example topology: **Handle Call** → **Forward to Phone**, with **To** set to the SIP endpoint. Route **No Answer**, **Busy**, **Decline**, and **Error** to **Hang Up Call** or another failure-handling node.
+
+
+
#### Using Relay
##### Relay Realtime SDK
diff --git a/fern/products/platform/pages/calling/voice/TTS/google.mdx b/fern/products/platform/pages/calling/voice/TTS/google.mdx
index ef64a5c822..d8fd641775 100644
--- a/fern/products/platform/pages/calling/voice/TTS/google.mdx
+++ b/fern/products/platform/pages/calling/voice/TTS/google.mdx
@@ -177,6 +177,16 @@ await playback.ended();
```
+
+

+
+
+
+
+
+In a **Play Audio or TTS** node, choose **Text to Speech** and select the Google Cloud voice `gcloud.en-US-Neural2-A`.
+
+
diff --git a/fern/products/platform/pages/calling/voice/TTS/polly.mdx b/fern/products/platform/pages/calling/voice/TTS/polly.mdx
index 823c567131..a9d5f149fb 100644
--- a/fern/products/platform/pages/calling/voice/TTS/polly.mdx
+++ b/fern/products/platform/pages/calling/voice/TTS/polly.mdx
@@ -165,7 +165,17 @@ await playback.ended();
```
+
+

+
+
+
+
+
+In a **Play Audio or TTS** node, choose **Text to Speech** and select the Amazon Polly voice `amazon.Ruth:neural`.
+
+
diff --git a/scripts/llm-export-cases.json b/scripts/llm-export-cases.json
index 82cdde5088..c84720d5ad 100644
--- a/scripts/llm-export-cases.json
+++ b/scripts/llm-export-cases.json
@@ -94,6 +94,62 @@
"