{"id":1709,"date":"2026-05-04T08:28:53","date_gmt":"2026-05-04T08:28:53","guid":{"rendered":"https:\/\/cms.research.wpp.com\/?research_feed=openclaw-for-messaging"},"modified":"2026-06-24T13:56:10","modified_gmt":"2026-06-24T13:56:10","slug":"openclaw-for-messaging","status":"publish","type":"research_feed","link":"https:\/\/cms.research.wpp.com\/?research_feed=openclaw-for-messaging","title":{"rendered":"OpenClaw for messaging: a closer look at WhatsApp and Telegram"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><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 wp-block-paragraph\">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 wp-block-paragraph\">So we put it to the test, with three questions in mind:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>Is it easy to set up?<\/li>\n\n\n<li>Could a product team realistically build their user-facing communications on top of it?<\/li>\n\n\n<li>Does the value justify the cost in tokens, infrastructure, and maintenance?<\/li>\n\n<\/ol>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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\n<li><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<li><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\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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 wp-block-paragraph\">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","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,"template":"","meta":{"_acf_changed":false},"tags":[],"content_types":[{"id":50,"name":"Blog Post","slug":"article"}],"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-1709","research_feed","type-research_feed","status-publish","has-post-thumbnail","hentry","content_type-article"],"acf":{"content":"<p><!-- wp:paragraph --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\n<p class=\"has-medium-font-size\">So we put it to the test, with three questions in mind:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol class=\"wp-block-list\">\n<!-- wp:list-item --><\/p>\n<li>Is it easy to set up?<\/li>\n<p><!-- \/wp:list-item --><br \/>\n<!-- wp:list-item --><\/p>\n<li>Could a product team realistically build their user-facing communications on top of it?<\/li>\n<p><!-- \/wp:list-item --><br \/>\n<!-- wp:list-item --><\/p>\n<li>Does the value justify the cost in tokens, infrastructure, and maintenance?<\/li>\n<p><!-- \/wp:list-item -->\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:separator --><\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\"><strong>Setup: genuinely easy<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:separator --><\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\"><strong>Finding 1: &#8220;20+ channels&#8221; is really two very different lists<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:list --><\/p>\n<ul class=\"wp-block-list\">\n<!-- wp:list-item --><\/p>\n<li><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<p><!-- \/wp:list-item --><br \/>\n<!-- wp:list-item --><\/p>\n<li><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<p><!-- \/wp:list-item -->\n<\/ul>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\n<p class=\"has-medium-font-size\">We deliberately tested one of each.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":4} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Telegram (sanctioned): boring in the best way<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":4} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>WhatsApp (unsanctioned): technically clean, policy-risky<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:separator --><\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\"><strong>Finding 2: the cost is staggering &#8211; and it&#8217;s structural<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:quote --><\/p>\n<blockquote class=\"wp-block-quote\"><p><!-- wp:paragraph {\"className\":\"has-small-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p><\/blockquote>\n<p><!-- \/wp:quote --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:separator --><\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\"><strong>What we&#8217;re watching next<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:separator --><\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\"><strong>Bottom line<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"className\":\"has-medium-font-size\"} --><\/p>\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<p><!-- \/wp:paragraph --><\/p>\n","related_pods":[1362]},"research_categories":[],"raw_acf":{"content":"<!-- wp:paragraph -->\n<p><a href=\"https:\/\/openclaw.ai\/\">OpenClaw<\/a> has been going viral in the agentic AI community. It'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 - kicking off scheduled tasks and reminders without being prompted.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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's a big deal - messaging is where users actually are.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\n<p class=\"has-medium-font-size\">So we put it to the test, with three questions in mind:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\">\n<!-- wp:list-item -->\n<li>Is it easy to set up?<\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li>Could a product team realistically build their user-facing communications on top of it?<\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li>Does the value justify the cost in tokens, infrastructure, and maintenance?<\/li>\n<!-- \/wp:list-item -->\n<\/ol>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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's what we found.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Setup: genuinely easy<\/strong><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\n<p class=\"has-medium-font-size\">We routed traffic across three Gemini 3.1 tiers based on task complexity - 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<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Finding 1: \"20+ channels\" is really two very different lists<\/strong><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\n<p class=\"has-medium-font-size\">OpenClaw's channel list looks uniform in the docs, but the integrations split into two tiers that behave nothing alike in production:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\">\n<!-- wp:list-item -->\n<li><strong>Tier 1 - 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's terms.<\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><strong>Tier 2 - Reverse-engineered protocols (unsanctioned).<\/strong> WhatsApp via Baileys, iMessage via undocumented Apple APIs. These libraries reconstruct the platform's wire protocol from the outside. To the platform, the traffic is indistinguishable from a modified, unofficial client.<\/li>\n<!-- \/wp:list-item -->\n<\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\n<p class=\"has-medium-font-size\">We deliberately tested one of each.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\"><strong>Telegram (sanctioned): boring in the best way<\/strong><\/h4>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\n<p class=\"has-medium-font-size\">In use, the bot worked exactly as advertised - 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<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\"><strong>WhatsApp (unsanctioned): technically clean, policy-risky<\/strong><\/h4>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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> - it can read every message in the inbox and send to anyone. To recipients, it's indistinguishable from you.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\n<p class=\"has-medium-font-size\">The integration itself is solid. The problem isn't engineering, it's policy: <strong>Baileys is not sanctioned by Meta.<\/strong> WhatsApp's terms explicitly prohibit automated use through unofficial clients, and accounts using libraries like this can be - and are - banned. Fine for a personal experiment. Not fine as the long-term backbone of a product.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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's a meaningful gotcha for anyone planning to ship on top of OpenClaw.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Finding 2: the cost is staggering - and it's structural<\/strong><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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's the cost of <em>standing OpenClaw up<\/em>, before doing anything useful with it.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:quote -->\n<blockquote class=\"wp-block-quote\"><!-- wp:paragraph {\"className\":\"has-small-font-size\"} -->\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<!-- \/wp:paragraph --><\/blockquote>\n<!-- \/wp:quote -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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> - and we burned it on setup.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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's context on every single call<\/strong> - even calls that don't need any of it. Every message ends up dragging the entire framework behind it, and the cost compounds as conversations grow.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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'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's real engineering work, not a config flag.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>What we're watching next<\/strong><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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 - we plan to put them through the same tests we ran here and follow up in a future post.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Bottom line<\/strong><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\n<p class=\"has-medium-font-size\">But the headline \"20+ channels\" 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<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph {\"className\":\"has-medium-font-size\"} -->\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's a strong starting point - not a finished platform.<\/p>\n<!-- \/wp:paragraph -->","content_quarter":"","related_pods":[1362],"featured":"0","legacy_perspective_source_id":"1355"},"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\/research_feed\/1709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/research_feed"}],"about":[{"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/types\/research_feed"}],"author":[{"embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/users\/16"}],"acf:post":[{"embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=\/wp\/v2\/research_pods\/1362"}],"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=1709"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1709"},{"taxonomy":"content_type","embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcontent_types&post=1709"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cms.research.wpp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fppma_author&post=1709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}