Skip to main content

Actions Overview

Answer URLs return actions that control the call. Supported actions are say, gather, send_digits, redirect, transfer, bridge, conference, hold, resume, mute, unmute, start_recording, stop_recording, start_stream, and stop_stream.

Each action is an object inside the actions array. The canonical public documentation format uses the action name as the object key. Some backend paths also accept a type-based action shape for selected actions, but new integrations should use the keyed format shown here.

{
"actions": [
{
"say": {
"text": "Thanks for calling."
}
},
{
"transfer": {
"destination": "+15551230002"
}
}
]
}
Integration checklist

Use this page as part of a complete MiniVoice integration. Save the request body, response body, call ID, and webhook events from each manual test. Those artifacts make it easier to compare expected behaviour with the next change you make.

Before you ship, test the happy path and one realistic failure path. Your application should handle missing optional data, final statuses, and duplicate webhook delivery without requiring manual cleanup.

Copy/Paste Examples​

Real Request​

Return this from your answer_url:

{
"actions": [
{
"say": {
"text": "Thanks for calling."
}
},
{
"transfer": {
"destination": "+15551230002"
}
}
]
}

Real Response​

A valid answer_url response is the JSON action payload itself. MiniVoice accepts the response when it contains an actions array:

{
"actions": [
{
"say": {
"text": "Thanks for calling."
}
},
{
"transfer": {
"destination": "+15551230002"
}
}
]
}

Real Webhook Example​

{
"event": "call.completed",
"created_at": "2026-05-29T12:10:00Z",
"call": {
"id": "call_123",
"customer_id": "cust_123",
"application_id": "app_123",
"status": "completed",
"direction": "inbound",
"from": "+15551230001",
"to": "+15551230002"
},
"variables": {},
"data": {}
}

Common Use Case​

Use this action inside an answer_url response for a live call flow. Start with the JSON shown above, verify the caller experience, then combine it with adjacent actions such as say, gather, redirect, transfer, or recording controls.

Common Failure Case​

{
"error": {
"code": "answer_url_error",
"message": "invalid action payload"
}
}

Invalid fields or malformed JSON cause MiniVoice to reject the answer_url payload. Log the exact response your server returned while testing.