Configure post-call action topics

Voice-enabled agents often need to perform backend actions after a call ends, such as updating CRM records, triggering workflows, or logging call outcomes.

You can configure post‑call action topics that run automatically when a conversation ends. The conversation end event triggers these actions. This event provides a reliable and deterministic signal to indicate the conversation is complete and why it ended. This signal enables accurate backend processing, consistent reporting, and predictable automation behavior.

Post-call actions

Post‑call actions help you perform an action, such as calling an API to update an external system (customer backend datastore), after callers disconnect but before reaching the end of the flow.

By providing a clear conversation‑end signal, Copilot Studio ensures post‑call automation runs at the correct point in the conversation lifecycle.

End of conversation event

When a voice conversation ends, Copilot Studio sends an End of conversation activity. This activity is a clear signal that the voice interaction is complete.

This event happens regardless of how the call ended. It includes customer hang-up, transfer to an external phone number, or escalation to Dynamics 365 Contact Center.

Use this activity to trigger post-call action topics. These topics can handle backend processing like updating CRM records, logging call outcomes, or starting workflows.

To act on this event, configure a topic with an activity-based trigger. Set the activity type to End of conversation. You can also add optional conditions by using the system property Conversation.EndReason to control whether post-call actions run for specific conversation end scenarios.

No conditional ending

If you don't define a condition for an End of conversation trigger, the post-call action topic runs for all conversation end reasons.

This default behavior includes customer hang-up, external phone number transfer, and escalation to Dynamics 365 Contact Center.

No other condition is required.

Screenshot of a Trigger node configured without conditions when the Activity type is set to End of conversation.

Conditional ending

You can limit post-call actions to specific conversation end reasons by explicitly defining a condition.

For example, a conditional ending could be: Conversation.EndReason is equal to CUSTOMER_HANGUP.

When you apply this condition, the topic only runs for customer hang-ups and doesn't run for transfers or escalations.

Backend CRM update example

In the following scenario, you update a CRM case only when the customer hangs up.

When the customer hangs up:

  • Update the CRM case status.
  • Store the call end time and end reason.

When the call is transferred or escalated:

  • Don't update the CRM case.

Build a post-call action topic

To run backend actions when a voice conversation ends, you must explicitly construct a topic that listens for the End of conversation activity.

Create a dedicated post-call action topic

Create a new topic for post-call processing. For example, create a new topic called Post-call actions.

Change the trigger to an activity-based trigger

  1. Select the Trigger node in the topic.

  2. Select Change trigger (or Edit).

  3. Select An activity occurs.

Configure the trigger to use End of conversation

  1. Select the three dots () of the Trigger node, and then select Properties.

  2. Select Activity type and then select End of conversation.

    Screenshot of a Trigger node configured to apply conditions when the Activity type is set to End of conversation.

Note

Optionally, add conditions based on reason the conversation ended. Add a condition by using the system property Conversation.EndReason. For example, Conversation.EndReason is equal to CUSTOMER_HANGUP.

Add post-call backend actions

Configure backend actions such as the following examples:

  • Update CRM records.
  • Log call end time and end reason.
  • Trigger workflows or automations.

When you configure this topic, it runs automatically when the voice conversation ends and the End of conversation signal is activated.

Conversation end reasons

The End of conversation activity exposes the system property Conversation.EndReason, which indicates why the conversation ended.

Supported Conversation.EndReason values

Conversation end reason string Description
CUSTOMER_HANGUP The caller disconnects the call.
BLIND_TRANSFER The voice agent transfers the call to an external phone number. In a Transfer conversation node, set Transfer type to External phone number transfer.
CCAAS_TRANSFER The voice agent escalates the call to Dynamics 365 Contact Center. In a Transfer conversation node, set Transfer type to Transfer to agent.

Design guidance

  • Don't use a condition when the same post-call processing applies to all conversation endings.

  • Add explicit conditions only when different end reasons require different post call actions.

For guidance on using APIs to update backend systems like CRM records and best practices on the safe run pattern for AI-driven actions, learn more in Tools, knowledge, MCP, and API and FAQ for voice optimization.