FlowRunner
PricingContact
Theme
Start Free

Salesmsg

Messaging

Send SMS and MMS from your Salesmsg business lines directly from agent workflows. Agents create and update contacts, browse message and conversation history, and pick the right inbox (phone number) before dispatching a text.

8 actions API key available
Salesmsg website ↗ Platform Documentation ↗ Capability data verified 2026-07-28
A new lead submission arrives from a [Typeform](/integrations/typeform) form connected to the pipeline
List Contacts searches Salesmsg for the lead's phone number to avoid creating a twin
Create Contact adds the lead with an E.164 phone number, name, and email when no match exists
List Inboxes resolves which business line should own this lead based on territory
List Conversations confirms no rep already has an open thread with this contact
The assigned rep reviews the drafted first text and approves, edits, or kills it
Send Message dispatches the approved SMS from the territory's inbox
The new thread and its delivery status post to the sales channel in [Slack](/integrations/slack)

What This Integration Enables

Salesmsg is built for two-way texting from real business lines with shared inboxes, which makes it the wrong tool to treat like a blast gateway and exactly the right tool for conversations that need to start fast and stay accountable. A text lands on someone's personal phone within seconds, which is why FlowRunner agents do everything around the send at machine speed and leave the send itself to a person when the message is a first touch. - Agents sync leads from forms, storefronts, and CRMs into Salesmsg as contacts, keyed on E.164 phone numbers - Agents resolve the right inbox before dispatch, so the local line a customer knows is the line that texts them - Agents pull message and conversation history on a schedule and log it where ops and managers actually look - Agents keep contact records current from the system of record with partial updates that never clobber untouched fields - The [human-in-the-loop](/concepts/human-in-the-loop) gate sits exactly where it belongs: between the drafted message and the customer's phone

Without FlowRunner

First touch waits in a queue Web leads sit until a rep works through the backlog, and the ones who filled out a form an hour ago have already moved on
Contacts drift apart The CRM has one phone number, Salesmsg has another, and nobody knows which one the customer actually answers
Texting history is a silo Conversations live only inside the texting app, invisible to the CRM, to reporting, and to the manager running the pipeline review

With FlowRunner

Drafts ready in seconds, sends gated by a person Agents prepare the contact, pick the inbox, and draft the message the moment a lead lands, and a rep approves before anything reaches a phone
One record, kept in sync Agents create and update Salesmsg contacts from the system of record, so the number the rep texts is the number that works
Every thread lands where the team looks List Messages and List Conversations feed threads into spreadsheets and CRM activity logs on a schedule, without anyone exporting

Use Case Scenarios

The first text goes out in minutes, approved by a human

A demo request lands through [Typeform](/integrations/typeform). The agent runs List Contacts against the submitted phone number, calls Create Contact when the lead is new, and uses List Inboxes to pick the line for the lead's region. It drafts a short first text referencing the form they filled out, then routes the draft to the assigned rep. The rep tweaks one sentence and approves. Send Message fires from the regional inbox, and the lead gets a text from a local number while the interest is still warm. The agent handled the plumbing; the rep owned the words.

The texting channel finally shows up in reporting

Every night, an agent pages through List Messages and List Conversations for each inbox, then appends new activity to a running log in [Google Sheets](/integrations/google-sheets): timestamp, contact, direction, inbox, and delivery status. A weekly rollup posts to [Slack](/integrations/slack) with thread counts per rep and per line. The revenue team stops guessing what happens on the texting channel, and the numbers come from the actual message history rather than from memory.

The CRM and the texting app stop disagreeing

When a record changes in [HubSpot](/integrations/hubspot), an agent resolves the matching Salesmsg contact with List Contacts, then calls Update Contact to sync the phone, name, and email. Because Update Contact only changes the fields provided, the sync never wipes data Salesmsg holds that the CRM does not. When a deal moves to a stage that warrants a check-in text, the agent drafts it, attaches the deal context, and waits for the owner to approve before Send Message goes out.

Human-in-Loop Highlight

Send Message is the one operation on this page that cannot be taken back. An SMS reaches a customer's personal phone in seconds, gets read within minutes, and there is no unsend, no edit, and no quiet retraction if the message named the wrong deal, quoted the wrong price, or went out from the wrong inbox so the customer sees an unfamiliar number. So FlowRunner agents in a Salesmsg workflow stop before the send: "New lead Dana Reyes from the pricing page form. Drafted first text from the Austin line: 'Hi Dana, saw you were looking at the Growth plan. Want me to send over the comparison?' Send, edit, or skip?" The rep answers in one tap. Everything before that moment ran at machine speed. The moment itself belonged to a person, because the message carries the company's name into someone's pocket.

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

8 actions

Messages

2
  • Send Message Sends an outbound SMS or MMS from one of your Salesmsg inboxes. Takes a Contact ID or an E.164 phone number, the message body, and the Inbox ID that owns the sending line, and returns the created message with its delivery status. The action this page's human gate exists for.
  • List Messages Retrieves a paginated list of messages across the account, optionally scoped to an inbox, a contact, or a conversation. The backbone of logging and reporting workflows.

Contacts

4
  • List Contacts Retrieves a paginated list of contacts with an optional search term across name, phone, and email. The lookup step that keeps sync workflows from creating twins.
  • Get Contact Retrieves a single contact by ID, including name, phone, email, and metadata. Used to gather full context before a draft or an update.
  • Create Contact Creates a new contact from an E.164 phone number, with optional name and email. The step that turns a form submission into someone the team can text.
  • Update Contact Updates an existing contact by ID. Only the fields provided are changed, which makes it safe for one-way syncs from a system of record.

Conversations

1
  • List Conversations Retrieves a paginated list of message threads, optionally scoped to an inbox. Used to check for open threads before a new outreach and to feed activity reporting.

Inboxes

1
  • List Inboxes Retrieves the phone lines configured in the account. Each inbox is a sending and receiving number, and its ID is required for every send, which makes this the routing step before any outbound text.

Frequently Asked Questions

What can FlowRunner do with Salesmsg?

FlowRunner agents can run Send Message, List Messages, and List Contacts in Salesmsg, plus 5 more actions.

Does connecting Salesmsg to FlowRunner require OAuth?

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

Can Salesmsg trigger a FlowRunner workflow automatically?

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

Start building with Salesmsg

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