Overview
- When it runs: After the conversation ends (asynchronously).
- Typical tasks:
- Generate and store a call summary and disposition
- Persist transcript to CRM or data warehouse
- Trigger downstream workflows (e.g. ticket creation)
Create a Post-Call Action Flow
- Open Studio → Build → AI Agents → Actions tab → Post-Call.
- Click “Create New Action” and configure:
- Name: Short, descriptive identifier
- Description: What the action does and why
- Execute on channels: Which channels the action runs on — Voice, Chat, or both (at least one must be selected)
- Save the action, then click Save & Edit Flow to open the Flow Builder.
Channel Scoping
Post-call actions can be scoped to run only on specific channels — for example, log a ticket only for voice calls, or send a chat transcript email only for chat sessions.- Existing and newly created actions default to Voice only.
- To branch within a shared flow instead, use the built-in
interaction.CHANNELvariable (resolves tovoiceorchat) in a Decision node.
Flow Builder
The flow defines what happens when the call ends. Drag nodes from the sidebar and connect them starting from the Start node. In a large flow, use the search box in the top-right of the canvas to jump to a node by name or type — see Find a Node on the Canvas.API Request Node
Call an external HTTP API and map response fields to variables:- Method: GET, POST, PUT, DELETE, PATCH
- URL: Static URL (e.g.
https://api.example.com/tickets) - Query Params: Key-value pairs, variable-aware
- Headers: Static or variable-aware
- Body: JSON body (e.g. passing
{{interaction.SUMMARY}},{{interaction.TRANSCRIPT}}) - Auth Profile: Optional reusable credentials profile — see Auth Profiles for details. Also supports mTLS for APIs that require certificate-based mutual authentication.
- Test Request: Use “Send” to preview response in Data or Meta tabs
- Response Mapping: Map JSON paths to variables to store references.
Set Variable Node
Assign or overwrite variables based on post-call calculations or responses.Decision Node
Route post-call logic conditionally (e.g., only call the Zendesk API if{{interaction.DISPOSITION}} == "escalated").
Post-call flows do not support Say nodes as the conversation has already ended.
Best Practices
- Keep post-call operations idempotent; the same call payload may be retried.
- If you need both summary and transcript, design your backend to accept a single payload in the API Request node to minimize network calls.
- Store external IDs (e.g. ticket number) for cross-system traceability.