***

title: End Call Node
subtitle: Terminate conversations cleanly
slug: configure-the-end-node
description: Learn how to use the End Call Node to gracefully conclude conversations and terminate your Flow Designer agent sessions.
---------------------

For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://docs.synthflow.ai/llms.txt. For full documentation content, see https://docs.synthflow.ai/llms-full.txt.

The **End Call Node** is the final stop in your flow—it terminates the conversation session. Once the AI agent reaches this node, it will deliver any last scripted message, perform any final cleanup actions you've attached, and then close out the conversation immediately. There are no outgoing nodes: the flow terminates here.

![](https://files.buildwithfern.com/synthflow.docs.buildwithfern.com/a9868a8c8da1105629b6d8e514e63c6d1879d58409b8d4fdf9ca4c9a2e3a4edf/docs/assets/screenshots/flow_designer_end.png)

## Overview

The End Call Node:

* **Terminates the conversation** immediately after delivering the final message
* **Delivers a closing message** before ending the call
* **Runs any Custom Actions** before terminating (e.g., logging, notifications)
* **Cannot be continued**—once reached, the conversation ends

**Important:** Once the End Call Node executes, the user cannot reply or continue the conversation. Any user input after this point is ignored.

## How to Configure

### Step 1: Add the Node

In Flow Designer, click the Plus icon and select **End Call**

### Step 2: Enter Final Message

**Message:**

* Enter the exact message you want the agent to say as its final statement
* Keep it short and clear—this is the last thing the user hears
* The agent will send exactly what you put here (no multi-turn)
* Use `{variable_name}` syntax to personalize (e.g., `"Thanks, {user_name}! Have a great day."`)

**Example:**

```
Thanks for calling! Your appointment is confirmed for {appointment_date}. Have a great day!
```

**Note:** If you reference variables in your final message (e.g., `{ticket_number}`, `{refund_amount}`), ensure those variables are collected earlier in your flow. Otherwise, you'll see the variable name literally in the message or get a runtime error.

## How It Works

### Execution Flow

1. **Flow reaches End Call Node** (via Conversation, Branch, Jump To, or any other node)
2. **Custom Actions execute first** (if any are attached)—the engine processes them before delivering the final message
3. **Final message is delivered** (if configured)—the AI sends exactly the text you put in the message field
4. **Conversation terminates immediately**—no further interaction possible

### Termination Behavior

* **No outgoing nodes:** The End Call Node has no outgoing connections—this is the hard stop
* **Immediate closure:** The conversation ends as soon as the final message is delivered
* **No user input accepted:** Any user response after termination is ignored (or logged as a new session, depending on backend design)

## Best Practices

### Keep Final Messages Concise

The final message should be short, polite, and clear. Avoid long explanations or multiple sentences.

| ❌ Too Long                                                                                                                                                                                                           | ✅ Concise                               |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| "Thank you so much for taking the time to call us today. We really appreciate your business and hope you have a wonderful rest of your day. If you need anything else, please don't hesitate to reach out. Goodbye!" | "Thanks for calling! Have a great day." |

### Don't Ask Questions

Since the conversation ends immediately, don't ask questions in the final message. End Call Node is not a place for contingency.

| ❌ Don't Do This                                                                                                                                                             | ✅ Do This Instead                                                                                                                                                |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| "Thanks for calling! Is there anything else I can help with?"<br /><br />**Problem:** User can't respond—conversation already ended. There is no "else" once the call ends. | "Thanks for calling! Have a great day."<br /><br />**Why it works:** Clear closure without expecting a response. Make it obvious the conversation has concluded. |

### Use Variables for Personalization

Reference collected variables to make the closing message feel personal:

**Examples:**

* `"Thanks, {user_name}! Your order #{order_id} has been placed."`
* `"Perfect! I've scheduled your appointment for {appointment_date}. See you then!"`

### Route to Different End Nodes for Context

Use Branch Nodes to route to different End Call Nodes based on context:

**Example:**

```mermaid
flowchart TD
    A["Branch<br />Was issue resolved?"] -->|Issue resolved| B["End Call<br />Thanks! Your issue is resolved.<br />Have a great day!"]
    A -->|Issue not resolved| C["End Call<br />I'm sorry we couldn't help.<br />Please call back if you need assistance."]
```

This keeps your closing messages contextually appropriate.

### Use Jump To for Centralized End Points

If you have multiple paths that should end the same way, use Jump To to route to a single End Call Node. This reduces duplication and makes updates easier.

**Example:**

```
[Multiple paths] → [Jump To: End Call - Standard] → [End Call: "Thanks for calling!"]
```

**Alternative approach:** If you have multiple "end" scenarios, create a single, well-named End Call Node (e.g., "End Call – Standard") and adjust its message dynamically with variables. Then, from other spots, Jump or route to that single node—rather than duplicating multiple end messages.

### Keep Final Scripts Short

Avoid information overload. Users either hear this at the very end of a dialogue or as a fail-safe. If you need to convey more than two sentences of info, consider splitting: send a shorter closing text here, then have a final Conversation or Message node just before that to display or speak the extra details.

## Common Use Cases

### Successful Completion

End the call after successfully completing the user's request:

```
[Conversation: Collect information] → [Custom Action: Process request] → [End Call: "Perfect! Your request has been processed. Thanks for calling!"]
```

### User-Requested Exit

End the call when the user indicates they're done:

```
[Conversation: "Anything else I can help with?"] → [Branch: User says "No"] → [End Call: "Thanks for calling! Have a great day."]
```

### Error or Fallback

End the call when an error occurs or the AI cannot help:

```
[Branch: Can AI resolve this?] → [No] → [End Call: "I'm sorry, I cannot help with this. Please contact support at support@company.com. Goodbye."]
```

## When Not to Use End Call Node

* **Intermediate Content:** If you still want the user to interact, don't put them in an End Call Node. Use a [Conversation node](/configure-step-nodes) instead.
* **Partial Sessions:** If you want to end *or* continue based on some condition, route through a [Branch node](/configure-branch-nodes) first. Only after the "end" condition should you hit End Call.

## FAQ

<AccordionGroup>
  <Accordion title="Can the user continue the conversation after End Call?">
    No. Once the End Call Node executes, the conversation terminates immediately. Any user input after this point is ignored.
  </Accordion>

  <Accordion title="Can I use variables in the final message?">
    Yes! Use `{variable_name}` syntax to reference variables collected during the conversation. For example: `"Thanks, {user_name}! Your order #{order_id} is confirmed."`
  </Accordion>

  <Accordion title="What happens to Custom Actions if the End Call Node is reached?">
    Custom Actions execute before the final message is delivered. They complete before the conversation terminates.
  </Accordion>

  <Accordion title="Can I have multiple End Call Nodes in my flow?">
    Yes. You can have multiple End Call Nodes for different scenarios (e.g., success vs. error). Use Branch Nodes to route to the appropriate End Call Node based on context.
  </Accordion>

  <Accordion title="What's the difference between End Call and Call Transfer?">
    **End Call** terminates the conversation completely. **Call Transfer** hands off the call to a human agent or external phone system. Use End Call when the conversation is complete. Use Call Transfer when you need human intervention.
  </Accordion>
</AccordionGroup>