FlowRunner
PricingContact
Theme
Start Free

SMSEdge

Messaging

Connect AI agents to SMSEdge, a multi-channel campaign platform for SMS, cold email, and WhatsApp. Agents send single and bulk SMS, verify phone numbers, manage contact lists, run US 10DLC registry traffic, and pull sending statistics so high-volume campaigns stay compliant and measurable.

48 actions API key available
SMSEdge website ↗ Platform Documentation ↗ Capability data verified 2026-08-12
A new US outbound program is approved and needs sending capacity before the first message goes out
Get Registry Campaigns returns the 10DLC campaigns already registered on the account, and Get Registry Numbers returns the numbers currently assigned to each
Analyze Text reports the encoding, length, and part count the planned message body will occupy, which is where a template that quietly became a three-part billable send is caught
Verify Number HLR samples the target list against the mobile network, so the volume estimate is built on lines that are actually live
The operator receives the existing number inventory, the volume the program expects, and the fact that a rental price is reported back after the request rather than before it
The operator sets how many numbers to rent against which campaign, and only then does Assign Registry Numbers run

What This Integration Enables

SMSEdge is operated by Edge Opti Tech LTD in Tel Aviv, and it is unusually candid about what it is for. This is an outbound machine. One API key addresses SMS, contact lists, phone verification, the US 10DLC campaign registry, cold email sending inboxes with their warm-up ramps, and a WhatsApp channel, and the 48 actions divide roughly evenly between putting messages in front of strangers and making sure the infrastructure that does it stays usable. If your problem is running high-volume outbound in the United States, where sending capacity is a registered, rented, regulated thing rather than a setting, this is the connector built around that reality.

Two things are worth stating plainly before a flow is built. The first is that SMSEdge's WhatsApp surface is unofficial. The vendor's own endpoint descriptions say a channel adds a WhatsApp Web account to an organization and is paired by scanning a QR code, so it is a session on a real account rather than Meta's Cloud API, and connected accounts remain subject to WhatsApp's terms. The SMS, email, and verification surfaces are unaffected by that. The second is that this vendor's public developer page and its actual API disagree. The marketing site publishes polished samples for a /v2 namespace with a header credential, and none of that namespace answers; the working interface is /v1 with the key as a query parameter. This connector is built from the vendor's OpenAPI document rather than its marketing page, and every route was confirmed to exist by probe, because routing runs before authentication on this API and a real path answers an unauthenticated request differently from an invented one. Response shapes come from the vendor's own recorded examples, and no send path was contacted during the build.

The verification surface has a distinction worth using. Verify Number is a free local check that normalizes a number and resolves its country, while Verify Number HLR reaches the mobile network and is billed, and only the second one tells you whether a line is live. Running the free one across a whole list and the billed one across a sample is usually the right shape. There are no triggers on this connector even though a webhook subscription exists and seven event types are documented, because webhook_url is a single field on the organization object with no identifier, no listing route, and no way to register a second subscriber. Registering ours would overwrite whatever endpoint the account already relies on. The per-request callback on Assign Registry Numbers is weaker still, since it cannot outlive the request that created it. Both ship as ordinary parameters on ordinary actions instead.

Without FlowRunner

Sending capacity bought by guess Numbers are rented in round figures because nobody has the current inventory in front of them at the moment of the request
Message length discovered on the invoice A body grows past a segment boundary in an edit nobody flagged, and the cost shows up as a line item rather than a warning
Three outbound channels, three tools SMS, cold email inboxes, and messaging each live in a separate product with a separate list of who has opted out

With FlowRunner

Sending capacity bought against inventory Registered campaigns and their currently assigned numbers are read before any rental request is made
Message length measured before the send Analyze Text reports encoding, length, and part count for a body before it is dispatched to anyone
Three channels, one suppression list Unsubscribers, contacts, and lists are account-wide objects, so a person who opted out is opted out everywhere the account sends

Use Case Scenarios

A campaign priced before it is written, not after

An outbound team is preparing a message for a US list. The agent runs Analyze Text on the draft body first, which reports the encoding, the character length, and the part count it will actually be billed as. An emoji dropped into a template by a well-meaning editor collapses the per-part ceiling and turns a one-part message into three, which is a tripling of cost that no error will ever report. The agent then pulls the list from HubSpot, runs Verify Number across it for free to normalize and resolve countries, and samples it with Verify Number HLR to estimate how much of it is live. Get Routes returns the carrier pricing for the destinations that survived. The result is a costed plan, not a send.

Cold email inboxes that get retired before they burn the domain

A sequence runs across several sending inboxes. The agent polls Get Email Server Deliverability and Get Email Server Stats on a schedule, and Test Email Server Connection reports SMTP and IMAP separately, so an inbox with working IMAP and a refused SMTP is visible rather than collapsed into a single failure. When deliverability on one inbox drifts below the threshold the team set, the agent stops using it, opens a ticket in Jira, and reports the ramp state of the remaining inboxes. Note that this vendor returns stored inbox passwords in Get Email Servers, so a flow reading that action is handling credentials and should be built accordingly.

One suppression list across three channels

A recipient replies asking not to be contacted again, and the request arrives through WhatsApp rather than through the SMS opt-out path. The agent calls Unsubscribe Number, which is account-wide rather than per-channel, then Get Unsubscribers to confirm the record landed, and mirrors the suppression into the CRM so the next campaign built there never assembles the number in the first place. Resubscribe Number exists and the agent does not call it. Restoring a suppression is a consent decision, so when a later import contains a number already on the unsubscriber list, the agent raises it as an automation exception with both records attached rather than resolving the conflict on its own.

Human-in-Loop Highlight

The gate on SMSEdge is Assign Registry Numbers, and it is a gate because of the order in which the facts arrive. Renting numbers into a US 10DLC campaign is billable, and the platform answers the request immediately while registration continues in the background. The numbers you got, the price they came at, and the campaign they landed under are reported afterwards, through the optional webhook URL on the request. That inverts the usual sequence. On most billable actions an agent can read a price, weigh it, and then commit. Here the commitment comes first and the invoice describes it. There is no pre-flight quote action anywhere in the 48, and Remove Registry Number releases a number rather than undoing a rental.

So the agent builds the entire case and stops at the number. It reads Get Registry Campaigns for what is already registered, Get Registry Numbers for the inventory currently assigned to each, Get Account Details for the remaining balance, and the program's own volume forecast from the send plan. What it posts is a question with the missing fact declared: "Campaign CMP-4417 currently has 6 assigned numbers carrying roughly 41k messages a month. The new program forecasts another 90k. That suggests 12 to 14 more numbers. SMSEdge bills the rental on assignment and reports the per-number price back on the callback, so I cannot quote this before committing. Assign 12, assign 14, or hold until finance confirms the monthly ceiling?" A person answers that in the Flow conversation, and the answer is what runs Assign Registry Numbers.

That is the shape human-in-the-loop takes under Orchestration as a Service. The agent is not asking for sign-off on a routine call. It is reporting that the price of this particular action is structurally unavailable until after it has been paid, and that a commitment made under those conditions belongs to somebody with budget authority. Two neighboring actions deserve the same care for different reasons. Create WhatsApp Channel pairs a real WhatsApp account by QR code, so it enrolls somebody's personal messaging identity into an outbound program and that person should know. Get WhatsApp Chat History reads the conversation record out of that paired session, which means an agent exporting it is exporting messages a human had, and what is safe to move out of that session is a judgment rather than a filter.

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

Agent Capabilities

48 actions

SMS

5
  • Send SMS Sends one message to one recipient with a sender of up to 11 characters that must already be registered with the account. There is no senders endpoint on this API, so the value is free text rather than a picker.
  • Send Bulk SMS To List Sends one body to every contact of a stored list in a single request. The route for a campaign, as opposed to the single-recipient transactional path.
  • Get Messages Returns sent message records for reporting and reconciliation.
  • Get Sending Report Returns delivery outcomes filtered by status, where the documented values are `sent`, `waiting`, and `failed`. This is the delivery state of messages, distinct from the transport status codes the reference data section reports.
  • Analyze Text Reports the encoding, length, and part count a body will occupy before it is sent. The action that catches a message which silently became a multi-part billable send after an edit.

Contact Lists

4
  • Get Lists Returns the stored contact lists on the account.
  • Get List Info Reads one list with its size and configuration.
  • Create List Creates a stored list, which is what Send Bulk SMS To List addresses.
  • Delete List Deletes a list. Any scheduled work that addresses it by identifier has nothing left to send to.

Contacts

7
  • Get Contacts Returns contacts, filtered and paged, for assembling a segment.
  • Get Contact Info Reads one contact record.
  • Create Contact Adds a phone contact to a list.
  • Create Email Contact Adds an email contact, which is the cold email side of the same contact database rather than a separate system.
  • Delete Contacts Removes contacts. Deletion here removes the record, not the suppression, so a contact deleted after unsubscribing stays unsubscribed.
  • Verify Number Runs a local, free check that normalizes a number and resolves its country. Safe to run across a whole list, because it costs nothing and reaches no network.
  • Verify Number HLR Reaches the mobile network and is billed. This is the only check that says whether a line is live, which makes it the right tool for a sample rather than a sweep.

Unsubscribers

3
  • Get Unsubscribers Returns the account-wide suppression list. Because it is account-wide rather than per-channel, one opt-out covers every surface the account sends on.
  • Unsubscribe Number Adds a number to the suppression list. The reversible-in-principle half of a request that an agent can safely run without asking.
  • Resubscribe Number Removes a number from the suppression list. Restoring contactability is a consent decision, so it belongs with a person rather than a rule.

Campaigns

2
  • Get Campaigns Returns the campaigns configured on the account.
  • Get Automations Returns the automations configured on the account, which is how a flow discovers what the platform is already doing on its own before adding to it.

Reference Data

3
  • Get Routes Returns the carrier routing price list, priced per route per country it serves. The figure that converts a recipient count into a cost.
  • Get Countries Returns the country reference table with its ISO codes.
  • Get Response Statuses Returns the HTTP codes this API uses. It documents the transport, not the delivery state of a message, which is why it is deliberately not wired to the sending report filter.

Reports

2
  • Get Sending Statistics Returns send volume and outcomes over a window of at most seven days, as the vendor documents.
  • Get Ad Text Statistics Returns performance by message body, which is the comparison that tells you whether a variant is worth keeping.

Account

1
  • Get Account Details Returns the username, email, remaining balance, and the account's opt-out link. The balance read before any committing action.

US Campaign Registry

5
  • Send Registry SMS Sends through a registered US 10DLC campaign rather than the general SMS path. The compliant route for US application-to-person traffic.
  • Get Registry Campaigns Returns the 10DLC campaigns registered on the account.
  • Get Registry Numbers Returns the numbers currently assigned to each campaign. Read this before requesting more, because it is the only inventory view.
  • Assign Registry Numbers Rents numbers into a campaign. It is billable, the platform answers immediately while registration continues in the background, and the numbers, their prices, and their campaign are reported back on the callback rather than in the response.
  • Remove Registry Number Releases a number from a campaign. It releases capacity rather than reversing a rental, and the number stops being a reply path for anyone who has it.

Phone Verification

2
  • Send Verification Code Sends a one-time code to a handset. This is a send path and is billed, whatever the flow calls the step.
  • Verify Code Checks a code the user entered. The branch point for a signup that verifies a phone number.

Email Servers

6
  • Get Email Servers Returns the configured cold email sending inboxes. Note that this vendor returns stored inbox passwords here, so a flow reading it is handling credentials.
  • Create Email Server Adds a sending inbox with its SMTP and IMAP configuration and its warm-up settings.
  • Update Email Server Changes an existing inbox. This route addresses the server in the query string while the changes travel in the body, which is the vendor's own shape.
  • Test Email Server Connection Tests the inbox and reports SMTP and IMAP separately, so a working read path with a refused send path is visible rather than collapsed into one failure.
  • Get Email Server Stats Returns sending volume and activity for one inbox, which is how the warm-up ramp is monitored.
  • Get Email Server Deliverability Returns the deliverability picture for one inbox. The signal that decides whether an inbox keeps sending or gets rested before it damages the domain.

WhatsApp

8
  • Get WhatsApp Organisations Returns the WhatsApp organizations on the account, each of which holds many channels.
  • Create WhatsApp Organisation Creates an organization, which is the container a channel is paired into.
  • Update WhatsApp Organisation Changes an organization, including the single `webhook_url` field that all its event delivery depends on.
  • Get WhatsApp Channels Returns the channels under an organization. A channel is one phone line.
  • Create WhatsApp Channel Creates a channel to be paired to a phone line. It enrolls a real WhatsApp account into the platform, so the person whose account it is should be part of the decision.
  • Get WhatsApp Channel QR Code Returns the QR code that pairs a channel to a handset. A channel that has not been paired has no session to send on.
  • Get WhatsApp Chat History Returns the conversation record for a paired channel. This reads messages a human had, so what leaves the session is a judgment call rather than a filter.
  • Send WhatsApp Message Sends a message from a paired channel. It travels over an unofficial WhatsApp Web session rather than Meta's Cloud API, and the connected account remains subject to WhatsApp's terms.

Frequently Asked Questions

What can FlowRunner do with SMSEdge?

FlowRunner agents can run Send SMS, Send Bulk SMS To List, and Get Messages in SMSEdge, plus 45 more actions.

Does connecting SMSEdge to FlowRunner require OAuth?

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

Can SMSEdge trigger a FlowRunner workflow automatically?

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

Start building with SMSEdge

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