Send Digits
Overview
The send_digits action sends DTMF tones into the active call. Use it when MiniVoice connects to another phone system that requires keypad input, such as an extension, conference PIN, or automated menu. Place it in the actions array returned by your answer_url. MiniVoice executes actions in order, so put send_digits before the action that depends on its result and after any prompt or setup the caller should experience first.
Business Use Case
Use send_digits when a transferred call must enter DTMF into another phone system. A common case is sending an appointment confirmation code after connecting to a scheduling platform.
JSON Example
{
"actions": [
{
"send_digits": {
"digits": "1234#"
}
}
]
}
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| digits | string | Yes | DTMF sequence to send. Allowed values include digits, *, #, A through D, w, W, and comma. |
| pause_before_ms | number | No | Delay before sending digits, from zero to sixty thousand milliseconds. |
Execution Flow
- MiniVoice reaches the send_digits action after the call is connected.
- If pause_before_ms is set, MiniVoice waits before sending tones.
- MiniVoice sends the DTMF sequence to the far end of the call.
- After the sequence is sent, MiniVoice continues to the next action.
Webhook Behaviour
No action-specific webhook is sent for send_digits. Use call lifecycle events and downstream system behavior to confirm the action succeeded.
Success Example
A successful answer_url response includes the action in a valid actions array:
{
"actions": [
{
"send_digits": {
"digits": "1234#"
}
}
]
}
Your application should store the MiniVoice call ID from webhooks or API responses so you can correlate the action with the call.
Failure Behaviour
Invalid characters, an empty digits value, or an overly long sequence cause validation failure. If the far-end system is not ready, increase pause_before_ms.
Expected Result
MiniVoice sends the configured DTMF sequence into the active call leg. The remote system receives the digits as keypad input.
Testing
Bridge or transfer to a test IVR that expects a known PIN. Send the PIN with send_digits and confirm the remote system advances to the expected menu. During testing, log every webhook payload and compare the call ID, action timing, and final call status with the behavior you expected.
Integration guidance
Place this action in a short answer_url response first, then combine it with other actions after you have confirmed the single-action behaviour. Always log the answer_url response your application returned for the call. If the caller experience differs from what you expected, compare the logged response with the webhook timeline for that call ID.
When this action is part of a larger IVR, keep each step explicit. For example, play a prompt before collecting input, redirect after collecting input, and transfer only after your application has selected the final destination. This makes the flow easier to test and easier to change later.
For production integrations, build a fallback path. A caller may hang up, enter no digits, reach a busy destination, or disconnect before the flow completes. Your webhook handler should update the call record with the last known step so support teams can understand what happened.
Copy/Paste Examples
Real Request
Return this from your answer_url:
{
"actions": [
{
"send_digits": {
"digits": "1234#"
}
}
]
}
Real Response
A valid answer_url response is the JSON action payload itself. MiniVoice accepts the response when it contains an actions array:
{
"actions": [
{
"send_digits": {
"digits": "1234#"
}
}
]
}
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 send_digits when a transferred call must enter DTMF into another phone system. A common case is sending an appointment confirmation code after connecting to a scheduling platform.
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.