Roezan
MessagingConnect AI agents to Roezan, an SMS marketing platform built for course creators and webinar funnels. Agents send SMS and MMS, manage contacts, lists, and tags, and draft, preview, and schedule broadcasts so launch sequences and reminders go out on schedule.
What This Integration Enables
Roezan is an SMS marketing platform operated by Roezan LLC of Saint Petersburg, Florida, and it is built for course creators and webinar funnels. That specificity matters more than it usually does, because the business it serves has a distinctive shape. The entire revenue event happens inside a window of a few hours. The difference between a good launch and a bad one is show up rate, and show up rate is decided by a handful of messages sent at exactly the right moments. Email cannot carry that. SMS can, which is why this category of business runs on it and why a platform built specifically for it looks different from a general purpose gateway.
Where that difference lives is the broadcast, and this connector is shaped around it. Roezan splits sending a broadcast into two calls that most platforms combine into one. Create Broadcast produces a draft targeting one or more lists and returns the recipient count and the credit estimate. Nothing is sent. Schedule Broadcast is the separate act that confirms the draft and queues it, and it is where the credit budget is enforced: a broadcast that would exceed the budget stays a draft rather than partially sending. Cancel Broadcast reverts a pending broadcast to an editable draft, and works right up until sending starts. That is a vendor designing a pause into its own product, and it is worth building every launch flow around it rather than treating the draft as an intermediate step to rush through.
The preview is the other unusual piece and it needs reading carefully. Preview Broadcast sends a single test message to one phone and returns the exact rendered body, its SMS or MMS classification, and its segment count. It is a real send, it consumes credits, it never creates a contact, and it never changes the broadcast's state. The segment count is the reason to run it. A message of three or more segments, or one carrying any media, becomes MMS and is billed at three segments per recipient. So a single emoji added to a body at the last minute can triple the cost of a fifteen thousand person broadcast. Finding that out on a preview costs one message. The four write broadcast routes also accept an idempotency key that Roezan caches for twenty four hours, so a network retry cannot dispatch or bill a broadcast twice.
Without FlowRunner
With FlowRunner
Use Case Scenarios
A webinar reminder ladder that respects the clock
A course creator runs a live webinar on Thursday at two. The agent builds the ladder against the registration list in Memberspot: a confirmation at registration, a reminder the day before, a reminder ninety minutes out, and a room is open message at start. Each is created as a draft first, because Create Broadcast returns the recipient count and the credit estimate against the list as it stands right now, and the list grows all week. The ninety minute message is the one that matters, and it is also the one where an off by one hour error means the entire ladder was pointless. So the scheduled time is set explicitly, in a stated timezone, and confirmed by a person rather than derived. Registrations arriving after the ladder is built are handled by Subscribe Contact To List, which creates the contact when the number is new.
Cart abandonment on a launch that closes
A launch closes Friday at midnight and the checkout is open all week. The agent watches Stripe for started and unfinished checkouts, and rather than blasting the whole list, uses Send Message to reach individuals one at a time with a message referencing the specific offer they left. That distinction is deliberate: a broadcast targets lists, an individual send targets a person, and a person who abandoned a checkout an hour ago is not a segment. Add Contact Tags marks them as contacted so a later broadcast can exclude them, since tags on this platform are applied to existing tags rather than created by the send. When someone completes, the agent runs Remove Contact Tag, and Get Contact Messages provides the history that keeps a customer from receiving four messages in an evening.
Reconciling what actually went out
Roezan's writes are asynchronous. Contact creation, list subscription, and tagging all answer with a queued acknowledgment, so a read immediately after a write may not reflect it yet. A launch flow that assumes otherwise will produce broadcasts targeting lists that do not yet contain the people who just registered. So the agent reconciles rather than assumes: Get Broadcast returns status and delivery counters and is the correct answer to whether a broadcast sent, and Get Broadcast Recipients returns the contact identifiers it was actually sent to, captured at send time rather than recomputed afterward. Those identifiers are the ground truth for attribution, and they are retained for roughly ninety days, so anything that needs to outlive that window is written to HubSpot while it still exists. Discrepancies between intended and actual recipients become automation exceptions rather than a footnote in a launch report.
Human-in-Loop Highlight
The gate on Roezan is Schedule Broadcast, and specifically the absence of a parameter rather than the presence of one. Omitting the send time on Schedule Broadcast does not leave the broadcast unscheduled and it does not fall back to the time stored on the draft as a default. It sends the broadcast immediately, to every targeted list, at once. Send now and a scheduled time are mutually exclusive on that call, which means the dangerous case is not a conflict the API will reject, it is a field that quietly is not there. A flow binding the scheduled time to an upstream value, a timezone lookup that returns nothing, a date parse that fails soft, a mapped field that was renamed last week, does not produce an error. It produces the launch blast, on a Tuesday morning, three days early, to a list of fifteen thousand people. Cancel Broadcast only works before sending starts, and on an immediate send there is no before.
So the agent never lets that parameter be implicit. It creates the draft, reads back the recipient count and the credit estimate, runs one Preview Broadcast to a phone the launch owner is holding, and then stops with everything on the table. Into Slack: "Broadcast draft ready: 'Doors close tonight', targeting 2 lists, 14,812 recipients, estimated 14,812 credits at 1 segment each. Preview sent to your phone at 10:42, rendered as SMS, 1 segment, 148 characters. Requested send time resolved to 2026-08-14 19:00 America/New_York from the launch record. Confirm this time. Scheduling without an explicit time on this API sends immediately and cannot be canceled once sending starts." Stating the consequence of the empty case in the ask is the part that does the work, because it turns a rubber stamp into a real reading of the timestamp.
That is the digital andon cord under Orchestration as a Service, placed on a default rather than on an action. The interesting property of this gate is that Roezan already built most of it: the draft state, the credit estimate, the real preview, and the idempotency key are all the vendor's own work, and all a flow has to do is refuse to skip them. What deliberately stays unattended is the individual send. Answering one person who abandoned a checkout, tagging them, subscribing a new registrant, are all small, reversible, and the reason anyone bought the platform. Unsubscribe Contact From List is worth one note in the other direction: it is a per list removal rather than an account wide opt out, so a flow handling a stop request should not assume it has honored one.
Agent Capabilities
18 actionsMessaging
1- Send Message Sends one SMS or MMS to one phone number, creating the contact if it is new. Accepts a body, up to ten media URLs, or both, and a media only message is allowed on this route. It answers once queued, so the response confirms acceptance rather than delivery.
Contacts
6- Create Or Update Contact Creates a contact or updates the existing one with the same phone number, applying list subscriptions and tags in the same call. Tags, fields, and memberships are applied asynchronously, so a read straight afterward may not show them yet.
- Get Contact Looks one contact up by phone number or email, returning the Roezan contact identifier, opt in state, applied tags, and currently subscribed lists. Supplying neither a phone nor an email is refused before the request is issued.
- Get Contact Messages Returns a contact's message history newest first, including broadcasts, with direction, type, status, segment count, and originating channel. The read that stops a person receiving four messages in one evening from three different flows.
- Get Contact Lists Returns the lists a contact is currently subscribed to. Unsubscribed memberships are retained by Roezan as history and are deliberately excluded here, so this answers what is true now rather than what was ever true.
- Add Contact Tags Applies existing tags to a contact. It does not create the tag itself, so the tag has to exist first.
- Remove Contact Tag Removes one tag from a contact without deleting the tag.
Lists
3- Get Lists Returns every contact list with its identifier, name, and contact count in one response. The read that tells a launch flow how big an audience actually is before a broadcast is drafted against it.
- Subscribe Contact To List Subscribes a contact to a list, creating the contact when the number is new. The action behind late registrations joining a ladder already in flight.
- Unsubscribe Contact From List Removes a contact from one list. This is a per list unsubscribe rather than an account wide opt out, which matters when handling a stop request.
Tags
1- Get Tags Returns the account's tags with a pagination block. The route publishes no parameter to advance the page, so an account with more tags than one page sees only the first.
Fields
1- Get Custom Fields Returns the account's custom contact fields with their machine keys, labels, and declared types. Custom fields are read only through this API: no documented route writes a custom field value onto a contact.
Broadcasts
6- Create Broadcast Creates a draft targeting one or more lists and returns the recipient count and the credit estimate. Nothing is sent by this call. Targeting is by list only, and segment or event targeting is rejected rather than silently ignored. A time given here is stored as intent, not scheduled.
- Get Broadcast Returns status and delivery counters. The correct answer to whether a broadcast actually sent, since the send call only confirms queueing.
- Preview Broadcast Sends a single test message to one phone and returns the exact rendered body, its SMS or MMS classification, and its segment count. This is a real send that consumes credits. It never creates a contact and never changes the broadcast's state, and the segment count is the number worth reading, because media or three segments makes it MMS billed at three segments per recipient.
- Schedule Broadcast Confirms a draft and queues it. Omitting a time sends the broadcast immediately; otherwise the time given here wins over the draft's stored time, and a stored time already in the past is rejected. The credit budget is enforced at this step, and a broadcast that would exceed it stays a draft.
- Cancel Broadcast Reverts a pending broadcast to an editable draft. It only works before sending starts, which is why an immediate send has no recall path at all.
- Get Broadcast Recipients Returns the contact identifiers the broadcast was actually sent to, captured at send time rather than recomputed. The ground truth for attribution, retained for roughly ninety days.
Frequently Asked Questions
What can FlowRunner do with Roezan?
FlowRunner agents can run Send Message, Get Lists, and Get Custom Fields in Roezan, plus 15 more actions.
Does connecting Roezan to FlowRunner require OAuth?
No. Roezan connects to FlowRunner with an API key, no OAuth flow required.
Can Roezan trigger a FlowRunner workflow automatically?
Roezan doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Roezan
$100 in credits. No card required. Connect in minutes.