Unified Messaging API
IntroductionReceive and send messages on WhatsApp, iMessage and Telegram through one API.
Bring your existing agent to the apps people already use. Flow Messaging gives it one HTTP API and event format for WhatsApp, iMessage and Telegram, with SDKs for TypeScript and Python.
Keep your model and tools. Receive a message, run your agent and reply to the same conversation; Flow handles channel delivery and sending rules.
Receive and reply
Section titled “Receive and reply”import { FlowMessaging, contentText } from "@flow-engineer/messaging";
const flow = new FlowMessaging(); // reads FLOW_MESSAGING_KEY
for await (const event of flow.events.stream({ types: ["message.received"] })) { const said = contentText(event.data.message.content); await event.conversation.reply("You said: " + said, { idempotencyKey: event.id, });}Install with npm install @flow-engineer/messaging. The quickstart
gets you a test key and a Telegram sandbox conversation before running this loop.
Check it worked: send a message from your phone and receive it back as “You said: …”.
Choose a channel
Section titled “Choose a channel”Start on the shared sandbox, then connect your own bot.
WhatsAppConnect your own number with a live key.
iMessageTry Flow’s shared line free, then get a line of your own.
What Flow handles
Section titled “What Flow handles”| You do | Flow does |
|---|---|
| Receive events | Delivers one event format through signed webhooks, a live stream or polling |
| Reply into a conversation | Uses that conversation’s sender and channel |
| Send one kind per endpoint | Sends exactly that, or refuses it with 422 and a hint; converts nothing |
| Retry with the same key | Deduplicates the API request |
| Follow delivery events | Reports sent or failed, plus delivered and read where supported |
See sending rules for reply windows, pacing and new-contact budgets. These rules apply whether you send over HTTP, a stream or a webhook response.
Pick your integration
Section titled “Pick your integration”TypeScript, Python or any language that makes HTTP requests.
Use your agent frameworkConnect an existing agent without changing its model or tools.
Build with a coding agentSetup instructions, a skill and an optional development MCP.
Build on Flow FrameworkUse Flow’s conversation runtime as well as the messaging connection.
The SDKs are open source under Apache-2.0 in flow-engineer/sdk. The HTTP API is versioned by date; pin a version for production.
Thanks, we read every comment.