Skip to main content

SMS

SMS is the lowest-common-denominator messaging channel. It works on every phone in the US and is the most regulated. This page covers what is specific to SMS. For everything channel-agnostic (pathways, conversation lifecycle, outcomes, the API surface), see Overview.
Enterprise feature — SMS is available on Enterprise plans. Contact your Account Executive or reach out to sales to get set up.

A2P registration

In the United States, all phone numbers used for SMS must be registered with an A2P (Application to Person) campaign. Each number must be linked to a Twilio Messaging Service SID to send and receive SMS. Numbers purchased from Bland are linked to a Messaging Service SID automatically. For bring-your-own (BYOT) numbers, the ability to set up your own A2P campaign in Bland is coming soon. Until then, set up your A2P campaign with Twilio and pass the Messaging Service SID when configuring your SMS number in Bland.

Pricing

Each SMS message is billed at $0.02 (inbound and outbound).

Sending an SMS

Pass channel: "sms" (the default) when calling Send SMS, or let it be auto-derived from the number’s configuration. The same endpoints are used for SMS, RCS, and iMessage. When the recipient supports a richer channel and your number is configured for it, Bland upgrades to RCS or iMessage automatically. See RCS and iMessage for what those channels add.

Handing a conversation to a human

A messaging thread can be taken over by a person at any point, the way a call can be transferred. The agent stops replying, every inbound message is still relayed to your webhook, and the rep answers from the same number so the customer sees one continuous conversation. Two ways to start it:
  • In the pathway: add a Transfer to Human node. Its dialogue prompt is the agent’s last message (“Looping in a broker now”); after it sends, the thread is handed off. Optionally set a reason, a number to notify, and a webhook URL for this conversation from that point on (the human_handoff event, every relayed inbound message, and later status events go there instead of the number’s SMS webhook).
  • From your platform: call Hand Off Conversation to a Human whenever your own logic decides.
Then your rep sends with Send Message on Conversation (attributed as HUMAN in the transcript), and when the human is done you either resume the agent, optionally at a specific node, or end the conversation outright so the agent never comes back on it. The human_handoff and human_handoff_ended status webhooks bracket the takeover. The SMS inbox in the dashboard offers the same controls (Take over, reply as a human, Return to agent).

Coming up

  • A2P campaign setup directly inside Bland.

Docs for agents: llms.txt