SMS8
MessagingConnect AI agents to SMS8, an Android SMS gateway that sends messages through your own paired phones and SIM cards. Agents send SMS and MMS, run personalized batches, read inbox and delivery states, and manage contacts and OTP codes so messaging runs over your own SIMs without buying carrier routes.
What This Integration Enables
SMS8 is an Android SMS gateway, and that single fact reorganizes everything about how you should automate against it. There is no carrier route being rented here. You pair your own Android phones with the SMS8 app, and the API queues messages that those handsets send over their own SIM cards. The vendor's own positioning is that this avoids the A2P registration and per-message carrier pricing that a traditional gateway involves. What it means in practice is that your throughput is the number of handsets you have plugged in, your sender is a real mobile number that recipients will read as a person, and the traffic runs on consumer mobile contracts you signed. That is a genuinely different set of trade-offs, and it suits a specific job: modest-volume, high-response messaging where a reply from a customer needs to land somewhere a human can read it.
The connector exposes the whole surface: sending SMS and MMS, personalized batches where every recipient gets its own body, broadcasts to a stored contacts list, reading the inbox and delivery states, retrying failed traffic, managing contacts with an opt-out path, listing paired devices, reading USSD responses, and issuing and verifying one-time passwords. Device routing is shared across every send: use exactly the devices you list, use every enabled device on its default SIM, or use every enabled device and every SIM. Because it is a per-message parameter rather than a connection setting, one flow can send codes from a single random handset while another spreads a batch across the whole fleet. And to clear up a misfiling this service inherits from some catalogs: SMS8 exposes no WhatsApp surface at all. It is SMS, MMS, USSD and one-time passwords over your own SIM.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Field Notifications That Look Like They Came From a Person
A property maintenance firm dispatches contractors from ClickUp. When a job is assigned, the agent sends the address and window with Send SMS routed to the office handset, so the message arrives from the number tenants already have saved. Replies land back on that handset and are read by the flow with List Messages filtered to the Received status, which is how the inbox is polled on this connector. A reply containing a reschedule request opens a task back in ClickUp. The whole exchange happens on one mobile number that a person can also pick up and answer directly.
Personalized Batches Without One Request Per Recipient
An after-school program sends every parent their own child's pickup time. Rather than looping a send per recipient, the agent builds the whole run into Send Batch Messages, where each entry carries its own number and its own body and may attach its own media. That is one request instead of a hundred, which matters because the constraint on this gateway is the handsets, not the API. Device routing spreads the batch across every enabled phone and SIM so the run drains faster, and the agent reads back the results with List Messages filtered to the send group.
Codes From One Handset, Deliberately
A workshop needs to verify walk-in customers. The agent calls Send OTP Code, which generates a code, stores its hash with an expiry and an attempt counter, and sends it from a paired phone. Routing here narrows to a single random device rather than the whole fleet, because a code arriving from an unpredictable number is a code the customer does not trust. Verify OTP Code checks the entered value with a constant-time comparison and, on rejection, names the reason: mismatch, expired, not found, or attempts exhausted. Exhausted attempts stop the flow and raise the case in Slack rather than issuing another code.
Human-in-Loop Highlight
Resend Messages is where this connector will hurt you, and the vendor's own documentation is the reason to gate it. It retries messages selected by message ID, by send group, or by status within a time window, taking the same filter shape as List Messages. SMS8 refuses a call with no selector at all, which is a good guard, but a broad selector is still perfectly legal. And there is a subtler trap underneath: the documented status filter offers a short list of values, while the gateway's own message table also holds statuses the filter does not name. A retry aimed at a status the endpoint does not recognize does not fail quietly. It can widen into a mass retry.
Now add what a mass retry means here specifically. These messages do not leave through a carrier's application route. They leave through your own handsets, on your own consumer contracts, from numbers your customers have saved as a person, and a burst of duplicates on those numbers is the kind of traffic that gets consumer SIMs throttled or suspended by their operator. So the agent resolves the selector into a real count before it acts. It calls List Messages with the exact filter it intends to retry, counts the result, and stops: "Retry requested for send group 6641, status Failed, window 09:00 to 11:20 today. List Messages resolves that filter to 412 messages across 138 unique numbers, sent from devices 2 and 3. 61 of those numbers already received a successful message in the same window, so a retry duplicates them. Approve the retry as scoped, approve it narrowed to the 77 numbers with no successful send, or cancel." That is the human-in-the-loop gate: not approving a message, but approving the blast radius of a retry on hardware and phone numbers you own.
Agent Capabilities
14 actionsMessaging
4- Send SMS Sends one body to one or more numbers through a paired Android phone. Every number receives the same text, which is the blast mode. Device routing controls which paired phones and SIM slots carry it.
- Send MMS Sends a picture message through a paired phone, with attachments supplied as public image URLs the gateway hands to the handset. MMS support and cost depend on the SIM's own plan.
- Send Batch Messages Sends a different message to each recipient in one request, each entry carrying its own number and body and optionally its own attachments. This is the personalized send, and it costs one request rather than one per recipient.
- Send To Contacts List Broadcasts one message to every contact in a stored list, identified by its numeric list ID. Unsubscribed contacts are excluded by the gateway, so the opt-out record is enforced at the source.
Delivery and Inbox
3- Get Message Retrieves a single message by ID with its number, body, sending device and SIM slot, status, type and the sent and delivered timestamps. Used to poll the outcome of a send whose ID was captured earlier.
- List Messages Lists messages filtered by send group, status, device, SIM slot and time window, covering both outbound traffic and the inbound SMS the paired handsets received. Filtering by the received status is how a flow reads the inbox, and running the filter first is how a retry gets scoped before it runs.
- Resend Messages Retries delivery of already-queued messages, selected by message ID, by send group, or by status within a time window. Supplying no selector is refused, because it would retry every message on the account.
Contacts
2- Add Contact Adds a number, with an optional friendly name, to one of the account's contacts lists so it can be reached by a broadcast. The resubscribe option brings back a number that previously opted out, and leaving it off never changes an existing opt-out.
- Unsubscribe Contact Removes a number from a contacts list so future broadcasts skip it. This is the opt-out path and it takes effect immediately.
Devices
2- List Devices Lists every Android phone currently paired and enabled on the account with its model, SIM slots and which one is primary. Run it before a send to discover the device identifiers that routing and the SIM-qualified form refer to.
- List USSD Requests Looks up the USSD requests already sent from the account's paired devices and the carrier responses returned. USSD is the carrier menu system reached by short codes, commonly used to check prepaid balance on the SIM itself.
One-Time Passwords
2- Send OTP Code Generates a code, stores its hash server-side with an expiry and an attempt counter, and sends it by SMS through a paired phone. Pairing it with a single named device keeps codes arriving from a consistent number.
- Verify OTP Code Checks a code the user typed against the most recent one issued for that number, using a constant-time comparison. On rejection it returns the reason, which lets a flow distinguish a typo from an expired code from an exhausted attempt count.
Account
1- Get Credit Balance Reports the message credits remaining, returning either a number or an unlimited indicator. Used as the preflight check before a batch is committed.
Frequently Asked Questions
What can FlowRunner do with SMS8?
FlowRunner agents can run Send SMS, Send MMS, and Send Batch Messages in SMS8, plus 11 more actions.
Does connecting SMS8 to FlowRunner require OAuth?
No. SMS8 connects to FlowRunner with an API key, no OAuth flow required.
Can SMS8 trigger a FlowRunner workflow automatically?
SMS8 doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with SMS8
$100 in credits. No card required. Connect in minutes.