New features, improvements, and fixes to Dial

July 5, 2026

Added

Voice messages

A single audio attachment sent from an iMessage number is now delivered as a native voice message — playable inline in the recipient’s thread, not a file to download. Pass forceAudioFile: true on Send a message to opt back into a regular file attachment. body is now optional whenever media is attached, so media-only sends work. In the CLI: dial message --media <url> with --force-audio-file to opt out.

Vercel Chat SDK integration

The @getdial/chat-sdk-adapter package adds Dial as a channel to any bot built on Vercel’s Chat SDK — the same handler that answers Slack or Discord also answers SMS, MMS, iMessage, and inbound voice through one adapter.

Changed

Media sent from an iMessage number to a recipient that can only receive SMS is delivered as links in a text, so the message always arrives.

Messages from iMessage numbers are billed at $0

Per-message pricing applies to standard (SMS) numbers only — an iMessage number’s subscription covers its messaging.

New-contact rate limiting documented

Sends can return 429 (error code rate_limited): new contacts on iMessage numbers can only receive a limited number of messages until they reply — once they respond, the limit lifts. See Send a message.