FlowRunner
PricingContact
Theme
Start Free

CRM Messaging

Messaging

Connect AI agents to CRM Messaging, a messaging layer that adds SMS, WhatsApp, and voice to a CRM. Agents send SMS and WhatsApp messages, manage contacts, read message history, and place voice calls so customer outreach runs from one workflow.

Verified 8 actions API key available
A CRM record moves to a stage that owes the customer a same day message
Agent pulls the phone number and the merge values from the CRM record
Agent calls Get Message History for that number to see the last exchange and whether a WhatsApp customer service window is still open
Agent calls Send WhatsApp Message inside an open window, or Send WhatsApp Template when it has closed
Agent re-reads Get Message History and confirms the record carries a delivery status rather than an error code
Agent writes the outcome and the credits consumed back onto the CRM record
When a send returns insufficient credit partway through a batch, the agent stops and asks the revenue operations owner how to resume

What This Integration Enables

CRM Messaging is not trying to be an SMS gateway. It is the send path for a system that already knows who the contact is, which is why the whole surface is eight actions: three sends, one history read, three contact writes and one voice call. The bet is that the hard part of customer messaging was never the transport. It was knowing which channel this person is reachable on right now, and getting that fact back into the record that the next human opens. Everything in this connector serves that bet, and nothing in it duplicates a gateway you already have.

Two design facts shape how agents use it. First, Get Message History returns SMS and WhatsApp together in one list, newest first, with the channel, direction, delivery status, credits consumed and any error code on every record, which makes it both the delivery report and the window check in a single call. Second, the vendor reports two of its failures with HTTP success codes: a 204 means the message was not sent because the account is out of credit, and a 201 on a contact route means a required parameter was missing. FlowRunner's connector reads the response status itself and raises both as errors rather than letting a message that never left the building resolve as a successful send. That single behavior is the difference between an automation exception you can act on and a customer who quietly never heard from you.

Without FlowRunner

Channel picked by habit The rep texts or messages on WhatsApp based on what they did last time, with no record of which window is open
Sends recorded nowhere Outbound messages live in a messaging tool and the CRM record shows only that someone said they followed up
Credit runs out silently A run stops in the middle and nobody learns which customers were actually contacted

With FlowRunner

Channel chosen from evidence The agent reads the message history and picks free-form or template based on what the record shows
Every send lands on the record Channel, direction, delivery status and credits consumed are written back where the next person will look
Exhaustion becomes a decision A stalled batch surfaces as a named boundary with a resume choice rather than as an unexplained gap

Use Case Scenarios

The window decides the message, not the rep

A support case in Zendesk closes and the customer is owed a satisfaction follow up. The agent calls Get Message History for that number and reads the timestamp and direction of the most recent inbound record. If the customer messaged within the last day, the WhatsApp customer service window is open and the agent calls Send WhatsApp Message with plain conversational text. If it is not, Meta requires an approved template, so the agent calls Send WhatsApp Template with the registered template name and the matching language code. The rep never has to remember which rule applies, and the message that goes out is the one the channel will actually deliver.

One address book, kept current from the system of record

Contacts in the CRM Messaging portal drift the moment a number changes anywhere else. An agent watching HubSpot for contact updates calls Create Contact for new numbers and Update Contact for changed ones, carrying the name, email, up to five custom values and the group the contact belongs to. Because Update Contact sends only the fields supplied, an enrichment pass can add a name without wiping a group assignment made by someone else. Neither action consumes credit, so the sync can run as often as the source changes rather than on a schedule chosen to save money.

A voice call as the escalation, not the default

A payment retry fails for the third time on a high value account. Text has already been tried twice and the message history shows both delivered and neither answered. The agent posts the account detail into the finance channel in Slack and waits. The collections owner decides that this one warrants a call, and on their approval the agent calls Make Voice Call with the text the account manager approved, played through text to speech from a sender number already associated with the account. The call is billable and it rings a real person, which is exactly why it sits behind a person rather than behind a retry counter.

Human-in-Loop Highlight

The hazard on this connector is not a wrong message. It is a run that stops halfway and cannot be safely restarted. CRM Messaging publishes no balance action anywhere in its eight, so there is no way to ask in advance how much credit is left. The only signal that the account is empty is a 204 returned by a send that did not happen, which the connector raises as an error at exactly the moment the batch is already partly done. Say 240 appointment reminders are queued and 37 have gone out when the 204 lands. Retrying the whole list double texts those 37 people, and a duplicate reminder to a customer is the kind of thing that gets a sender number reported. Skipping to record 38 assumes the boundary is exactly where the error surfaced, which is an assumption about someone else's billing system. So the agent does not guess. It stops, calls Get Message History for the run window to establish which numbers actually carry a delivered record, and asks: "37 of 240 reminders are confirmed delivered before the account hit insufficient credit. Top up and resume from the 38th confirmed record, resend the full list and accept duplicates for those 37, or hold until morning?" The revenue operations owner answers in Slack and the flow continues from there. This is the digital andon cord applied to the one thing a messaging integration genuinely cannot reason about on its own, which is what a duplicate costs this particular customer.

Agent processes routinely
Detects insufficient credit
Clear match Continues automatically
Ambiguous Routes to human via Slack
Human decides
Agent resumes with decision

Agent Capabilities

8 actions

Messaging

3
  • Send SMS Sends a single SMS to one number in international format through the account's connected SMS number, with an optional media URL that upgrades the message to MMS where the connected number supports it. Used for the transactional message that has to arrive regardless of which apps the customer has installed. The account must be on a paid plan with a number already added, and a send made without sufficient credit is raised as an error rather than reported as a success.
  • Send WhatsApp Message Sends a free-form WhatsApp message over the account's connected WhatsApp Business number, with an optional media URL for an image or document. Used inside an open 24 hour customer service window, where conversational text is allowed. Outside that window Meta requires an approved template, so an agent checks the history first and falls back to Send WhatsApp Template.
  • Send WhatsApp Template Sends a message built from a template already registered and approved in Meta's WhatsApp Manager for the connected number, which is the only way to open a new WhatsApp conversation outside the 24 hour window. The template name and language code must match the approved template. Supports dynamic button URLs and catalog product templates, so an agent can send an actionable message rather than a dead end notification.

Reporting

1
  • Get Message History Retrieves sent and received messages for the account, newest first, across SMS and WhatsApp in one unified list of up to 500 records per page. Every record carries the channel, direction, delivery status, credits consumed and any error code. This is the delivery report, the window check and the audit trail in a single call, and it is the route to poll because the vendor exposes no webhook subscription a flow could register against.

Contacts

3
  • Create Contact Adds a contact to the CRM Messaging portal address book so it can be messaged and grouped. The phone number is the contact's identity and the only required field, with five custom fields available for arbitrary data and an optional group. Creating a contact sends nothing and consumes no credit, so a sync can run as often as the source system changes.
  • Update Contact Updates an existing portal contact, matched on its phone number, sending only the fields supplied so that omitted values are left untouched. Used to enrich a record created earlier with a name, an email, custom values or a group without overwriting work someone else did in the portal.
  • Delete Contact Permanently removes a contact from the portal address book, matched on its phone number. This cannot be undone. Message history already recorded for that number is unaffected, so the record of what was said survives the removal of who it was said to.

Voice

1
  • Make Voice Call Places an outbound voice call that plays either text converted to speech or a pre-recorded audio file fetched from a public URL, from a sender number already associated with the account. The content type and the content must match or the call is rejected. This places a real, billable call to a real handset, which is why it belongs behind a human decision rather than inside a retry loop.

Frequently Asked Questions

What can FlowRunner do with CRM Messaging?

FlowRunner agents can run Send SMS, Send WhatsApp Message, and Send WhatsApp Template in CRM Messaging, plus 5 more actions.

Does connecting CRM Messaging to FlowRunner require OAuth?

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

Can CRM Messaging trigger a FlowRunner workflow automatically?

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

Start building with CRM Messaging

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