What’s new. What’s next for you.

Product releases and developer updates from Bird.

feature

Auth0: guided setup for Bird as your phone provider

A guided integration for Auth0 is now available. It walks through using Bird as Auth0's Custom Phone Provider, with screenshots of each step in Auth0 and Bird and the provider code to paste.

Auth0 generates and checks each sign-in code, and Bird Verify delivers it by SMS or voice call for MFA, and by SMS for passwordless login. If your tenant also sends account notifications, such as blocked-account, password-change and password-breach messages, they go out through Bird SMS with the text from your Auth0 templates. Setup needs a Bird API key stored as an Auth0 secret, plus an SMS sender for account notifications, and no OAuth client.

Set up Auth0 with Bird.

feature

Verify: send your verification codes in your own email template

Verify can now send the one-time passcode in an email you designed. Build the email in Email Templates, publish it, and choose it as the body of your custom email sender. Your users get your layout, wording, and languages; Verify keeps checking codes, attempts, and expiry exactly as before. The guide Your own verification email walks through the setup, with the rules the template must meet and how to troubleshoot a refused save.

Get started

What's new

  • Your template, your domain: pick a published transactional template under Email when you set up a custom sender on Verify › Configure › Channels, or for a single country in Destinations. Templates only send from an address on your own verified domain; the Bird Verify and Authifly senders keep Bird's built-in email.
  • Two variables: show the passcode with {{ code }} and the minutes it stays valid at send time with {{ expires_in_minutes }}. Add up to 25 languages; the template's default language is the fallback.
  • Checked when you save and when you send: every published language must show the code in the body, outside the subject and outside any link. A template that stops meeting the rules after a republish fails that email instead of sending a code-less message, and a pinned template cannot be deleted.
  • Safe in your logs: the Verify log and message details keep the code masked, as they do for Bird's built-in email.

Ready to try it? Start with Your own verification email.

improvement

Voice outbound price ranges

The Voice pricing page now shows a price range when the rate depends on the destination number prefix.

feature

Send WhatsApp broadcasts from the dashboard, CLI and MCP

You can now send one approved WhatsApp template to an audience from one of your numbers. Open WhatsApp > Broadcasts in the dashboard, or use the bird whatsapp broadcasts commands and the matching MCP tools.

  • Each recipient gets their own language. Leave the language on Auto and each recipient gets the one for their phone number's country, or the template's default when the template allows it.
  • Check before you send. Review lists every problem at once, including an audience over your number's daily messaging limit. Marketing templates show a cost estimate before sending.
  • Try it on one number. Preview the message for a contact, then send that exact message to one number.
  • Follow every recipient. Track sent, delivered, read and failed counts, see why a message failed, and open the broadcast's messages in the message log.

Templates can also fill their values from Liquid parameter bindings, and most templates can now be filled by name with template.parameters.

Send a WhatsApp broadcast in the dashboard. On the CLI, start with bird whatsapp broadcasts create.

feature

Email inbox gets folders, read state, and a recoverable trash

Email conversations move from a single labels list to dedicated folder and read fields. Get, list, and update a thread now return folder (inbox, archive, spam, blocked, sent, or trash) and read, with labels reserved for your own custom tags. List threads by folder with folder=, filter by read state with read_state=read|unread, and match custom labels with labels=.

Trash is no longer a dead end: DELETE moves a conversation's messages to trash, and the new restore a thread endpoint (POST /v1/email/threads/{thread_id}/restore) brings back whatever hasn't passed its trash deadline or the mailbox's retention period, with folder, read state, and labels intact.

Also in this release:

  • Replies can add their own Cc and Bcc. Reply to a thread message now accepts cc and bcc on top of reply_all, each capped at 50 merged addresses. Bcc recipients stay out of conversation participants and visible headers, and their delivery outcomes are excluded from the sent message's per-recipient recipients list, which now only tracks the To and Cc lines.
  • Mailboxes split sender name from dashboard name. Create and update a mailbox take a name field for the sender name shown on outgoing mail; display_name is now what your team sees in the dashboard and defaults to name when no override is set.
  • Number ownership status explains unrecoverable cases. Get and list workspace numbers can now return ownership.unavailable_at for a number that can't be activated and ownership.registration_due_at, the deadline for completing ownership details before a number is removed.
  • WhatsApp template language pages link straight to Meta. Get a template version language adds whatsapp_manager_url, a direct link into Meta's WhatsApp Manager for that language.

Start building with Bird in minutes.