FlowRunner
PricingContact
Theme
Start Free

Connect AI agents to smoove, the Israeli marketing automation platform, through its official REST API. Agents manage contacts and lists and trigger campaigns off events in the systems of record.

32 actions API key available
Smoove website ↗ Platform Documentation ↗ Capability data verified 2026-08-02
A scheduled poll of Get Landing Page Subscribers finds submissions since the last run
Create Or Update Contact writes each one with per-channel consent for email, SMS and WhatsApp set explicitly
Get Bulk Contact Statuses removes anyone unsubscribed or blacklisted before a channel is chosen
Get WhatsApp Templates returns each template's approval status and language
The segment's language mix is compared against the templates that are actually approved
The proposed template per language group and the unmatched remainder post to the marketing channel
A marketing owner confirms the pairing, and Send WhatsApp Campaign runs against the approved groups

What This Integration Enables

smoove is an Israeli marketing automation platform, and the most consequential thing about its API is that WhatsApp is not an afterthought. Of the marketing platforms in this catalog, smoove is one of very few that treats WhatsApp as a first-class campaign channel with its own approved templates, its own recipient reporting and its own delivery statistics, sitting alongside email and SMS rather than bolted underneath them. Consent follows the same logic: Create Or Update Contact sets per-channel permission for email, SMS and WhatsApp explicitly, so a contact who wants messages on one channel and not another is representable rather than approximated.

The second design decision worth building around is addressing. Most contact and campaign operations accept a Look Up By choice, so a record can be reached by smoove ID, email, cellphone or an external ID you assigned. Set an external ID at creation and no system downstream ever has to store smoove's identifiers, which removes an entire class of sync drift. The API publishes no webhook registration endpoints, so there is nothing to subscribe to: the connector is built for polling, and Get Landing Page Subscribers or Get Contacts filtered by how recently a record changed are the practical entry points. FlowRunner agents run that polling, resolve the audience, and hand over the decisions that reach real people.

Without FlowRunner

One channel for everyone Email is the default because it is the only channel the automation knows how to reach
Consent tracked per person A single subscribed flag stands in for three separate channel permissions
Smoove identifiers stored everywhere Every external system keeps a copy of smoove's contact IDs and drifts out of sync with them

With FlowRunner

Channel chosen per contact Email, SMS and WhatsApp are separate permissions and separate campaign operations
Consent tracked per channel A contact can be reachable on WhatsApp and suppressed on email, and the workflow respects both
Your own identifiers throughout External IDs address contacts and campaigns, so nothing downstream has to store smoove's keys

Use Case Scenarios

Form submissions collected on a schedule rather than a webhook

smoove's landing pages, popups and embedded forms capture leads, but there is no event to subscribe to. So the agent polls Get Landing Page Subscribers for each form on a schedule, writes new submissions into the CRM in HubSpot, and calls Create Or Update Contact to record per-channel consent exactly as the form captured it. Because the poll is a workflow step rather than a platform feature, the agent controls the cadence, the deduplication and what happens when the same person submits twice, and Check Contact Exists gives it a cheap guard before it decides between a create and an update.

Migrating a database without inheriting a second set of identifiers

A team moving an existing subscriber database into smoove calls Bulk Import Contacts with their own external IDs on every record, subscribing all of them to the same lists in the same request. smoove returns an import report summarising how many records were added, updated and rejected, and the agent writes that report to Google Sheets so the rejected rows are worked rather than lost. From then on, every operation addresses contacts by the external ID the source system already knows, so the CRM, the warehouse and smoove all agree on who a person is without a mapping table between them.

Reporting that treats three channels as one programme

After a multichannel push, the agent pulls Get Campaign Statistics for the email, Get SMS Recipients for the text, and Get WhatsApp Statistics for the WhatsApp campaign, then joins them on the contact so a single person's reach across all three is one row instead of three reports. Get Campaign Recipients supplies the per-recipient detail behind the engagement segments. Log Communication closes the loop in the other direction, writing a sales call or a meeting onto the contact's smoove timeline so the marketing history and the human history are the same history.

Human-in-Loop Highlight

Send WhatsApp Campaign is where this connector's judgement problem lives, and it is not about volume. WhatsApp campaigns are sent from registered templates, and Get WhatsApp Templates reports each template's approval status, category, language, and the sample parameters it expects in the order the template defines them. Only approved templates can be sent. That creates a specific failure an agent will walk straight into: the Hebrew template is approved, the English one is still pending, the segment is mixed, and the mechanically correct move is to send everyone the template that exists. A person receiving a marketing message in a language they did not opt into, from a brand they do know, is not a delivery statistic. It is the kind of mistake that gets a number reported.

So the agent resolves the segment, groups it by the language on each contact's record, checks that grouping against the approved templates, and stops. It posts the automation exception to the marketing channel: "Launch campaign, 3,100 contacts. Hebrew template approved, covers 2,640. English template still pending approval, 460 contacts have no approved template in their language. Send to the Hebrew group now and hold the rest, send everyone the Hebrew template, or hold the whole campaign until the English template clears?" A marketing owner answers, and the human-in-the-loop step returns the decision so the send runs against exactly the groups that were approved. The agent never invents a language match, because a WhatsApp message cannot be unsent.

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

32 actions

Lists

4
  • Get Lists Retrieves the contact lists in the account, optionally with a live contact count for each, with paging and sorting. List IDs are what campaign and subscription operations target.
  • Get List Retrieves one list with its public and internal names, descriptions and subscription permissions. Checked before pointing a signup flow at a list, to confirm it is still publicly subscribable.
  • Create List Creates a contact list with an internal name, an optional public name and description shown to subscribers, and control over whether it appears on public forms and whether visitors may subscribe or unsubscribe themselves.
  • Get List Contacts Retrieves the contacts subscribed to one list, optionally including custom field values, linked list memberships and the timestamp each contact joined. The operation an audience export or a single-list sync is built on.

Contacts

14
  • Create Or Update Contact Creates a contact, or updates the existing record when the address is already known and the update flag is set. Lists can be subscribed and unsubscribed in the same call, and per-channel consent for email, SMS and WhatsApp is set explicitly rather than inferred.
  • Update Contact Updates a contact addressed by contact ID, email, cellphone or external ID, writing only the values supplied. The override flag additionally clears fields sent deliberately empty, which is the difference between a partial update and a replacement.
  • Get Contacts Retrieves active contacts with paging, narrowed by partial email or cellphone match, exact name, an ID range, or how many days since signup or last change. That last filter is what makes incremental synchronisation possible without a webhook.
  • Get Contact Retrieves one contact in full, looked up by smoove ID, email, cellphone or external ID, optionally including custom field values and list memberships. The natural enrichment call when a workflow needs everything smoove knows about a person.
  • Check Contact Exists Checks whether a contact is present without returning the record. A cheap guard before choosing between a create and an update, accepting any of the four lookup keys.
  • Get Contact Status Retrieves one contact's subscription status, reporting active, unsubscribed, blacklisted or deleted. Checked before sending to someone whose record originated outside smoove.
  • Get Bulk Contact Statuses Retrieves subscription statuses for many contacts at once with paging. Far cheaper than checking individually, and the recommended way to reconcile suppression state across a large external database.
  • Unsubscribe Contact Unsubscribes a contact from all communications and records a free-text reason. The record is retained for reporting and suppression rather than deleted, which keeps the consent history intact.
  • Resubscribe Contact Restores a previously unsubscribed contact. This overrides a recorded opt-out, so it belongs only where a fresh documented opt-in exists, and never inside an automated cleanup.
  • Bulk Import Contacts Imports many contacts in one request, optionally subscribing all of them to the same lists, and returns an import report of records added, updated and rejected. The efficient path for a database migration, with the rejected rows visible rather than silent.
  • Get Unsubscribed Contacts Retrieves opted-out contacts with paging and filters for partial email match, exact names and an unsubscription date range. Used to keep an external suppression list aligned with smoove.
  • Get Blacklisted Contacts Retrieves the hard-suppressed addresses, which can never be mailed regardless of list membership. These typically originate from hard bounces and complaints, making this the definitive list to mirror into any other sending system.
  • Get Contact Fields Retrieves every contact field on the account, built-in and custom, with each field's key, label, data type, options and group. The returned keys are what custom field values are supplied against.
  • Log Communication Records a manual touchpoint on a contact's timeline, such as a phone call, meeting, website chat or postal mailing. Keeps the offline history and the automated history in one place for sales teams working alongside campaigns.

Campaigns

6
  • Create Email Campaign Creates an email campaign and optionally sends or schedules it in the same call. The audience is assembled from list IDs, explicit contact IDs and addresses with separate exclusions, and link tracking, from and reply-to addresses and unsubscribe handling are all controllable.
  • Send Email Campaign Sends an existing campaign immediately or schedules it for later, addressed by smoove ID or by the external ID assigned at creation. Using the external ID means the workflow never has to store smoove's own campaign keys.
  • Delete Email Campaign Deletes a campaign, addressed by smoove ID or external ID. Used to clear out drafts created in error or test campaigns generated by an automation.
  • Get Campaign Statistics Retrieves aggregated performance for an email campaign, covering sends, opens, clicks, soft and hard bounces, unsubscribes, resubscribes and abuse reports. The figure set that belongs in a dashboard rather than a screenshot.
  • Get Campaign Recipients Retrieves per-recipient results with delivery status, open and click counts, last opened date, bounce classification and unsubscribe flag, with paging for large sends. This is the source an engagement segment is built from.
  • Get Campaign Templates Retrieves the custom email templates saved on the account with names and preview images. Passing a template name at campaign creation means a new campaign inherits an approved design instead of raw HTML.

Messages

4
  • Send SMS Campaign Creates and sends an SMS campaign to whole lists, specific contact IDs or raw mobile numbers, schedulable for later. The same operation can deliver the message as a text-to-speech voice call instead, which is a genuinely different reach decision.
  • Get SMS Recipients Retrieves per-contact delivery results for an SMS campaign, addressed by smoove message ID or external ID, with paging. The way to reconcile which numbers actually received a message.
  • Send WhatsApp Campaign Creates and sends a WhatsApp campaign from an approved template, with parameters supplied in the order the template defines them. The audience can be whole lists, specific contacts or raw numbers, and delivery can be scheduled.
  • Get WhatsApp Templates Retrieves the registered WhatsApp templates with approval status, category, language, header, body, footer, buttons and sample parameters. Only approved templates can be sent, so this is the check that belongs in front of every WhatsApp campaign.

Reports

1
  • Get WhatsApp Statistics Retrieves delivery statistics for a sent WhatsApp campaign, reporting sent, received, read, failed and unknown counts with the send timestamp. Used to measure WhatsApp reach against email and SMS on the same programme.

Landing Pages

3
  • Get Landing Pages Retrieves the landing pages, popups, embedded forms and Facebook forms in the account, optionally narrowed to one form type. The returned form IDs drive both of the operations below.
  • Get Landing Page Retrieves one landing page or form by ID with its title and type. Checked before wiring an automation to a form's subscribers, so a deleted form fails loudly.
  • Get Landing Page Subscribers Retrieves the contacts that submitted a specific form, with paging and optional custom field and list membership data. Because the API publishes no webhooks, polling this on a schedule is how a workflow reacts to new submissions.

Frequently Asked Questions

What can FlowRunner do with Smoove?

FlowRunner agents can run Get Lists, Get List, and Create List in Smoove, plus 29 more actions.

Does connecting Smoove to FlowRunner require OAuth?

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

Can Smoove trigger a FlowRunner workflow automatically?

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

Start building with Smoove

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