# On Call End

**Call Ends Trigger** fires after hang-up (**Runs when: When a call is ended**). The transcript, duration, and [Call results](https://docs.voicelogica.ai/agent-configuration/call-results/) fields are available. There is no live caller - **AI Response to Caller** is not offered.

Use this instead of a one-line [Alert](https://docs.voicelogica.ai/agent-configuration/alerts/) when you need a graph: POST to your backend, branch on extract fields, write a sheet.

  <ShotPlaceholder
    src="/assets/workflows/on-call-end.png"
    name="wf-end"
    alt="Call Ends Trigger on the canvas"
    capture="Call Ends Trigger canvas."
  />

## Why this trigger

The conversation is over. You have the extract. CRM update, follow-up email, "create a task if they said yes" belong here. Mid-call speech belongs on [During Call](https://docs.voicelogica.ai/workflows/during-call/).

## First setup - POST the extract

1. On the agent, **After the call - Call results** - add only the fields you will send.
2. **+ Add Trigger - Call Ends Trigger**.
3. **Connect To External Service** - POST your URL. Map call parameters and extract names in the body.
4. **Save & go live**, attach, finish a call that fills those fields. Check your backend. Unanswered / no-extract calls can still fire the trigger - tokens may be empty.

## Troubleshooting

**My webhook is empty after a real call**

Turn **Call Summary** on and add the properties under [Call results](https://docs.voicelogica.ai/agent-configuration/call-results/). Then finish a call that actually discusses those facts.

**Should I use Alerts instead?**

[Alerts](https://docs.voicelogica.ai/agent-configuration/alerts/) emails or texts a person. End is for a system. You can do both.

## Next Steps

[Call results](https://docs.voicelogica.ai/agent-configuration/call-results/) - what End can send.  
[Missed Call](https://docs.voicelogica.ai/workflows/missed-call/) - they never answered.  
[On API Call](https://docs.voicelogica.ai/workflows/on-api-call/) - your system starts the graph.
