End call nodes terminate the conversation and disconnect the call. They provide a clean, graceful way to end calls with optional farewell messages and tracking of call completion reasons. Every flow should have clear paths to end call nodes to avoid leaving callers hanging.Key characteristic: End call nodes are terminal nodes—the flow stops here, and the call disconnects.
AI generates contextual farewell based on conversation.
Copy
Ask AI
End Call Node: Call_Complete reason: completed Final Message: message: "Thank the caller warmly, reference their specific issue, and wish them a great day." messageType: prompt
AI might say:
“Thank you for calling about your account update, . Have a wonderful day!”
“I’m glad I could help with your question. Thanks for calling, and take care!”
End Call Node: Appointment_Confirmed reason: completed Final Message: message: "Perfect! Your appointment is confirmed for {{appointment_date}} at {{appointment_time}}. We'll send a reminder to {{customer_email}}. Thank you, {{customer_name}}!" messageType: static
Technical error or system failure requires termination.
Copy
Ask AI
End Call Node: Error_Terminate reason: error finalMessage: "I'm experiencing technical difficulties. Please try calling back in a few minutes. We apologize for the inconvenience."
Scenario: User’s question answered, end positively.
Copy
Ask AI
Conversation Node: Answer_Question message: "I hope that answers your question about our pricing." transitions: - Natural Language: "User is satisfied" → Call_Complete - Natural Language: "User has more questions" → Continue_ConversationEnd Call Node: Call_Complete reason: completed Final Message: message: "Thank you for calling Acme Corp. If you have any other questions, feel free to call back. Have a wonderful day!" messageType: static
Tool Node: Book_Appointment outputMapping: appointment_date: $.date appointment_time: $.time confirmation_number: $.confirmation_id transitions: - Always → Appointment_ConfirmedEnd Call Node: Appointment_Confirmed reason: completed Final Message: message: "Your appointment is confirmed for {{appointment_date}} at {{appointment_time}}. Your confirmation number is {{confirmation_number}}. We'll send a reminder email. Thank you, and see you then!" messageType: static
Conversation Node: Anything_Else message: "Is there anything else I can help you with today?" transitions: - Natural Language: "User says no or goodbye" → User_Goodbye - Natural Language: "User has more questions" → Continue_SupportEnd Call Node: User_Goodbye reason: user_requested Final Message: message: "Thank you for calling. Have a great day!" messageType: static
Tool Node: Critical_Database_Lookup onErrorBehavior: fail transitions: - Always → Database_Error_EndEnd Call Node: Database_Error_End reason: error Final Message: message: "I'm experiencing technical difficulties accessing our system. Please try calling back in a few minutes, or visit our website. We apologize for the inconvenience." messageType: static
Transfer Call Node: Transfer_To_Human phoneNumber: +18005551234 transferType: warm transferMessage: "I'm transferring you to a specialist now." transitions: - Always → End_After_TransferEnd Call Node: End_After_Transfer reason: completed # No final message - transfer system handles it
Conversation Node: Opt_Out_Confirmation message: "I understand you'd like to opt out. I've processed that request." transitions: - Always → Opt_Out_CompleteEnd Call Node: Opt_Out_Complete reason: user_requested Final Message: message: "Your opt-out request has been processed. You won't receive further calls. Thank you." messageType: static
Conversation Node: Final_Question message: "On a scale of 1-10, how satisfied are you with our service?" Extract Variables: - satisfaction_score: "Extract rating 1-10" transitions: - Always → Survey_CompleteTool Node: Submit_Survey tool: Save_Survey_Results parameters: score: {{satisfaction_score}} transitions: - Always → Thank_You_EndEnd Call Node: Thank_You_End reason: completed Final Message: message: "Thank you for your feedback! It helps us improve our service. Have a great day!" messageType: static
Scenario: Different endings for different outcomes.
Copy
Ask AI
Router Node: Outcome_Router transitions: - Equation: {{issue_resolved}} == true → Success_End - Equation: {{transferred_to_human}} == true → Transfer_End - Equation: {{user_frustrated}} == true → Apologetic_End - Always → Standard_EndEnd Call Node: Success_End reason: completed finalMessage: "I'm glad I could resolve your issue. Thank you for calling!"End Call Node: Transfer_End reason: completed finalMessage: "You've been transferred. Have a great day!"End Call Node: Apologetic_End reason: user_requested finalMessage: "I apologize we couldn't resolve this to your satisfaction. Please contact our support team for further assistance. Thank you."End Call Node: Standard_End reason: completed finalMessage: "Thank you for calling. Goodbye!"
Scenario: Reference conversation details in goodbye.
Copy
Ask AI
End Call Node: Personalized_Goodbye reason: completed Final Message: message: "Thank you, {{customer_name}}! Your {{order_type}} order for {{product_name}} will arrive on {{delivery_date}}. We appreciate your business!" messageType: static
✅ finalMessage: "Thank you for calling. Have a great day!"❌ # No message - abrupt disconnect
Reference conversation context
Copy
Ask AI
finalMessage: 'Thank you, {{customer_name}}! Your appointment is confirmed for {{appointment_date}}.'
Use appropriate call reasons
Copy
Ask AI
✅ Success → reason: completed✅ User goodbye → reason: user_requested✅ API failure → reason: error✅ No response → reason: timeout
Have multiple end paths
Copy
Ask AI
# Different endings for different scenarios- Success_End- Error_End- User_Requested_End- Timeout_End
Keep messages brief
Copy
Ask AI
✅ "Thank you for calling. Goodbye!"❌ "Thank you so much for calling today. We really appreciate your business and hope you have a wonderful rest of your day. Please call back anytime. We're here to help. Take care and goodbye!"
Confirm important information
Copy
Ask AI
finalMessage: 'Your confirmation number is {{confirmation_id}}. A receipt was sent to {{email}}.'
Conversation Node: Get_Feedback message: "Before you go, how was your experience today? Good, okay, or bad?" extractVariables: - feedback: "Extract sentiment" transitions: - Always → Thank_And_EndEnd Call Node: Thank_And_End reason: completed finalMessage: "Thank you for your feedback! Have a great day."