After Call Actions
Automatically send an email or create a support ticket when an AI agent call ends with a specific disposition.
Created: September 16, 2026
Updated: September 16, 2026
Overview
Open Tools and select the After Call Actions tab ("Automatically trigger actions when a call ends with a specific disposition"). There are two kinds of action:
| Tab | What happens when a call matches |
|---|---|
| Sends your custom email (subject and HTML body with call variables), optionally with the transcript and recording attached. | |
| Ticket | Creates a ticket in VINSI Desk, optionally assigned to a user or group, and can email a notification. |
Actions are triggered by dispositions — the call outcomes you define in the agent editor under ⚙️ Tools & Data → Dispositions (for example Appointment Booked, Needs Callback, Complaint). At the end of each call the AI picks the disposition that fits; every action whose trigger list includes it runs. Matching ignores upper/lower case.
Organization admins and members with write access to Tools can create and change actions. Others can view the list.
Required Setup
After Call Actions only run for agents that send their end-of-call data to VINSI. Do this once per agent (and per direction):
- On the After Call Actions tab, in the Required setup box, click Copy to copy the webhook URL (it ends in
/api/webhooks/ai-phone-agent). - Open the agent in AI Phone Agents. On the Inbound Agent tab, go to ⚙️ Tools & Data and paste the URL into After Call Webhook.
- If the agent also makes outbound calls, paste the same URL on the Outbound Agent tab.
- Make sure the agent has Dispositions on each tab you use — they are what your actions trigger on.
- Click Save.
Each agent tab has one After Call Webhook field. If you put the VINSI URL there, you can't also send that tab's call data to your own endpoint (see After Call Webhook).
Create an Email Action
- On the Email tab, click Add Email Action (or + Add your first email action).
- Scope to agent — leave All agents to run for calls from any agent, or pick one agent. Each agent is listed as "Name — Inbound" or "Name — Outbound", so you can target one direction.
- Disposition trigger(s) — choose one or more dispositions. The list comes from the selected agent (or from all agents).
- Send email to — the recipient address, e.g.
team@company.com. - Subject — can include variables.
- Email body — HTML supported, can include variables.
- Optionally tick attachments.
- Check the Preview with sample data tab, then click Create action. The button stays disabled until at least one disposition, a recipient, and a subject are filled in.
The action is named automatically, e.g. On "Appointment Booked, Needs Callback" → Email. Emails are sent from VINSI.AI <noreply@vinsi.ai>.
Template Variables
Click in the Subject or Email body, then click a variable chip to insert it at the cursor. You can also type them.
| Variable | Value |
|---|---|
{{user_phone}} | Caller's phone number (the person the agent spoke with) |
{{agent_phone}} | The agent's phone number |
{{disposition}} | The call's disposition |
{{summary}} | AI-written call summary |
{{call_id}} | Call ID |
{{recording_url}} | Link to the call recording (empty if none) |
{{transferred_to}} | Number the call was transferred to (empty if not transferred) |
{{transcript}} | Full transcript |
{{call_data.KEY}} | A field the agent collected, where KEY is the Key of a Call Data item on the agent |
When you scope the action to an agent that has Call Data, its fields appear as chips (e.g. {{call_data.customer_name}}). Otherwise example chips are shown — replace KEY with your own field key. If the caller never provided a Call Data field, the email shows Not provided. A misspelled variable is left as-is in the email, so check the preview.
<p>New callback request from {{call_data.customer_name}} ({{user_phone}}).</p>
<p><strong>Outcome:</strong> {{disposition}}</p>
<p><strong>Summary:</strong> {{summary}}</p>
<p><a href="{{recording_url}}">Listen to the recording</a></p>Attachments
| Option | Result |
|---|---|
| Include recording URL as attachment | Attaches the call recording as an MP3 file. |
| Include call transcript as attachment (.txt) | Attaches the transcript as a text file. |
Phone recordings can take a while to become available after hang-up. When the recording attachment is ticked, the email waits until the recording is ready and is then sent automatically, so it may arrive later than the call ended. Website text chats have no recording and send right away.
Create a Ticket Action
- On the Ticket tab, click Add Ticket Action.
- Set Scope to agent and Disposition trigger(s) as for email.
- Assign to user (optional) — a member, or Unassigned. Assign to group (optional) — a ticket group, or No group. Assigned users and group members get the usual ticket assignment email.
- Optionally tick Send email notification when ticket is created, enter Send ticket notification to, and choose attachments.
- Click Create action (a disposition is the only required field).
Each matching call creates a ticket in VINSI Desk with:
| Field | Value |
|---|---|
| Subject | Phone Support: followed by the start of the call summary |
| Description | The summary and full call transcript |
| Status / Priority / Type | Open / Medium / Support Request |
| Source / Tag | AI Phone Agent / Phone Support |
| Due | 4 days after the call |
| Extra details | Call ID, caller and agent phone, recording link and transfer number when available |
The notification email is titled Ticket #… Created — [disposition] and includes the summary and a View Ticket in Vinsi Desk button. Ticket workflows set to run on ticket creation also run.
Edit, Duplicate, Delete
Each tab lists its actions with Name, Type, Description, Ownership, and Actions. Use Search by disposition or email... to find one.
- Edit — click the row or the edit button, change settings, and click Save changes.
- Duplicate — creates Copy of … with the same settings, handy for a second recipient.
- Delete — confirm in the dialog. This can't be undone.
Actions have no on/off switch — delete an action to stop it.
Examples
| Goal | Setup |
|---|---|
| Email the front desk when an appointment is booked | Email action, disposition Appointment Booked, to frontdesk@clinic.com, subject New booking: {{call_data.patient_name}} |
| Open a ticket for complaints | Ticket action, disposition Complaint, assign to group Customer Care, notification with transcript attached |
| Send sales every hot lead with the recording | Email action scoped to your outbound agent, dispositions Interested and Callback Requested, recording attached |
After Call Webhook (Your Own Endpoint)
Instead of the VINSI URL, you can enter your own HTTPS endpoint in ⚙️ Tools & Data → After Call Webhook (placeholder https://api.domain.com/endpoint) to push call results into your CRM, Zapier, Make, or a custom app. Inbound and outbound tabs each have their own field. The agent won't save an invalid URL ("Please enter a valid url for the after call webhook").
When a call ends, VINSI sends one POST request with a JSON body to that URL. It isn't signed and isn't retried, so make your endpoint quick and reliable.
Webhook Payload
{
"user_phone": "+16615550123",
"agent_phone": "+16615550199",
"variables": { "firstName": "Ada" },
"organization_id": "org_...",
"disposition": "Appointment Booked",
"summary": "The caller booked a cleaning for Tuesday at 10 AM.",
"transcript": "BOT: Thank you for calling...\nHUMAN: Hi, I'd like to...",
"recording_url": "https://...",
"call_id": "c_...",
"call_data": {
"customer_name": { "value": "Ada Lovelace" }
},
"transferred_to": null
}| Field | Notes |
|---|---|
user_phone / agent_phone | Caller (or person called) and the agent's number. |
variables | Variables passed to the call (e.g. from Call Me, batch calls, or the API). |
disposition | One of the agent's dispositions. |
recording_url | Temporary link (about 1 hour), or null if the recording isn't ready yet. Download it promptly. |
call_data | Each Call Data key holds an object with a value. |
transferred_to | Transfer destination, or null. |
Conversations from the website widget's text chat send the same fields except variables, with user_phone and agent_phone set to text_chat, recording_url null, and an extra "call_type": "widget_text".
See also Call Logs for the same data in the dashboard, and Go High Level for a built-in CRM integration.
Troubleshooting & FAQ
| Problem / question | Answer |
|---|---|
| No emails or tickets at all | Check the agent tab that handled the call has the VINSI webhook URL in After Call Webhook and was saved. |
| Works for inbound, not outbound | Paste the URL on the Outbound Agent tab too. |
| Disposition trigger list is empty | Add Dispositions to the agent, save, then reopen the action. |
| Action didn't fire for a call | Open the call in Call Logs and compare its disposition with the action's triggers and agent scope. |
| Email arrived late | The recording attachment was ticked; the email waits for the recording. Untick it for instant emails. |
| Email never arrived with recording ticked | Make sure call recording is enabled for that number; without a recording the email can't be sent. Also check spam. |
{{something}} shows literally | The variable name is misspelled. Use the chips. |
| Can one call trigger several actions? | Yes. Every matching email and ticket action runs. |
| Can't add or edit actions | You need admin rights or write access to Tools. |