FlowRunner
PricingContact
Theme
Start Free

sendSMS

Messaging

Connect AI agents to sendSMS, a Romanian CPaaS and SMS gateway with Viber support. Agents send messages, run batch campaigns, generate and check OTP codes, manage contacts and blocklists, and look up numbers via HLR and MNP so Romanian and international messaging runs end to end.

Verified 44 actions API key available
sendSMS website ↗ Platform Documentation ↗ Capability data verified 2026-08-12
Order marked shipped in the ERP
Agent reads the customer's mobile number and the courier reference from the order
Agent runs Lookup Number to confirm the number is live and on the network it claims
Agent runs Check Blocklist so a customer who opted out is never messaged
Agent sends the notification with Send SMS With Unsubscribe Link
Delivery state read back with Get Message Status and written onto the order
Ops lead approves any resend that would bypass the duplicate filter

What This Integration Enables

sendSMS is a Romanian CPaaS run by sendSMS Solutions in Bucharest, and its API is shaped by a market that takes GDPR literally. Most gateways treat the unsubscribe link as copy you remember to paste. sendSMS makes it an operation: Send SMS With Unsubscribe Link is a separate action from Send SMS, and it substitutes or appends a unique opt-out link wherever the body says to put it. That is a small design choice with a large consequence for automation, because it means an agent can be pointed at the compliant send path by configuration rather than by discipline.

The rest of the surface follows the same instinct toward checking before spending. Lookup Number resolves portability, Lookup Number HLR resolves live subscriber state, and Check Route Price returns what a destination will actually cost before anything is queued. Blocklist membership is queryable with Check Blocklist rather than inferred from a failure. Batch campaigns are created, started and stopped as distinct operations, so assembling a campaign and dispatching one are never the same call. Send OTP and Check OTP run a zero-knowledge scheme in which the gateway never stores the code, verifying by hash instead. Put together, this is a connector for teams whose Romanian and international messaging has to be defensible after the fact, not just delivered.

Without FlowRunner

Consent handled outside the send The unsubscribe path lives in a policy document, not in the message
Bad numbers found by failure Dead and ported numbers are discovered from delivery reports after the spend
Retries done by instinct A message that looks undelivered gets sent again with no record of who decided

With FlowRunner

Consent carried in the message The send action that appends the unsubscribe link is the default path for anything promotional
Numbers checked before the spend Portability and subscriber state are resolved before the message is queued
Retries are an approved exception Bypassing the duplicate filter is a decision a named person makes, with the send history in front of them

Use Case Scenarios

Delivery Notifications That Do Not Waste Sends

An order is marked shipped in NetSuite. The agent reads the customer's mobile number and runs Lookup Number, which returns the destination country and the network the number currently sits on after portability. If the number resolves to a network the account has no route to, the agent reads Check Route Price, sees the cost, and routes the notification to email instead. Otherwise it calls Check Blocklist, then sends with Send SMS With Unsubscribe Link so the recipient always has a lawful exit. The message UUID is stored on the order and Get Message Status supplies the delivery state, cost and part count back into the ERP record.

A Campaign That Assembles Itself and Waits

Marketing produces a recipient file from a Google Sheets segment. The agent builds the file into Create Batch Campaign, which returns a batch ID and parses the recipients without sending anything. It polls Get Batch Campaign Status until parsing completes, reads the message count, and compares that count against Get Account Balance so an underfunded campaign never starts and stalls halfway. Only then does it post the assembled batch for approval. Start Batch Campaign is the dispatch, and Stop Batch Campaign can pause a run in progress, though messages already handed to the networks are not recalled.

Verification Without Holding the Code

A signup flow needs to verify a Romanian mobile number. The agent calls Send OTP, which returns the salt, the expiry and a request UID while the code itself is never stored by the gateway. The user enters the code, the agent calls Check OTP, and a wrong code comes back as a normal verification miss with the attempt counters rather than as an error. Three misses and the flow stops trying and raises a support task in Jira with the request UID attached, because at that point the question is not whether the code was mistyped but whether the number belongs to the person signing up.

Human-in-Loop Highlight

sendSMS filters duplicates by default: identical recipient and message pairs are dropped after ten sends within two hours, and the send response reports how many were already sent. Send SMS carries an explicit bypass for that filter, and the bypass is exactly the control an over-eager retry loop reaches for. A flow that reads an ambiguous delivery status, decides the message did not land, and turns the filter off has removed the only brake between one customer and a stream of identical texts, with the spend and the complaint both arriving later. So the agent stops there. It posts to the operations lead with the evidence the gateway already gave it: "Order 84-2210, customer +40 727 xxx xxx. Get Message Status returns submitted but not acknowledged after 40 minutes. Get Recent Messages shows this exact body sent to this number 3 times in the last 2 hours, and the duplicate filter has been suppressing further attempts. Approve a resend with the duplicate filter bypassed, or approve a call instead?" The human-in-the-loop moment is not approving a text message. It is deciding to switch off a consumer protection the vendor turned on for a reason.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

44 actions

Messaging

4
  • Send SMS Sends one message to one recipient and returns the message UUID. Supports a sender label, delivery report URL and mask, charset, data coding, message class, automatic encoding detection for non-Latin alphabets, URL shortening, channel selection and a bypass for the duplicate filter.
  • Send SMS With Unsubscribe Link The same send with a unique GDPR unsubscribe link appended, or substituted wherever the body marks its position. This is the send to reach for on anything promotional, because the exit path travels with the message.
  • Resend Message Resends a previous message by its UUID to the same recipient with the same content, returning a new UUID along with network codes, part count and text length.
  • Check Route Price Returns the price the account can expect to pay for a message to a given destination, with the routing status and a readable description. Used as a cost guard before a large or international send.

Delivery and Inbound

4
  • Get Message Status Returns delivery status, cost and part count for one message by UUID. Rate limited by the vendor, so per-message polling at volume should be replaced by a delivery report URL supplied at send time.
  • Get Recent Messages Lists the account's most recent sends with destination, sender, status, cost, parts, UUID and the acknowledged, delivered and failed timestamps. Used to reconstruct what an account has actually been sending.
  • Get Inbound Messages Returns inbound messages with an ID above a supplied last ID, capped per call. Poll this with a rising last ID to build a reply-handling loop, since inbound delivery is dashboard configured and cannot be subscribed to from a flow.
  • Get Message Statistics Returns summarized traffic counters for the account: messages sent and received, and delivery reports requested and received.

Batch Campaigns

5
  • Create Batch Campaign Creates a bulk campaign from a comma-delimited recipient file and returns the batch ID. Creating a batch parses recipients without dispatching anything.
  • List Batch Campaigns Lists every batch on the account with its ID, name, status code and whether it can be deleted.
  • Get Batch Campaign Status Returns a single batch's progress: status code plus the number of messages contained, processed, delivered, failed and remaining.
  • Start Batch Campaign Starts sending a batch that is waiting or paused. This dispatches every message in the batch and is billed accordingly.
  • Stop Batch Campaign Stops or pauses a running batch. Messages already handed to the networks are not recalled, which is why the approval belongs before the start rather than after it.

One-Time Passcodes

2
  • Send OTP Generates a passcode, sends it by SMS and returns the salt, expiry timestamp and request UID. The gateway never stores the code itself.
  • Check OTP Verifies a passcode by hash against the returned salt. A wrong code is reported as a normal verification miss with the attempt counters, not as a failed call.

Number Intelligence

3
  • Lookup Number Runs a mobile number portability lookup and returns the destination country, the current network name and the porting result immediately.
  • Lookup Number HLR Runs a synchronous HLR query and returns live subscriber state, including number status and network codes. Requires HLR to be enabled on the account by the vendor.
  • Request HLR Lookup Queues an asynchronous HLR lookup and returns a request ID, with the result delivered later by callback. Used for bulk hygiene runs where waiting on each answer is impractical.

Address Book

7
  • List Contact Groups Lists every address book group on the account with its ID and name.
  • Create Contact Group Creates a group and returns its ID for use when adding contacts or listing members.
  • Delete Contact Group Permanently deletes an address book group.
  • List Contacts Lists the contacts in one group with their ID, phone number and name fields.
  • Create Contact Adds a contact to a group and returns the new contact ID. The phone number is mandatory and must be in international format.
  • Update Contact Updates the phone number or name fields of an existing contact. Fields left blank keep their current values.
  • Delete Contact Permanently removes a contact from the address book.

Blocklist

4
  • Get Blocklist Lists every blocked number with its entry ID and the timestamp it was added.
  • Add To Blocklist Adds a number to the blocklist so it is filtered out of batch campaigns. This is the operation an inbound opt-out handler should call.
  • Remove From Blocklist Removes a number from the blocklist, allowing it to receive filtered campaigns again. Reversing a stated opt-out is a decision worth routing to a person.
  • Check Blocklist Reports whether a number is blocked. The gateway signals a blocked number with a duplicate-record code rather than a plain flag, and the connector normalizes that into a straightforward answer.

Account and Credit

4
  • Get Account Balance Returns the account's remaining credit. Used as a preflight guard before a batch so a campaign never stalls partway through.
  • Get Account Info Returns the account profile: balance, name, phone number, currency, default country prefix and time zone.
  • Get Account Phone Number Returns the verified phone number registered on the account.
  • Get Pricing List Returns the per-network price list covering every routed country and mobile network. Used to model campaign cost before committing to a destination mix.

Sub-Users and Keys

7
  • Create Sub-User Creates a sub-user beneath the account with its own username, password and email address.
  • Transfer Funds Moves credit from the main account to a sub-user, or pulls it back with a negative amount. This moves real balance between accounts, so it belongs behind an approval in any flow that runs it.
  • Authorize Application First step of the three-step API key flow. Registers an application name and returns a short-lived request key.
  • Allow Token Request Second step of the API key flow. Approves the request key using the account credentials on the connection.
  • Get API Key Final step of the API key flow. Exchanges an approved request key for the API key itself.
  • List API Key IP Addresses Lists the IP addresses the key is locked to. Worth checking first when authenticated calls start failing from a new environment.
  • Add API Key IP Address Adds an IP address to the key's allowlist, restricting where the key may be used from.

Attachments and Utility

4
  • List Attachments Lists the account's SMS attachments and shortened URLs with their IDs, names, MIME types and content type.
  • Upload Attachment Fetches a file from a URL into sendSMS as an attachment and returns its ID and the short URL to embed in a message body.
  • Execute Multiple Runs several sendSMS actions in a single request and returns their results in order. Used to collapse a chatty sequence into one round trip.
  • Ping Calls the gateway's connectivity check. Documented as taking no credentials, so it confirms reachability independently of whether the key is valid.

Frequently Asked Questions

What can FlowRunner do with sendSMS?

FlowRunner agents can run Send SMS, Send SMS With Unsubscribe Link, and Resend Message in sendSMS, plus 41 more actions.

Does connecting sendSMS to FlowRunner require OAuth?

No. sendSMS connects to FlowRunner with an API key, no OAuth flow required.

Can sendSMS trigger a FlowRunner workflow automatically?

sendSMS doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with sendSMS

$100 in credits. No card required. Connect in minutes.