Bird Email is expanding SMS beyond outbound messaging. You can now receive reply texts sent to your Bird numbers and handle them through an sms.received webhook.
The change lets you build two-way SMS flows without repeatedly polling the API. When someone replies, Bird stores the message alongside your outbound traffic and sends the event to your endpoint. The payload includes the message body, segment details, both phone numbers, and, when reported by the carrier, the sending operator.
You can also retrieve inbound messages through GET /v1/sms/messages?direction=inbound and view each message in the SMS log. New metrics show received message volume and period-over-period changes, with breakdowns by number, country, and sending operator.
Bird is leaving an important compliance task with you. It does not interpret inbound messages. A STOP arrives as a normal sms.received event, and your integration must decide how to suppress future messages. Bird says it will update its documentation when that behavior changes.
There is also a payload change to account for. carrier and mcc_mnc are now omitted from sms.sent, sms.delivered, and sms.received when the carrier does not provide them. If your code checks for null, you should change that logic to handle a missing field.
Finally, sms.accepted now includes the segment count used for billing. That gives you earlier visibility into the number of billable SMS segments in a send.
Sources
