How to forward SMS to Slack from an Android phone
2026-09-12
Most guides for "SMS to Slack" assume you are willing to move your number into a cloud phone system first. That works if you are building a call centre. It is overkill when all you want is for the texts that already arrive on a phone — a shop's number, a shared on-call SIM, the number your bank sends codes to — to show up in a Slack channel where the right people will see them.
This guide takes the other route: the phone stays yours, the SIM stays in it, and an app on the phone forwards each incoming SMS to Slack the moment it arrives. Ten minutes, no carrier paperwork, and nothing to pay per message.
What you need
- An Android phone with the SIM card whose messages you want in Slack. An old phone from a drawer is fine — it will sit on a charger and do this one job.
- A Slack workspace where you can add an app (or ask an admin to do it for you).
- A free Pushferry account. The free plan covers one phone with unlimited forwarding, and no card is required.
Step 1 — Create a Slack incoming webhook
Slack's "Incoming Webhooks" feature gives you a URL; anything posted to that URL appears in a channel you choose.
1. Open api.slack.com/apps and click Create New App → From scratch. Name it something like "SMS inbox" and pick your workspace.
2. In the app's settings, open Incoming Webhooks and switch it on.
3. Click Add New Webhook to Workspace, choose the channel (for example #sms-inbox) and allow it.
4. Copy the webhook URL. It starts with https://hooks.slack.com/services/….
Treat that URL like a password: anyone who has it can post into the channel.
Step 2 — Connect the phone
1. Sign up at app.pushferry.com and confirm your email. 2. Install the Pushferry app on the phone (from the download page or, once it is listed, from Google Play). 3. In the web dashboard open Devices → Pair with a code. Type the code into the app. 4. The app asks for SMS permissions — it needs them to read incoming texts — and then for one more thing: permission to keep running in the background. Do not skip that step. On Xiaomi, Samsung and a few other brands the phone will otherwise put the app to sleep overnight and quietly stop forwarding.
Send a text to the phone. It should appear in the dashboard's message list within a few seconds. If it does, the phone is connected.
Step 3 — Add the Slack rule
1. In the dashboard open Forwarding → Add a forwarding rule. 2. Pick Slack — post to a channel as the destination and paste the webhook URL. 3. Leave the filter on All incoming for now — that means "every incoming SMS". 4. Save, then send a text to the phone — it should land in your channel within a few seconds.
That is the whole setup. From now on every SMS that arrives on that phone is posted to #sms-inbox with the sender's number, and the phone keeps doing it after a reboot.
Making it useful: filters
Forwarding everything is rarely what you want. A few filters make the channel readable:
- By sender. Only texts from your payment provider, your courier or a specific customer. Enter a number or a sender name; partial matches work.
- By keywords. "code", "OTP", "delivery", "verification" — the rule fires only when the text contains them. Regular expressions are supported if you want precision (for example
\d{4,6}for "a 4–6 digit code"). - By SIM card. On a dual-SIM phone, route the work SIM to
#sms-inboxand the private one nowhere at all.
You can have several rules pointing at different channels: verification codes to #dev-otp, customer replies to #support, everything else to a quiet archive channel.
Sending replies from Slack
Forwarding is one direction. If you also want to answer customers from your desk, Pushferry exposes the same phone as a small API: a POST with a number and a text, and the phone sends it from your own number. Slack itself cannot call an arbitrary API from a message, but Zapier, Make and n8n can — so "reply in a thread → SMS goes out" is an afternoon of glue work, not a new phone system. The API docs have the two calls you need.
Where the message text goes
This is worth knowing before you forward customer conversations anywhere. Pushferry's phone app posts to Slack directly from the device: the text travels from the phone to Slack's webhook and never through Pushferry's servers. What Pushferry's cloud keeps is metadata — when a message arrived, which rule matched, whether the delivery succeeded — so the dashboard can show you a log. The words themselves are not stored. Slack, of course, keeps them, under your workspace's retention settings.
Common problems
Messages stop arriving after a night. Almost always the phone's battery optimiser. Open the app's phone status screen; if it says "Battery saver may stop forwarding", tap Allow background work and, on Xiaomi/Huawei/Oppo, also enable autostart for the app.
Some messages arrive and others do not. Check the filters: a keyword filter is case-sensitive unless you start it with (?i), and a sender filter must match how the sender actually appears on the phone (a short code like 12345, a name like DHL, or a full number with country code).
Two copies of every message. You have two rules that both match. Add a filter to one of them, or delete the duplicate.
Slack returns an error in the delivery log. The webhook was revoked or the channel was archived. Create a new webhook and update the rule.
Compared with the "proper" way
A cloud phone system (porting your number to a VoIP provider and enabling SMS on it) gives you a shared inbox, threading, and per-seat billing. It also takes days, may cost extra per message, and moves the number off the SIM for good. Forwarding from the phone gives you Slack delivery today, keeps the number exactly where it is, and costs nothing for one phone. If you later outgrow it, nothing stops you from porting the number then — you will not have lost anything by starting simple.