Skip to main content

Overview

Post-call emails send automatically after conversations based on outcomes, goals, sentiment, or custom conditions you define. Access: Agent editor → Analytics → Post-Call Emails
Post-Call Emails interface showing navigation sidebar with Analytics section expanded and Post-Call Emails selected, main content area with heading 'Post-Call Emails' and subtitle 'Automatically send follow-up emails based on call outcomes', empty state with email icon, message 'No post-call emails yet' and description 'Create automated follow-up emails that send after calls', and Create First Email button
Post-Call Emails interface showing navigation sidebar with Analytics section expanded and Post-Call Emails selected, main content area with heading 'Post-Call Emails' and subtitle 'Automatically send follow-up emails based on call outcomes', empty state with email icon, message 'No post-call emails yet' and description 'Create automated follow-up emails that send after calls', and Create First Email button
Use cases: Appointment confirmations, callback requests, complaint escalations, feedback collection, sales follow-ups, unresolved issue tracking

Setup

1

Access Post-Call Emails

Agent editor → Analytics → Post-Call EmailsCreate Email
2

Choose starting point (optional)

Templates provide pre-configured triggers and content for common use cases:
  • Callback Requested - Customer asks for follow-up
  • Appointment Booked - Meeting/consultation scheduled
  • Customer Complaint - Escalates dissatisfaction
  • Unanswered Question - Agent couldn’t answer
  • Technical Issue - Routes bugs/errors to tech teams
  • Billing Inquiry - Payment/invoice questions
  • Escalation Needed - Requires management attention
  • Order Placed - Purchase confirmation
  • Demo Request - Product demonstration interest
  • Positive Feedback - Share compliments with team
Templates are fully customizable starting points. You can also start from scratch.
3

Configure notification name

Name: Internal identifier (e.g., “Callback Request Alert”)
4

Set trigger condition

Describe when to send (AI analyzes this against call transcript):
Example: "Did the customer request a callback, ask to be
contacted later, or want someone to follow up with them?"
Be specific. The more detailed your trigger description, the more accurate the AI matching.
Or: Toggle “Always send after every call” to bypass condition checking
5

Configure recipients

Fixed Recipients: Enter specific email addresses (supports multiple)
Example: support@company.com, manager@company.com
Dynamic Recipients (AI-powered): AI routes to different recipients based on call content
Example: Route complaints by severity
- If legal threat → legal@company.com
- If angry/canceling → retention@company.com
- If product issue → quality@company.com
- Otherwise → support@company.com

Example: Route technical issues by type
- If website issue → dev@company.com
- If billing system → billing-tech@company.com
- Otherwise → tech-support@company.com

Example: Route orders by value
- If order over $1000 → sales-manager@company.com
- Otherwise → orders@company.com
6

Design email template

Subject: Callback requestedBody: Use rich text editor with variables (see Template Variables below)
  • System variables: Click variable picker to insert (e.g., {{customer_name}}, {{conversation_summary}})
  • Dynamic variables: Type {{dyn_ + descriptive name (e.g., {{dyn_appointment_date}})
7

Save and enable

Save notification → Toggle Enabled switch

Template Variables

System Variables

Use the variable picker in the editor to insert these.
Availability: Some variables only populate under certain conditions:
  • Phone numbers (customer_number, to_number) - Phone calls only
  • Customer data (customer_name, customer_email) - Only if caller exists as a contact in your system
  • Conversation transcript - Only if transcription is enabled
Conversation Details:
  • {{conversation_date}} - Full date/time in 24-hour format
  • {{conversation_time}} - Time in 12-hour format
  • {{conversation_duration}} - Duration in MM:SS format
  • {{conversation_status}} - Status (Completed, Failed, etc.)
  • {{conversation_direction}} - Inbound/Outbound
  • {{conversation_summary}} - AI-generated summary
  • {{conversation_transcript}} - Full transcript with fallback text
  • {{transcript}} - Simple transcript (no fallback)
  • {{conversation_url}} - Link to view conversation
  • {{conversation_uuid}} - Unique identifier
Agent & Account:
  • {{agent_name}} - Name of AI agent
  • {{account_name}} - Your organization name
Customer Information (only if contact exists):
  • {{customer_number}} - Customer phone number (phone calls only)
  • {{customer_name}} - Customer name (if contact exists)
  • {{customer_email}} - Customer email (if contact exists)
  • {{to_number}} - Called phone number (phone calls only)

Dynamic Variables

How they work: Type {{dyn_ followed by a descriptive name. AI analyzes the call transcript and extracts the information. Examples:
{{dyn_appointment_date}} → AI finds the date mentioned in call
{{dyn_appointment_time}} → AI finds the time mentioned
{{dyn_issue_summary}} → AI summarizes the problem discussed
{{dyn_ticket_number}} → AI locates any ticket reference
{{dyn_next_steps}} → AI identifies agreed action items
{{dyn_shipping_address}} → AI extracts mentioned address
{{dyn_order_number}} → AI finds order reference
The variable name guides the AI. More specific names = better extraction accuracy.{{dyn_rescheduled_appointment_date}}{{dyn_date}}

Examples

Trigger:
Did the caller schedule, book, or confirm an appointment or meeting?
Recipients: Fixed - team@company.comSubject: Appointment confirmed - {{dyn_appointment_date}}Body:
Hi {{customer_first_name}},

Your appointment is confirmed:

📅 {{dyn_appointment_date}} at {{dyn_appointment_time}}
📍 {{dyn_location}}
🔗 {{dyn_meeting_link}}

Need to reschedule? Call {{agent_name}}

Best,
{{agent_name}}
Variables used:
  • System: {{customer_first_name}}, {{agent_name}}
  • Dynamic: {{dyn_appointment_date}}, {{dyn_appointment_time}}, {{dyn_location}}, {{dyn_meeting_link}}
Trigger:
Did the customer request a callback, follow-up call, or ask to be contacted later?
Recipients: Fixed - support@company.comSubject: Callback requestedBody:
Customer requested callback:

Phone: {{customer_number}}
Date: {{conversation_date}}
Reason: {{conversation_summary}}

View call: {{conversation_url}}
Variables used:
  • System: {{customer_number}}, {{conversation_date}}, {{conversation_summary}}, {{conversation_url}}
Trigger:
Did the customer express dissatisfaction, file a complaint, or report a problem?
Recipients: Dynamic
Route by severity:
- If legal threat → legal@company.com
- If angry/canceling → retention@company.com
- If product issue → quality@company.com
- Otherwise → support@company.com
Subject: Customer issue - {{dyn_severity}}Body:
Issue reported:

Customer: {{customer_number}}
Severity: {{dyn_severity}}
Issue: {{dyn_issue_summary}}

View full call: {{conversation_url}}
Variables used:
  • System: {{customer_number}}, {{conversation_url}}
  • Dynamic: {{dyn_severity}}, {{dyn_issue_summary}}

Tips

❌ Bad: “Customer unhappy”✅ Good: “Did the customer express dissatisfaction, frustration, mention being unhappy, or threaten to cancel/leave negative review?”
Enable the notification and test with real or test calls to verify triggering and content.
  • 3-5 paragraphs max
  • One clear purpose
  • Single call-to-action
  • Bullet points for multiple items

Troubleshooting

Possible causes:
  • Notification is disabled
  • Trigger condition doesn’t match call content
  • Customer has no valid email address
Solutions:
  • Verify notification is enabled (toggle On)
  • Review trigger description and test with matching calls
  • Check contact has email or use dynamic recipient extraction
Possible causes:
  • Typo in variable name
  • Dynamic variable name too vague
  • Data not available (e.g., customer not in system)
Solutions:
  • Use exact variable names from variable picker
  • Make dynamic variable names more specific and descriptive
  • Test with real calls to verify extraction
  • Check availability conditions for system variables
Possible causes:
  • Routing rules description unclear
  • AI misinterpreting call content
Solutions:
  • Review and clarify routing rules description
  • Make criteria more explicit with specific keywords
  • Test with sample calls and adjust rules
  • Add “Otherwise” fallback route

Next Steps