{"id":1355,"date":"2026-05-04T08:28:53","date_gmt":"2026-05-04T08:28:53","guid":{"rendered":"https:\/\/cms.research.wpp.com\/?p=1355"},"modified":"2026-05-04T08:55:05","modified_gmt":"2026-05-04T08:55:05","slug":"openclaw-for-messaging","status":"publish","type":"post","link":"https:\/\/cms.research.wpp.com\/?p=1355","title":{"rendered":"OpenClaw for messaging: a closer look at WhatsApp and Telegram"},"content":{"rendered":"\n<p><a href=\"https:\/\/openclaw.ai\/\">OpenClaw<\/a> has been going viral in the agentic AI community. It&#8217;s an open-source toolkit for building AI agents: pick a model, give the agent some tools and a goal, and OpenClaw runs it. Unlike a plain chatbot, OpenClaw agents remember across sessions, plug into mainstream services (email, calendar, files, plus a community library of integrations), and act proactively &#8211; kicking off scheduled tasks and reminders without being prompted.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">The feature that caught our attention is its <a href=\"https:\/\/docs.openclaw.ai\/channels\">channel support<\/a> out of the box, OpenClaw agents can talk to people on <strong>WhatsApp, Telegram, Signal, iMessage, Discord, Slack, and more than fifteen other channels<\/strong>. For any product team thinking about agentic UX, that&#8217;s a big deal &#8211; messaging is where users actually are.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">So we put it to the test, with three questions in mind:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Is it easy to set up?<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Could a product team realistically build their user-facing communications on top of it?<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Does the value justify the cost in tokens, infrastructure, and maintenance?<\/li>\n<\/ol>\n\n\n\n<p class=\"has-medium-font-size\">We deployed an OpenClaw instance and pointed it at two channels: <strong>Telegram<\/strong> and <strong>WhatsApp<\/strong>. Here&#8217;s what we found.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Setup: genuinely easy<\/strong><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Installation is a single command followed by a short guided setup. We were chatting with our deployment from a phone within minutes.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">We routed traffic across three Gemini 3.1 tiers based on task complexity &#8211; Pro Preview for multi-step reasoning, Flash Preview for summaries and intent classification, and Flash Lite Preview for trivial replies and heartbeats. Done well, this kind of routing materially cuts cost and latency.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">So far, so good. The interesting parts started when we looked closer at the channels themselves.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Finding 1: &#8220;20+ channels&#8221; is really two very different lists<\/strong><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">OpenClaw&#8217;s channel list looks uniform in the docs, but the integrations split into two tiers that behave nothing alike in production:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Tier 1 &#8211; Official APIs (sanctioned).<\/strong> Telegram (Bot API), Discord, Slack, Microsoft Teams. You register an app, get a token, and operate within documented rate limits. Fully compliant with the platform&#8217;s terms.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Tier 2 &#8211; Reverse-engineered protocols (unsanctioned).<\/strong> WhatsApp via Baileys, iMessage via undocumented Apple APIs. These libraries reconstruct the platform&#8217;s wire protocol from the outside. To the platform, the traffic is indistinguishable from a modified, unofficial client.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\">We deliberately tested one of each.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Telegram (sanctioned): boring in the best way<\/strong><\/h4>\n\n\n\n<p class=\"has-medium-font-size\">Pairing was a five-minute conversation with <a href=\"https:\/\/t.me\/BotFather\">@BotFather<\/a>: pick a name, get a token, hand it to OpenClaw. No QR code, no reverse-engineering, no ban risk.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">In use, the bot worked exactly as advertised &#8211; with one important constraint baked into the platform itself: <strong>Telegram bots cannot send cold messages.<\/strong> A user has to message the bot first. Reactive workflows (Q&amp;A, commands, group bots) work great. Proactive ones (outbound reminders, re-engagement, anything not opted into) are blocked by design.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>WhatsApp (unsanctioned): technically clean, policy-risky<\/strong><\/h4>\n\n\n\n<p class=\"has-medium-font-size\">Pairing was equally fast: scan a QR code with your phone, exactly like linking WhatsApp Web. Once paired, the agent operates <strong>as your number<\/strong> &#8211; it can read every message in the inbox and send to anyone. To recipients, it&#8217;s indistinguishable from you.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">The integration itself is solid. The problem isn&#8217;t engineering, it&#8217;s policy: <strong>Baileys is not sanctioned by Meta.<\/strong> WhatsApp&#8217;s terms explicitly prohibit automated use through unofficial clients, and accounts using libraries like this can be &#8211; and are &#8211; banned. Fine for a personal experiment. Not fine as the long-term backbone of a product.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">So of the two channels we tested, one is safe but limited to inbound, and the other is unrestricted but built on a foundation Meta could pull at any moment. That&#8217;s a meaningful gotcha for anyone planning to ship on top of OpenClaw.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Finding 2: the cost is staggering &#8211; and it&#8217;s structural<\/strong><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Just bringing the agent up and pairing the two channels consumed <strong>~19M tokens across 373 messages<\/strong>. That&#8217;s the cost of <em>standing OpenClaw up<\/em>, before doing anything useful with it. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-small-font-size\">Tokens are how LLMs charge: every word, punctuation mark, and piece of context sent to the model is metered, on both the input and the output side.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-medium-font-size\">For context, most agent conversations cost a few hundred to a few thousand tokens per turn (<a href=\"https:\/\/iternal.ai\/token-usage-guide\">Iternal.ai, 2026<\/a>; <a href=\"https:\/\/redis.io\/blog\/llm-token-optimization-speed-up-apps\/\">Redis, 2026<\/a>). Even on the high end, 19M tokens is the budget for <strong>thousands of real user conversations<\/strong> &#8211; and we burned it on setup.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Why so much? OpenClaw loads its <strong>full bundle of skills, channel adapters, and orchestration rules into the model&#8217;s context on every single call<\/strong> &#8211; even calls that don&#8217;t need any of it. Every message ends up dragging the entire framework behind it, and the cost compounds as conversations grow.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">If messaging is a core part of your agentic workflow, running OpenClaw out of the box will very quickly run up the bill. The good news: it&#8217;s open source, so a dev team can strip the bundle down to just the skills and adapters a given workflow actually needs. The bad news: that&#8217;s real engineering work, not a config flag.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What we&#8217;re watching next<\/strong><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">A handful of OpenClaw-inspired spin-offs have appeared over the last few months, addressing the efficiency and security issues that come with running OpenClaw out of the box: <a href=\"https:\/\/github.com\/zeroclaw-labs\/zeroclaw\">ZeroClaw<\/a>, <a href=\"https:\/\/github.com\/sipeed\/picoclaw\">PicoClaw<\/a>, <a href=\"https:\/\/github.com\/nullclaw\/nullclaw\">NullClaw<\/a>, <a href=\"https:\/\/github.com\/HKUDS\/nanobot\">NanoBot<\/a>, <a href=\"https:\/\/github.com\/warengonzaga\/tinyclaw\">TinyClaw<\/a>, and <a href=\"https:\/\/github.com\/qwibitai\/nanoclaw\">NanoClaw<\/a>. Smart move by these teams &#8211; we plan to put them through the same tests we ran here and follow up in a future post.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Bottom line<\/strong><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">OpenClaw delivers on the easy parts of its messaging promise. Setup is fast, the abstractions are clean, and once paired, the agent behaves well on both Telegram and WhatsApp.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">But the headline &#8220;20+ channels&#8221; hides a split between sanctioned and unsanctioned integrations that materially changes what you can build, and the default token economics make production use prohibitively expensive without customisation.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">For a hackathon or an internal tool, OpenClaw is great. For a product team planning to make messaging a long-term pillar of their UX, it&#8217;s a strong starting point &#8211; not a finished platform.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenClaw has exploded across the agentic AI community, promising \u2018the AI that actually does things.\u2019 We wanted to see what\u2019s behind the hype.<\/p>\n","protected":false},"author":16,"featured_media":1360,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"tags":[],"ppma_author":[{"id":16,"display_name":"Andreas Stavrou","first_name":"Andreas","last_name":"Stavrou","nickname":"andreas.stavrou","user_nicename":"andreas-stavrou","user_email":"andreas.stavrou@satalia.com","biographical_info":"Andreas is a Senior Data Scientist at Satalia and part of the WPP Research team. With over a decade of hands-on experience, he has delivered machine learning solutions across retail, online gambling, and credit risk, and now builds AI systems at scale in the global advertising industry.","avatar_url":"https:\/\/cms.research.wpp.com\/wp-content\/uploads\/2026\/03\/avatar.jpg","job_title":"Senior Data Scientist","is_lead":null,"display_as_researcher":null,"order_priority":null}],"class_list":["post-1355","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"acf":{"related_pods":[1362],"featured":false},"authors":[{"term_id":22,"user_id":16,"is_guest":0,"slug":"andreas-stavrou","display_name":"Andreas Stavrou","avatar_url":"https:\/\/cms.research.wpp.com\/wp-content\/uploads\/2026\/03\/avatar.jpg","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","biographical_info":"Andreas is a Senior Data Scientist at Satalia and part of the WPP Research team. With over a decade of hands-on experience, he has delivered machine learning solutions across retail, online gambling, and credit risk, and now builds AI systems at scale in the global advertising industry."}],"featured_image_url":"https:\/\/cms.research.wpp.com\/wp-content\/uploads\/2026\/04\/openclaw.png","featured_image_sizes":{"thumbnail":"https:\/\/cms.research.wpp.com\/wp-content\/uploads\/2026\/04\/openclaw-150x150.png","medium":"https:\/\/cms.research.wpp.com\/wp-content\/uploads\/2026\/04\/openclaw-300x300.png","large":"https:\/\/cms.research.wpp.com\/wp-content\/uploads\/2026\/04\/openclaw.png","full":"https:\/\/cms.research.wpp.com\/wp-content\/uploads\/2026\/04\/openclaw.png"},"_links":{"self":[{"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/posts\/1355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1355"}],"version-history":[{"count":7,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/posts\/1355\/revisions"}],"predecessor-version":[{"id":1371,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/posts\/1355\/revisions\/1371"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/media\/1360"}],"wp:attachment":[{"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1355"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1355"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fppma_author&post=1355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}