Pushferry

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

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:

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.