Team chat
Slack SMS integration: get every text your phone receives in a channel, no code
Published and updated
Slack Workflow Builder can receive the textbee webhook directly. Create a workflow that starts from a webhook, declare sender and message as text variables, and add a Send a message step. Every text your Android phone receives then appears in the channel within seconds, with nothing to host. Sending a text from Slack needs a workflow tool or a small bot in between, because Workflow Builder has no built-in step that calls an external API.
- Send
- HTTP POST
- to the textbee send endpoint
- Receive
- Webhook
- MESSAGE_RECEIVED, flat JSON
- Pace
- 10 to 15 / min
- per Android phone
- textbee code
- None
- uses what the tool ships today
What you need
- A Slack workspace on a paid plan. Workflows that start from a webhook are a paid feature.
- A textbee account with the Android app installed on the phone that holds the SIM, and an API key from the dashboard.
- A channel for the texts, for example #sms.
- The textbee app on the phone. Download the app, then create an API key in the dashboard.
Receive SMS in Slack
Workflow Builder reads top-level JSON keys only. The textbee payload is flat, so every field can be a variable.
Create the workflow
In Slack open Tools, then Workflow Builder, and create a new workflow. For the trigger pick From a webhook.
Declare the variables
Add variables with the exact textbee field names: sender as text, message as text, and receivedAt as text. Copy the webhook URL.
Add the message step
Add Send a message to a channel, pick the channel and write: New text from {{sender}}: {{message}}. Publish the workflow.
Register the URL in textbee
In the textbee dashboard create a webhook with the Slack URL and the MESSAGE_RECEIVED event. Text the phone from another number; the message appears in the channel.
Send SMS from Slack
Workflow Builder cannot call the textbee API by itself. Two routes work today.
Through a workflow tool
Build the send in Make, Zapier or n8n and start it from Slack with a slash command, an emoji reaction or a message in a channel. The Make, Zapier and n8n pages on this site have the request; their Slack modules cover the trigger side.
Through a small bot
A Slack app built with Bolt, in any language, that listens for a slash command such as /sms and posts to the textbee send endpoint. The SMS API by language pages have the send call ready to paste.
Ask your AI agent to set it up
The prompt below carries the endpoints, the payloads and the Slack details from this page. Change the line that starts with What I want, paste the prompt into your agent, and it walks you through the setup with your own field names and numbers.
Prompt for your AI agent
Paste it into Claude, ChatGPT, Cursor or any coding agent. It carries the textbee API facts and the Slack details the agent needs, so it does not guess.
I want to connect textbee to Slack. textbee is an SMS gateway that sends and receives SMS through my own Android phone. Help me set it up step by step.
Facts about the textbee API. Use only these. Do not invent endpoints or fields.
- Send an SMS: POST https://api.textbee.dev/api/v1/gateway/send-sms with the header x-api-key: <TEXTBEE_API_KEY> and a JSON body like {"recipients": ["+12015550123"], "message": "Hello"}. recipients must be a JSON array of E.164 numbers, even for one number. Optional fields: deviceId, simSubscriptionId, scheduledAt (ISO 8601, in the future). The response is {"data": {"success": true, "smsBatchId": "..."}}.
- Check delivery or read replies: GET https://api.textbee.dev/api/v1/gateway/messages with the same header. Filters: direction=received, smsBatchId=<id from the send>, from and to as ISO timestamps. Each row has a status such as sent, delivered, failed or received.
- Receive an SMS: textbee posts JSON to a webhook URL I register in the dashboard. A MESSAGE_RECEIVED delivery has these top-level fields: smsId, message, deviceId, webhookSubscriptionId, webhookEvent, idempotencyKey, sender, receivedAt. The header X-Signature holds an HMAC-SHA256 hex digest of the raw body, keyed with the signing secret I set on the webhook. Retries reuse the same idempotencyKey.
- Limits: One Android phone sends roughly 10 to 15 messages a minute. Text only, no MMS. Messages over 160 characters are split into segments.
What I want: Post every SMS my phone receives into a Slack channel with Workflow Builder, and let my team reply to a text with a slash command.
Slack specifics you should know:
- Workflow Builder webhook triggers read top-level JSON keys only; declare variables named exactly sender, message and receivedAt.
- Workflows that start from a webhook need a paid Slack plan.
- Workflow Builder has no built-in step that sends an outbound HTTP request; sending needs Make, Zapier, n8n or a small Bolt app with a slash command.
- Slack cannot verify the textbee X-Signature header; the workflow URL is the protection, or use the relay at textbee.dev/forward-sms/slack.
Give me:
1. The exact clicks and field values in Slack, using its real field labels.
2. The request body or field mapping, with placeholders for my API key and phone numbers. Never ask me to paste the real key into this chat.
3. A test with one number and what a correct result looks like.
4. The three most likely failure causes and how to check each one.Automations that work well
- Shared inbox
- Every text to the business number lands in #sms, where anyone on the team can pick it up.
- Verification codes
- A shared number that receives login codes for team accounts, posted to a private channel instead of one person’s phone.
- On-call alerts
- A monitoring system that texts the phone; the text appears in #alerts with the sender, so a second person sees it.
- Reply from Slack
- A Make or Zapier flow started by a slash command that sends a text back through the same number.
Why teams move Slack SMS to their own phone
- No relay to host
- Workflow Builder receives the textbee webhook directly, so a shared SMS inbox in Slack needs no server, no script and no provider account.
- The whole team sees the text
- A text to the business number reaches a channel instead of one person’s pocket, so someone is always able to answer.
- The number stays yours
- Customers text the mobile number they already have. Nothing to port, nothing to rent, and the history stays in your textbee account.
A cloud SMS provider in Slack vs textbee in Slack
| What you care about | Cloud SMS provider | textbee |
|---|---|---|
| Setup | Create the provider account, buy a number, register the sender where required, connect the provider app or a relay | Create a webhook workflow with three variables, register its URL in textbee: about five minutes |
| Sender the contact sees | A rented virtual number, or an alphanumeric sender where the country allows it | Your own mobile number, which your contacts already have saved |
| Monthly cost | Per message, plus number rental and carrier surcharges in some countries | A flat plan with messages included: Pro is $14.99 a month for 5,000 messages. No per-message fee, no number rental, no carrier surcharge. |
| Throughput | Set by the provider tier and by sender registration | One phone sends roughly 10 to 15 messages a minute. Add phones to scale. |
| Replies | Inbound webhook from the provider, or the provider app in the tool | textbee webhook: flat JSON, signed with HMAC-SHA256 |
| Where the message leaves from | The provider data center | An Android phone you own, plugged in, on Wi-Fi or mobile data |
| Slack cost | Paid plan for webhook-started workflows, plus provider fees | Paid plan for webhook-started workflows only |
Per-message prices by provider and country, with sources and dates, are on the provider comparison pages.
What works and what does not
Works today
- Every incoming text in a channel within seconds, with nothing to host
- Sender and message as separate variables, so a second workflow can route by keyword
- Any number of phones: declare deviceId as a variable to tell them apart
Not with this route
- The Slack free plan
- Sending a text from Slack without a workflow tool or a bot
- Signature verification; the forwarding relay covers that
What Slack charges
Workflows that start from a webhook are available on paid Slack plans only. slack.com, checked on September 25, 2026. textbee itself charges a flat monthly plan with messages included; see pricing.
Frequently asked questions
Does this work on the Slack free plan?
No. Webhook-started workflows are a paid feature. On the free plan, use the Slack forwarding page: an incoming webhook plus a small relay you host.
How is this different from the forwarding relay?
The relay is a short script you host that verifies the textbee signature and posts through a Slack incoming webhook. Workflow Builder needs no hosting and no code, but cannot verify the signature. Pick the relay when you need verification or run the free plan.
Can I send a text from Slack?
Not with Workflow Builder alone. A Make, Zapier or n8n flow started from Slack, or a small Bolt app with a slash command, sends through the textbee endpoint. Both routes are on this page.
Can several phones post to the same channel?
Yes. Register one textbee webhook per account, all pointing at the same Slack URL. Declare deviceId as a variable and include it in the message to show which number received the text.
Why did a text arrive late?
textbee delivers the webhook once the phone has uploaded the text. A phone that was offline delivers its backlog when it reconnects, and each delivery is retried for a while if Slack answers with an error.
Can the workflow mention the right person for a keyword?
Yes. Build a second workflow, or add a condition step where your plan offers it, that checks the message variable for a keyword and posts to a different channel or mentions a user.
Can I see who a text is from as a contact name?
Slack only gets the number in sender. Put Make, Zapier or n8n between textbee and Slack to look the number up in your CRM and pass the name as an extra variable.
How fast does a text reach the channel?
Within a few seconds of the phone uploading it. A phone that was offline delivers its backlog when it reconnects, so a burst of old texts after an outage is expected.
How long does the setup take?
About five minutes with a phone at hand: install the textbee app, register the phone, create an API key, and build a webhook workflow in Workflow Builder. Receiving adds a webhook in the textbee dashboard and the same workflow.
Sources
- slack.com, checked on September 25, 2026
- slack.dev: Flatten JSON for Workflow Builder, checked on September 25, 2026
Read next
- Forward SMS to Slack with a relay
- A two-way SMS support inbox on your own Android number
- Receiving SMS into your app with a webhook from your own Android number
- Shopify SMS integration: order and shipping texts from your own phone with Shopify Flow
- WooCommerce SMS integration: order texts from your own phone with one code snippet
- All integrations
Your phone is already an SMS gateway. Switch it on.
Set up in minutes and send your first message for free. No credit card, no per-message fees, no carrier contracts.
Need self-hosting help or a custom integration? See services