FlowRunner
PricingContact
Theme
Start Free

Whapi.Cloud

Messaging

Connect AI agents to Whapi.Cloud, a WhatsApp API for developers. Agents send text, media, and poll messages, administer groups and labels, manage contacts and media files, and react to inbound messages and delivery receipts so WhatsApp conversations run inside automated workflows.

4 triggers 91 actions API key available
On New Message fires when a customer replies to the WhatsApp number this channel is linked to
Agent reads the sender, chat and body from the event, then pulls recent context with Get Messages By Chat
Agent runs Check Contact Exists and Get Contact to resolve the sender to a known customer record
Agent answers with Send Text Message and keeps the returned message identifier
On Message Status confirms the reply was delivered and read, not merely accepted by the API
Agent applies a queue label with Add Label To Chat so the human team sees exactly where the thread stands
Before the agent blocks a number it has judged abusive, a person decides, because a blocked contact's messages stop arriving and nothing reports what was missed

What This Integration Enables

Whapi.Cloud connects a WhatsApp account the way WhatsApp Web does, by scanning a QR code or entering a pairing code, rather than through Meta's official Cloud API. That has one practical consequence worth stating plainly: the channel is a real WhatsApp number belonging to your business, with the reach and the responsibilities that come with it, and connected accounts remain subject to WhatsApp's terms. The token is issued per channel, so one FlowRunner connection controls exactly one number, and an account holding several numbers needs one connection per channel.

What separates this connector from the rest of the WhatsApp field is that it closes the loop. Most WhatsApp APIs will tell an agent that a send was accepted. This one tells the agent what happened next. On Message Status reports the delivery state of every message the channel sent. On New Message covers every inbound type, from text to polls to interactive replies. On Group Update reports membership and settings changes, and On Incoming Call reports a caller the API cannot answer but a flow can follow up with. Around those four events sit ninety-one actions covering sending, message history, chats, contacts, groups, WhatsApp Business labels, a channel media store and the channel's own settings. Agents do the sending, the chasing and the labeling. Humans keep the decisions that reach a customer permanently.

Without FlowRunner

Sends assumed to have landed A successful API call is treated as a delivered message, and nobody finds out otherwise until a customer complains
Threads read one at a time Someone opens WhatsApp on a phone to see what a customer actually said before the last reply
Ownership tracked outside the channel The state of a conversation lives in a spreadsheet next to WhatsApp rather than on the thread itself

With FlowRunner

Delivery confirmed by the channel On Message Status reports sent, delivered, read, played or failed for every message the channel dispatched
Context assembled automatically Get Messages By Chat pulls the thread the reply needs before the reply is composed
State written on the thread Add Label To Chat puts the queue position where the human team already looks

Use Case Scenarios

Proving a notification arrived

An operations flow sends dispatch notifications to customers when a shipment leaves the warehouse. The agent calls Send Text Message with the tracking detail and holds the returned identifier. Minutes later On Message Status fires with the delivery state for that identifier. Messages that reach read are closed out. Messages sitting at sent past a threshold are escalated: the agent checks the number with Check Contact Exists, and if the number is not on WhatsApp at all, it writes the exception to the record in HubSpot and routes a fallback channel instead of resending into a void. The difference between "we sent it" and "they read it" stops being an assumption.

Answering with the thread in hand

A customer replies to a service number. On New Message fires with the message and its chat. Before composing anything, the agent calls Get Messages By Chat to pull what was said earlier in this thread, and Get Contact to resolve who is speaking. It drafts a reply grounded in that history, sends it with Send Text Message, and applies a label with Add Label To Chat so the support team's WhatsApp Business view shows the thread as answered by the agent rather than untouched. Where the reply carries a document, Download Media File writes the attachment into FlowRunner file storage and the flow continues with the file, not with a link that expires.

Running a customer group without a moderator on call

A community group is used for a rollout. On Group Update fires when participants join, leave or change rank, and when the subject or settings are edited. The agent keeps the roster in Google Sheets in sync, welcomes new joiners with Send Text Message, and reviews Get Group Join Requests against the customer list. Requests from numbers already on the account are approved with Approve Group Join Request automatically. Requests from unknown numbers are posted to Slack with what the agent could and could not verify, and the group owner approves or rejects from there. Revoke Group Invite Link is available to the agent when a link leaks, because the cost of revoking is inconvenience while the cost of leaving it live is unbounded.

Human-in-Loop Highlight

Block Contact is the one action in this connector that manufactures the exact thing the rest of it exists to prevent: a confident assumption. Blocking a number on a linked WhatsApp account means that person's messages no longer arrive. On New Message simply never fires for them again, no failure is reported to the flow, and the sender gets no notice either. Unblock Contact restores the future and nothing else, because the messages sent during the block were never delivered and cannot be replayed. So when an agent classifies a thread as abusive or fraudulent and wants it stopped, it stops short of the block. It posts to the operations channel: "Recommend blocking +55 11 9xxxx on channel Support, three messages in the last hour flagged as abusive, thread linked, last order two days ago still open. Block, or label and leave open?" A person answers, and the digital andon cord has done its job: the agent handled everything that could be undone, and stopped at the one action whose silence would be invisible. The reversible neighbors stay with the agent, which is the point. Archive Chat, Add Label To Chat and Mark Message As Read all run unattended, because none of them decides what you will never hear.

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

91 actions

Channel

6
  • Check Channel Health Reports whether the linked WhatsApp session is up. Used as the opening step of any flow that must not queue work against a channel that has quietly disconnected.
  • Get Channel Limits Returns the channel's current usage ceilings. Used before a fan-out so the flow paces itself rather than discovering a limit halfway through a batch.
  • Get Channel Settings Reads the channel's full settings object, including the webhook array that the triggers manage. Used to inspect what a channel is currently configured to do.
  • Update Channel Settings Changes the channel's scalar settings. It deliberately does not expose the webhook list, so an ordinary settings update cannot detach a running trigger.
  • Reset Channel Settings Restores every channel setting to its default. This clears the webhook array as well, so any trigger on the channel has to be re-armed after one.
  • Get Allowed Webhook Events Lists the event names the channel will accept a subscription for. Used when a flow builds or audits a subscription programmatically.

Sending Messages

14
  • Send Text Message Sends a plain text WhatsApp message to a chat. The workhorse of reply, notification and escalation flows.
  • Send Image Message Sends an image with an optional caption. The media value accepts a public URL, a base64 payload, or the id of a file already in the channel media store.
  • Send Video Message Sends a video with an optional caption, using the same three-way media value.
  • Send Audio Message Sends an audio file as an attachment rather than as a voice note.
  • Send Voice Message Sends audio as a WhatsApp voice note, which renders as a waveform the recipient plays rather than a file they download.
  • Send Document Message Sends a document such as an invoice or a shipping label. Used to put a generated PDF in front of a customer in the channel they already answer.
  • Send Sticker Message Sends a sticker. Used in consumer-facing flows where the brand already has a sticker set.
  • Send GIF Message Sends an animated GIF.
  • Send Location Message Sends a fixed coordinate with an optional name and address. Used for pickup points and service addresses.
  • Send Live Location Message Sends a location that updates for a set period. Used during a delivery or a field visit.
  • Send Contact Message Sends a single contact card. Used to hand a customer the right person's details without them retyping a number.
  • Send Contact List Message Sends several contact cards in one message.
  • Send Link Preview Message Sends a link with its preview card rendered rather than a bare URL.
  • Send Poll Message Sends a poll with selectable options. Used for lightweight confirmations where a reply keyword would be misread.

Message History and Actions

12
  • Get Messages Returns messages across the channel. Used for sweeps and reconciliation runs.
  • Get Messages By Chat Returns the message history of one chat. Note that the Only My Messages option is three-valued: on returns only what this channel sent, off returns only what others sent, and leaving it unset returns both, which is what a flow assembling thread context usually wants.
  • Get Message Returns one message by identifier. Used to resolve a delivery receipt back to what was actually said.
  • Forward Message Forwards an existing message to another chat, preserving it rather than retyping it.
  • React To Message Adds an emoji reaction to a message. Used to acknowledge receipt without adding a message to the thread.
  • Remove Reaction From Message Removes a reaction the channel previously added.
  • Star Message Stars a message on the linked account, which is how a human reviewer finds it later in WhatsApp itself.
  • Pin Message Pins a message in a chat so the current instruction stays at the top.
  • Unpin Message Removes a pin.
  • Delete Message Deletes a message the channel sent. Used to withdraw a message sent in error, within the window WhatsApp allows.
  • Mark Message As Read Marks an inbound message as read, which is what tells the customer a person or an agent has picked the thread up.
  • Mark Voice Message As Played Marks a received voice note as played.

Chats

5
  • Get Chats Lists the chats on the channel. Used to build a work queue from what is actually open.
  • Get Chat Returns one chat with its metadata.
  • Archive Chat Archives a chat, clearing it from the active view without deleting anything.
  • Update Chat Settings Changes per-chat settings such as muting.
  • Delete Chat Removes the chat from the linked account. Used only in cleanup flows, because the conversation record goes with it.

Contacts

12
  • Get Contacts Lists the contacts held on the linked account.
  • Get Contact Returns one contact.
  • Get Contact About Returns a contact's About text.
  • Get Contact Profile Returns a contact's profile detail, including the business profile where one exists.
  • Check Contact Exists Confirms whether a single number has a WhatsApp account. The vendor route answers with headers only, so this action reports a clear result rather than passing an empty payload through, and a documented negative simply reads as not existing.
  • Check Phone Numbers Validates a batch of numbers in one call. Used before a fan-out so numbers with no WhatsApp account are routed to another channel instead of silently failing.
  • Add Contact Saves a contact to the linked account's address book.
  • Edit Contact Updates a saved contact.
  • Delete Contact Removes a saved contact from the address book.
  • Send Saved Contact Sends a contact already saved on the account as a card.
  • Get LID By Contact ID Resolves a contact identifier to its LID, the identifier WhatsApp uses in groups and privacy-restricted contexts.
  • Get Contact ID By LID Resolves a LID back to a contact identifier, which is what turns a group event into an action against a known customer.

Groups

19
  • Create Group Creates a WhatsApp group seeded with participants. Used to open a dedicated channel for a project, an order or an incident.
  • Get Groups Lists the groups the channel belongs to.
  • Get Group Returns one group with its participants and settings.
  • Update Group Info Changes a group's subject, description or icon metadata.
  • Update Group Setting Changes a group permission, such as who may post or edit group info.
  • Leave Group Leaves a group. Used when an engagement closes.
  • Add Group Participants Adds participants. An empty list is refused before the request is issued.
  • Remove Group Participants Removes participants. An empty list is refused too, because an omitted selector on a removal is plainly not what the caller intended.
  • Promote Group Admins Promotes participants to admin.
  • Demote Group Admins Demotes admins back to participants, with the same empty-list guard.
  • Get Group Invite Link Returns the group's current invite link.
  • Revoke Group Invite Link Invalidates the current invite link and issues a new one. The action an agent should reach for the moment a link is found somewhere it should not be.
  • Accept Group Invite Joins a group from an invite code.
  • Get Group By Invite Code Reads a group's details from an invite code before joining it.
  • Set Group Icon Sets the group image.
  • Delete Group Icon Clears the group image.
  • Get Group Join Requests Lists pending requests to join. Used as the queue an approval flow works through.
  • Approve Group Join Request Approves a pending request.
  • Reject Group Join Request Rejects a pending request.

Labels

7
  • Get Labels Lists the WhatsApp Business labels on the account. Labels are a Business feature and are absent on a personal account.
  • Create Label Creates a label.
  • Rename Label Renames an existing label without disturbing what it is applied to.
  • Delete Label Deletes a label and its associations.
  • Get Label Associations Returns the chats carrying a given label. Used to read a queue that humans maintain by hand in WhatsApp.
  • Add Label To Chat Applies a label to a chat. This is how an agent writes its state into the view the support team already uses.
  • Remove Label From Chat Removes one label from a chat, leaving the rest in place.

Media

4
  • Get Media Files Lists files in the channel media store.
  • Download Media File Downloads received media into FlowRunner file storage and returns the stored URL, so a later step works with the file rather than with a link that expires.
  • Upload Media File Uploads a file to the channel media store and returns its id. Upload once and reuse the id when sending the same file to many recipients.
  • Delete Media File Removes a file from the channel media store.

Blacklist

3
  • Get Blacklist Lists the numbers currently blocked on the linked account. Used before any outreach so a blocked number is never counted as an unresponsive one.
  • Block Contact Blocks a number on the linked WhatsApp account. Their messages stop arriving and no failure is surfaced, which is why this is the action the flow hands to a person.
  • Unblock Contact Unblocks a number. It restores future messages only; nothing sent during the block is recoverable.

Presence

4
  • Get Presence Returns a contact's presence. It reports nothing until the channel has subscribed to that contact, so call Subscribe To Presence first.
  • Subscribe To Presence Subscribes the channel to a contact's presence updates.
  • Send Typing Presence Shows a typing indicator in a chat before a longer reply lands.
  • Set Own Presence Sets the channel's own presence state.

Account

5
  • Get Own Profile Returns the linked account's profile.
  • Update Own Profile Updates the profile customers see, including the name and About text.
  • Get Own Username Returns the account's username.
  • Set Own Username Sets the account's username.
  • Get Account Registration Date Returns when the WhatsApp account was registered. Used in diligence flows on a number inherited from elsewhere.

Triggers

4 triggers

Event Triggers

4
  • On New Message Fires when a message arrives on the channel, covering every type: text, media, location, contact cards, polls and interactive replies. The event carries the full message object with its identifier, chat, sender, timestamp and type-specific payload. Optional filters restrict it to one chat or to messages whose text contains a given string, and the channel's own outbound traffic is excluded unless Include Own Messages is turned on.
  • On Message Status Fires when the delivery state of a message the channel sent changes to sent, delivered, read, played, failed or deleted. It carries the message identifier, the recipient and the new status, which is what lets a flow confirm a message reached a person rather than only that the API accepted it. Optional filters narrow it to one status or one chat.
  • On Group Update Fires when a group the channel belongs to changes: a new group appears, participants join, leave or change rank, or the subject, description or settings are edited. The event carries the group object or the participant change depending on which group event WhatsApp emitted, and an optional filter restricts it to one group.
  • On Incoming Call Fires when someone calls the WhatsApp number this channel is linked to, carrying the caller, the call identifier and whether it is a video call. The API cannot answer a call, so the useful pattern is logging the missed call and triggering a follow-up message while the caller is still holding their phone.

Frequently Asked Questions

What can FlowRunner do with Whapi.Cloud?

FlowRunner agents can run Check Channel Health, Get Channel Limits, and Get Channel Settings in Whapi.Cloud, plus 88 more actions.

Does connecting Whapi.Cloud to FlowRunner require OAuth?

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

Can Whapi.Cloud trigger a FlowRunner workflow automatically?

Yes. Whapi.Cloud supports 4 triggers that can start a FlowRunner workflow automatically.

Start building with Whapi.Cloud

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