D7 Networks
MessagingConnect AI agents to D7 Networks, a multichannel business messaging gateway based in Dubai. Agents send SMS, WhatsApp, Viber, and Slack messages, verify OTPs, and look up numbers and delivery status so global customer messaging runs through one API.
What This Integration Enables
D7 Networks is a Dubai-based messaging gateway, and the thing worth understanding about it is that it is one product wearing five channel names. One host, one bearer token, one documentation tree, and one credit balance carry SMS, Slack, Viber, WhatsApp, one-time passwords, and HLR number lookup. Get Balance returns a single figure, and every one of those channels draws it down. That is convenient right up to the moment a marketing campaign and an authentication flow are competing for the same number, which is why this page spends so much of its attention on cost.
Two design decisions in this connector matter more than the action count. The first is that channel selection is not exposed as a parameter. D7's send route dispatches by a channel field in the request body, and each action pins its own channel instead of offering it as a choice, so a value bound to a template cannot quietly re-route a send onto a surface, and a billing line, that nobody asked for. The second is that the verification code never enters the flow. Send OTP has D7 generate and store the code, Verify OTP has D7 check it, and the agent only ever sees a request identifier and a verdict of APPROVED, FAILED, EXPIRED, or ALREADY_VERIFIED. There is no step in which the secret is a variable an agent could log, echo, or hand to a model.
The WhatsApp surface here is Meta's official Business Platform rather than a session gateway. That shows up structurally: message identifiers are Meta wamid values, the 24-hour customer service window is enforced so free-form messages only reach people who messaged you first, templates go through WhatsApp approval, and conversations are billed per Meta's marketing, utility, authentication, and service categories. Practically, it means an agent can hold a real conversation with a customer who opened one, using text, media, locations, contact cards, reply buttons, list menus, and Flow forms, and must fall back to an approved template for anyone who did not. There are no triggers on this connector, because D7 pushes receipts to a per-message report URL or to a single global endpoint set by hand in the dashboard, and registering a subscription would overwrite the account's own production endpoint. Delivery outcomes are read with Get Message Status, Get Viber Message Status, and Get WhatsApp Message Status instead.
Without FlowRunner
With FlowRunner
Use Case Scenarios
A campaign priced against the balance that keeps logins working
A retail team wants a WhatsApp offer sent to customers across six markets. The agent pulls the list from HubSpot, runs Look Up Number over it to drop numbers that are no longer live, and calls Get WhatsApp Pricing to get the conversation price for each of those six markets, since a marketing conversation in one country and a marketing conversation in another are not the same money. Then it calls Get Balance, which is the number that also pays for every SMS the shipping notifications send and every code Send OTP delivers at the login screen. The agent produces one summary: what the campaign will cost, what will be left, and what that remainder is worth in verification traffic at current SMS pricing. It does not send. The costing is the deliverable, and the send is a separate decision made by a person who knows whether this week is the right week to spend the account down.
Verification the flow is not trusted to hold
A signup flow needs to confirm a phone number. The agent calls Send OTP with the destination, the channel, the code length, and the expiry, and D7 mints and stores the code. When the user types it in, the agent calls Verify OTP and receives a verdict. If the user says nothing arrived, Resend OTP redelivers within the resend allowance the original request set, and Get OTP Status reads the current state without consuming the attempt. The design point is what is absent: no branch of this flow ever contains the code. A developer reading the execution log of a failed signup sees a request id and a status, which is exactly as much as they need and no more than they should have.
An inbound conversation an agent can carry and a person can take over
A customer messages the business on WhatsApp, which opens the 24-hour window. The agent marks the message read with Mark WhatsApp Message As Read so the customer sees the check marks, pulls any attached photo with Download WhatsApp Media into FlowRunner file storage, and reads the order from Shopify. For a routine question it answers with Send WhatsApp Text Message, or offers a choice with Send WhatsApp Reply Buttons. When the photo shows damage, the value is above the auto-approval threshold, or the customer's tone has changed, the agent stops. It posts the thread, the image, and the order into Slack as an automation exception and a person answers the next message themselves. The window is open either way, so handover costs nothing extra.
Human-in-Loop Highlight
The gate on D7 is the shared balance, and it is a real gate rather than a courtesy one because of how the account is built. Get Balance returns one number. Send WhatsApp Template Message opens a new billed Meta conversation for every recipient it reaches outside the 24-hour window, priced per market and per category, and it is drawing on the identical credit that Send OTP draws on when a customer is standing at a login screen. A campaign large enough to be worth running is large enough to leave the authentication path short, and nothing in the API will warn you, because as far as D7 is concerned both were legitimate sends.
So the agent does all of the work and stops before the spend. It has already dropped the dead numbers with Look Up Number, already priced each market with Get WhatsApp Pricing, and already read the remaining credit. What it posts to Slack is a question with the arithmetic attached: "WhatsApp campaign ready for 6 markets, 14,200 recipients. Estimated conversation cost is 812.40 against a balance of 1,090.00. That leaves roughly 4,600 SMS verification codes at current pricing. Send all 6 markets, or hold ES and IT for next week?" A person answers that in the Flow conversation, and the release is what runs Send WhatsApp Template Message.
That is the shape human-in-the-loop is supposed to take under Orchestration as a Service. The judgment being asked for is not "does this copy look right," which is a review the agent could have skipped. It is a trade-off between two kinds of traffic that share one meter, and it needs somebody who knows what next week looks like. Two other actions belong behind the same treatment for their own reasons. Look Up Number is billed per number, so an agent sweeping a large uncleaned list is spending real money to learn that the list is bad, and Get Number Lookup Status exists precisely so a result can be re-read without paying twice. Send WhatsApp Limited-Time Offer Template carries a live countdown and an offer code that a customer will hold you to, which makes the wording of it a commercial commitment rather than a message.
Agent Capabilities
32 actionsAccount and Pricing
3- Get Balance Returns the current credit balance on the account the token belongs to. One figure covers every channel, so this is the reading that tells you whether a campaign and the verification traffic behind it can both be paid for this week.
- Get SMS Pricing Returns this account's SMS price per destination as a country-code-to-cost map, either for every country D7 routes to or narrowed to one. Used to convert a remaining balance into a message count before committing to a send.
- Get WhatsApp Pricing Returns this account's WhatsApp conversation prices. Meta bills per 24-hour conversation rather than per message and rates differ by market and by conversation category, so this is the figure that decides what a WhatsApp campaign actually costs.
SMS
2- Send SMS Sends one or many SMS with GSM or Unicode content, optional scheduling, a per-message delivery report URL, a client reference tag, and an optional pre-send network check. The workhorse for order updates, reminders, and alerts.
- Get Message Status Reads per-recipient delivery state, billed parts, and cost for an SMS or Slack request. This is the poll that replaces a delivery webhook, and the billed part count is what reconciles a send against the balance.
Slack and Viber
3- Send Slack Message Posts text to a public or private Slack channel through D7's Slack channel, billed on the same account credit as the messaging channels. Useful when internal notification should travel the same audited path as customer traffic.
- Send Viber Message Sends a promotional or transactional Viber business message, optionally carrying an image, a video, or a call-to-action button. The right surface in markets where Viber is the messenger people actually open.
- Get Viber Message Status Reads per-recipient delivery state and Viber cost for a Viber request. Separate from the SMS status route because Viber is billed on its own terms.
Verification
4- Send OTP Has D7 generate, store, and deliver a one-time code over SMS or WhatsApp, with configurable code length, alphabet, expiry, resend delay, and resend allowance. The code is never returned to the flow.
- Resend OTP Regenerates and redelivers the code for an existing request, within the resend allowance the original request declared. Used when a customer says nothing arrived rather than starting a second verification.
- Verify OTP Checks a code the end user typed and returns APPROVED, FAILED, EXPIRED, or ALREADY_VERIFIED. The agent branches on the verdict and never handles the secret.
- Get OTP Status Reads the current state of a verification request without consuming an attempt. Used when a flow resumes after a wait and needs to know whether the user already completed the step.
Number Lookup
2- Look Up Number Runs an HLR lookup returning country, network, carrier code, ported flag, reachability, and line type. Billed per lookup, so it is worth running against a list once and storing the answer rather than repeating it.
- Get Number Lookup Status Re-reads a previous lookup by request id without paying for a second one. The action that makes a large lookup sweep affordable to reference again later.
WhatsApp Free-Form Messages
5- Send WhatsApp Text Message Sends text of up to 4096 characters with WhatsApp formatting and optional link preview, inside an open 24-hour customer service window. The default reply in a live conversation.
- Send WhatsApp Reaction Places an emoji reaction on a message the customer sent, addressed by its message id. A cheap acknowledgment that a long-running request was received while the real answer is being assembled.
- Send WhatsApp Media Message Sends an image, video, document, audio file, or sticker from a public URL. Used to return an invoice, a shipping label, or a photo of the replacement part being discussed.
- Send WhatsApp Location Sends a map pin with an optional place name and address. Used for pickup points, service appointments, and dispatch confirmations.
- Send WhatsApp Contacts Sends one or more contact cards carrying names, phone numbers, emails, addresses, organization, and URLs. The clean way to hand a customer off to a named specialist.
WhatsApp Interactive Messages
5- Send WhatsApp Call-To-Action Button Sends one tappable button that opens a URL, with an optional text, image, video, or document header. Used to move a conversation to a payment page or a booking page without pasting a raw link.
- Send WhatsApp Reply Buttons Sends up to three predefined reply buttons and receives the tapped button's id by webhook. Turns a free-text question into a branch the flow can act on without parsing language.
- Send WhatsApp List Message Sends a button that opens up to ten sections holding a combined maximum of ten selectable rows, with a text header. The right control when the customer needs to choose from a menu rather than confirm a decision.
- Send WhatsApp Location Request Sends a Send Location button prompting the customer to share where they are. Used by field service and delivery flows that need an address the customer never typed correctly.
- Send WhatsApp Address Message Sends a structured delivery-address form. WhatsApp supports this in India and Singapore only, so a flow using it needs a fallback for every other market.
WhatsApp Templates
5- Send WhatsApp Template Message Sends any WhatsApp-approved template with body variables, header media, and quick-reply, call-to-action, or copy-code button values. This is the only way to reach someone who has not messaged you in the last 24 hours, and it opens a billed conversation for each recipient.
- Send WhatsApp Carousel Template Sends up to ten horizontally scrollable cards, each with a media header, body, and at least one button. Built for product sets and multi-option offers rather than single announcements.
- Send WhatsApp Limited-Time Offer Template Sends an offer code with an expiry date and a live countdown, restricted to marketing templates. The countdown is a commitment the customer can see, so the wording is a commercial decision rather than copy.
- Send WhatsApp Authentication Template Delivers a verification code your own system generated as a one-tap autofill, zero-tap, or copy-code button. Used when you already own the code and want WhatsApp delivery rather than D7's managed verification.
- Send WhatsApp Flow Template Opens a published WhatsApp Flow, a multi-screen in-chat form, with an optional prefill payload. Used to collect structured intake inside the conversation instead of sending someone to a web form.
WhatsApp Reporting
3- Get WhatsApp Message Status Reads per-message state, conversation type, conversation id, and failure reason for a WhatsApp request. The conversation id is what ties a message back to the billed conversation it belongs to.
- Mark WhatsApp Message As Read Shows the blue check marks against an inbound message. Small, but it is the difference between a customer who thinks they were heard and one who sends the same question again.
- Download WhatsApp Media Downloads inbound media by media id into FlowRunner file storage and returns a URL. The step that turns a customer's photo of a damaged item into something a later action can attach to a ticket or a claim.
Frequently Asked Questions
What can FlowRunner do with D7 Networks?
FlowRunner agents can run Get Balance, Get SMS Pricing, and Get WhatsApp Pricing in D7 Networks, plus 29 more actions.
Does connecting D7 Networks to FlowRunner require OAuth?
No. D7 Networks connects to FlowRunner with an API key, no OAuth flow required.
Can D7 Networks trigger a FlowRunner workflow automatically?
D7 Networks doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with D7 Networks
$100 in credits. No card required. Connect in minutes.