<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: WAHA -Self-Hosted WhatsApp API</title>
    <description>The latest articles on DEV Community by WAHA -Self-Hosted WhatsApp API (@waha).</description>
    <link>https://dev.to/waha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1792116%2F4bc20279-8ac1-4cb7-ba0f-b4438b12f083.png</url>
      <title>DEV Community: WAHA -Self-Hosted WhatsApp API</title>
      <link>https://dev.to/waha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/waha"/>
    <language>en</language>
    <item>
      <title>WAHA 2025.2 - Search Channels API, Profile API and more!</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Fri, 28 Feb 2025 05:05:50 +0000</pubDate>
      <link>https://dev.to/waha/waha-20252-search-channels-api-profile-api-and-more-5dla</link>
      <guid>https://dev.to/waha/waha-20252-search-channels-api-profile-api-and-more-5dla</guid>
      <description>&lt;p&gt;🎉 We are thrilled to announce the changes we made during the WAHA 2025.2 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://waha.devlike.pro/blog/waha-2025-2/" rel="noopener noreferrer"&gt;https://waha.devlike.pro/blog/waha-2025-2/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WAHA 2025.1 - PostgreSQL support, GOWS engine and More!</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Sun, 02 Feb 2025 07:38:49 +0000</pubDate>
      <link>https://dev.to/waha/waha-20251-postgresql-support-gows-engine-and-more-4njk</link>
      <guid>https://dev.to/waha/waha-20251-postgresql-support-gows-engine-and-more-4njk</guid>
      <description>&lt;h1&gt;
  
  
  WAHA 2025.1
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Floltf7ki0tk34dmmf7pw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Floltf7ki0tk34dmmf7pw.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  On this page
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GOWS engine&lt;/li&gt;
&lt;li&gt;PostgreSQL support&lt;/li&gt;
&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are thrilled to announce the changes we made during the &lt;a href="https://waha.devlike.pro/blog/waha-2025-1/" rel="noopener noreferrer"&gt;WAHA 2025.1&lt;/a&gt; release.&lt;/p&gt;

&lt;h2&gt;
  
  
  GOWS engine
&lt;/h2&gt;

&lt;p&gt;Meet GOWS – a new, fast, super-reliable, and stable &lt;a href="https://waha.devlike.pro/docs/engines/" rel="noopener noreferrer"&gt;Engine&lt;/a&gt; for your WAHA instance!&lt;/p&gt;

&lt;p&gt;GOWS engine does not require a browser to work with WhatsApp Web; it operates directly using a WebSocket.&lt;/p&gt;

&lt;p&gt;It's a new-generation engine written in Golang, intended as a future replacement for the NOWEB engine.&lt;/p&gt;

&lt;p&gt;You can test it by setting the &lt;code&gt;WHATSAPP_DEFAULT_ENGINE=GOWS&lt;/code&gt; environment variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"WHATSAPP_DEFAULT_ENGINE=GOWS"&lt;/span&gt; devlikeapro/waha
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://waha.devlike.pro/docs/engines/gows/" rel="noopener noreferrer"&gt;Read more about GOWS&lt;/a&gt;; it doesn't support all features yet, but we're working on it!&lt;/p&gt;

&lt;h2&gt;
  
  
  PostgreSQL support
&lt;/h2&gt;

&lt;p&gt;Now you can use PostgreSQL as a &lt;a href="https://waha.devlike.pro/docs/storage/" rel="noopener noreferrer"&gt;Storage&lt;/a&gt; solution for your WAHA instance!&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Storage&lt;/th&gt;
&lt;th&gt;WEBJS&lt;/th&gt;
&lt;th&gt;NOWEB&lt;/th&gt;
&lt;th&gt;GOWS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Session - PostgreSQL&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Media - PostgreSQL&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;td&gt;✔️&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It works with both &lt;a href="https://waha.devlike.pro/docs/storage/session/" rel="noopener noreferrer"&gt;Session Storage&lt;/a&gt; and &lt;a href="https://waha.devlike.pro/docs/storage/media/" rel="noopener noreferrer"&gt;Media Storage&lt;/a&gt;, supports all engines, and is available in &lt;a href="https://waha.devlike.pro/waha-plus/" rel="noopener noreferrer"&gt;WAHA Plus&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to connect to your PostgreSQL instance?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Connect Session Storage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000/tcp &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;WHATSAPP_SESSIONS_POSTGRESQL_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;postgres://postgres:postgres@localhost:5432/postgres?sslmode&lt;span class="o"&gt;=&lt;/span&gt;disable devlikeapro/waha-plus
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Set &lt;code&gt;WHATSAPP_SESSIONS_POSTGRESQL_URL&lt;/code&gt; with your credentials and database name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Connect Media Storage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000/tcp &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;WAHA_MEDIA_STORAGE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;POSTGRESQL &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;WAHA_MEDIA_POSTGRESQL_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;postgres://postgres:postgres@localhost:5432/postgres?sslmode&lt;span class="o"&gt;=&lt;/span&gt;disable devlikeapro/waha-plus
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Set &lt;code&gt;WAHA_MEDIA_POSTGRESQL_URL&lt;/code&gt; with your credentials and database name.&lt;/li&gt;
&lt;li&gt;Set &lt;code&gt;WAHA_MEDIA_STORAGE=POSTGRESQL&lt;/code&gt; to enable PostgreSQL as a media storage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use the same connection URL for &lt;code&gt;WAHA_MEDIA_POSTGRESQL_URL&lt;/code&gt; and &lt;code&gt;WHATSAPP_SESSIONS_POSTGRESQL_URL&lt;/code&gt; if you want to use the same database for both storages.&lt;/p&gt;

&lt;h2&gt;
  
  
  And More!
&lt;/h2&gt;

&lt;p&gt;Check out the full &lt;a href="https://waha.devlike.pro/blog/waha-2025-1-changelog/" rel="noopener noreferrer"&gt;WAHA 2025.1 Changelog&lt;/a&gt; for more details!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WAHA 2024.11 | What Have We Done 😱</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Tue, 03 Dec 2024 02:02:57 +0000</pubDate>
      <link>https://dev.to/waha/waha-202411-what-have-we-done-2hcd</link>
      <guid>https://dev.to/waha/waha-202411-what-have-we-done-2hcd</guid>
      <description>&lt;p&gt;🎉 We are thrilled to announce the release of &lt;a href="https://waha.devlike.pro/docs/overview/changelog/#202411" rel="noopener noreferrer"&gt;WAHA 2024.11&lt;/a&gt; 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg39m1yvb3y39uuupub0j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg39m1yvb3y39uuupub0j.png" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 You can &lt;strong&gt;&lt;a href="https://waha.devlike.pro/blog/waha-2024-11/" rel="noopener noreferrer"&gt;read it in the blog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WAHA 2024.10 - Receive Media in Core, n8n Integration, and more!</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Tue, 01 Oct 2024 04:30:53 +0000</pubDate>
      <link>https://dev.to/waha/waha-202410-receive-media-in-core-n8n-integration-and-more-39ic</link>
      <guid>https://dev.to/waha/waha-202410-receive-media-in-core-n8n-integration-and-more-39ic</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvvqu658hourpoe3jwdt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvvqu658hourpoe3jwdt.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉 We are thrilled to announce the release of WAHA 2024.10 🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  WAHA Core - Receive Media
&lt;/h2&gt;

&lt;p&gt;We published &lt;a href="https://waha.devlike.pro/docs/how-to/receive-messages/#files" rel="noopener noreferrer"&gt;📥 Receive messages&lt;/a&gt; in free WAHA Core version, so you can receive media files in your WhatsApp API for free!&lt;/p&gt;

&lt;p&gt;We’ll continue to publish features from &lt;a href="https://waha.devlike.pro/docs/how-to/plus-version/" rel="noopener noreferrer"&gt;➕ WAHA Plus&lt;/a&gt; to WAHA Core, so you can use them for free!&lt;/p&gt;

&lt;h2&gt;
  
  
  n8n Low Code Integration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fykkcb59y3o4hez2mytud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fykkcb59y3o4hez2mytud.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meat the new WAHA integration with n8n!&lt;/p&gt;

&lt;p&gt;You can build your WhatsApp automation with using n8n and WAHA in pair!&lt;/p&gt;

&lt;p&gt;For that we’ve built &lt;a href="https://github.com/devlikeapro/n8n-nodes-waha/" rel="noopener noreferrer"&gt;@devlikeapro/n8n-nodes-waha &lt;/a&gt;directly from our &lt;a href="https://waha.devlike.pro/swagger/" rel="noopener noreferrer"&gt;Swagger&lt;/a&gt; specification, so all available API calls are available in n8n.&lt;/p&gt;

&lt;p&gt;Install it on your n8n instance and start building your first workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@devlikeapro/n8n-nodes-waha
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read more about &lt;strong&gt;&lt;a href="https://waha.devlike.pro/docs/integrations/n8n/" rel="noopener noreferrer"&gt;🧩 n8n Integration&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stability fixes
&lt;/h2&gt;

&lt;p&gt;We’re working on internal things to stabilize the product, to avoid any issues with the API.&lt;/p&gt;

&lt;p&gt;Check the full &lt;strong&gt;&lt;a href="https://waha.devlike.pro/docs/overview/changelog/#202410" rel="noopener noreferrer"&gt;🆕 Changelog&lt;/a&gt;&lt;/strong&gt; for more details!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WhatsApp Automation No Code Low Code Step-By-Step Guide - WAHA + n8n</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Mon, 09 Sep 2024 04:31:11 +0000</pubDate>
      <link>https://dev.to/waha/whatsapp-automation-no-code-low-code-step-by-step-guide-waha-n8n-24h1</link>
      <guid>https://dev.to/waha/whatsapp-automation-no-code-low-code-step-by-step-guide-waha-n8n-24h1</guid>
      <description>&lt;p&gt;&lt;a href="https://waha.devlike.pro/blog/waha-n8n/" rel="noopener noreferrer"&gt;https://waha.devlike.pro/blog/waha-n8n/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gk8j9a7ry051gvln7dm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3gk8j9a7ry051gvln7dm.png" alt="Image description" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how you can start developing your WhatsApp automation with using &lt;strong&gt;n8n&lt;/strong&gt; and &lt;strong&gt;WAHA&lt;/strong&gt; in pair so you can create &lt;br&gt;
your own no-code or low-code &lt;strong&gt;WhatsApp automation&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxu3zvqy40funerrnhbi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxu3zvqy40funerrnhbi.png" alt="Image description" width="800" height="678"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;Here's a quick docker-compose we have prepared for you to start using &lt;strong&gt;n8n&lt;/strong&gt; with &lt;strong&gt;WAHA&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://raw.githubusercontent.com/devlikeapro/waha/core/docker-compose.n8n.yaml
&lt;span class="nb"&gt;mv &lt;/span&gt;docker-compose.n8n.yaml docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If you're using &lt;a href="https://waha.devlike.pro/docs/how-to/plus-version/" rel="noopener noreferrer"&gt;&lt;strong&gt;WAHA Plus&lt;/strong&gt;&lt;/a&gt; (donation version) - kindly go to 
&lt;a href="https://portal.devlike.pro" rel="noopener noreferrer"&gt;https://portal.devlike.pro&lt;/a&gt;
and docker pull the image with your credentials:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker login &lt;span class="nt"&gt;-u&lt;/span&gt; devlikeapro &lt;span class="nt"&gt;-p&lt;/span&gt; &amp;lt;dckr_pat_1111111111&amp;gt;
docker pull devlikeapro/waha-plus
docker &lt;span class="nb"&gt;logout&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If you're using &lt;strong&gt;WAHA Core&lt;/strong&gt; (free version) - you can use the image from Docker Hub:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sed&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s1"&gt;'s/devlikeapro\/waha-plus/devlikeapro\/waha/g'&lt;/span&gt; docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you're ready to run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up 
&lt;span class="c"&gt;# to run in background:&lt;/span&gt;
&lt;span class="c"&gt;# docker compose up -d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, open:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;n8n&lt;/strong&gt; at &lt;a href="https://localhost:5678" rel="noopener noreferrer"&gt;https://localhost:5678&lt;/a&gt; and set up your email/password&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAHA&lt;/strong&gt; at &lt;a href="https://localhost:3000/dashboard" rel="noopener noreferrer"&gt;https://localhost:3000/dashboard&lt;/a&gt; (&lt;code&gt;waha/waha&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Install WAHA n8n node
&lt;/h3&gt;

&lt;p&gt;We provide WAHA Node, which you can install at your n8n installation.&lt;/p&gt;

&lt;p&gt;Go to your &lt;strong&gt;n8n&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Settings&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Community nodes&lt;/strong&gt; and install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;@devlikeapro/n8n-nodes-waha
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you need help with that, check the&lt;br&gt;
&lt;a href="https://docs.n8n.io/integrations/community-nodes/installation/gui-install/" rel="noopener noreferrer"&gt;&lt;strong&gt;Install community nodes&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First WhatsApp workflow
&lt;/h2&gt;

&lt;p&gt;We'll build simple workflow - when your WhatsApp account got any message, &lt;br&gt;
it responds with &lt;strong&gt;"Hi there"&lt;/strong&gt; message&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Add WAHA API credentials
&lt;/h3&gt;

&lt;p&gt;Before starting using the node, you need to add &lt;strong&gt;WAHA API&lt;/strong&gt; credentials.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to your &lt;strong&gt;n8n&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Home&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Credentials&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Add first credential&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Find &lt;strong&gt;WAHA API&lt;/strong&gt; in dropdown&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host URL&lt;/strong&gt; - &lt;code&gt;http://waha:3000&lt;/code&gt; or use your domain&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Key&lt;/strong&gt; - &lt;code&gt;321&lt;/code&gt; or your API key set in &lt;code&gt;docker-compose.yaml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Save&lt;/strong&gt; - it'll check the connection and save the credentials&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqx7lcysi83zpah5ecyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqx7lcysi83zpah5ecyw.png" alt="Image description" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you need help with that, check the&lt;br&gt;
&lt;a href="https://docs.n8n.io/credentials/add-edit-credentials/" rel="noopener noreferrer"&gt;&lt;strong&gt;Create credentials&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Create a new workflow
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;n8n&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Home&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Workflows&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Create new workflow&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Remove &lt;strong&gt;Manual trigger&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx72u1hrd1q5wbg8wxw24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx72u1hrd1q5wbg8wxw24.png" alt="Image description" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Add WAHA Trigger
&lt;/h3&gt;

&lt;p&gt;Add &lt;strong&gt;WAHA Trigger&lt;/strong&gt; node.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxi8md34bxqdu20lyrsv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxi8md34bxqdu20lyrsv.png" alt="Image description" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Add Send a text message action
&lt;/h3&gt;

&lt;p&gt;Add &lt;strong&gt;Send a text message&lt;/strong&gt; &lt;strong&gt;WAHA Action&lt;/strong&gt; and connect it to &lt;code&gt;message&lt;/code&gt; &lt;strong&gt;WAHA Trigger&lt;/strong&gt; output:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11x1n966d9lpkltmlywb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11x1n966d9lpkltmlywb.png" alt="Image description" width="800" height="644"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Activate the workflow
&lt;/h3&gt;

&lt;p&gt;Click &lt;strong&gt;Save&lt;/strong&gt; and &lt;strong&gt;Activate&lt;/strong&gt; the workflow:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhritlpeobtyws7rf6wg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhritlpeobtyws7rf6wg.png" alt="Image description" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Start a new session
&lt;/h3&gt;

&lt;p&gt;Open the &lt;strong&gt;WAHA Trigger&lt;/strong&gt; and expand &lt;strong&gt;Webhook URLs&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Production URL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftb2zw1gnlmmhsd5dajhb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftb2zw1gnlmmhsd5dajhb.png" alt="Image description" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to &lt;a href="http://localhost:3000/dashboard/" rel="noopener noreferrer"&gt;http://localhost:3000/dashboard/&lt;/a&gt; (&lt;code&gt;waha/waha&lt;/code&gt;) and &lt;br&gt;
&lt;strong&gt;Start New&lt;/strong&gt; session with the URL you got from the &lt;strong&gt;WAHA Trigger&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnt2ngnywfnl1jk74wmta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnt2ngnywfnl1jk74wmta.png" alt="Image description" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scan QR&lt;/strong&gt; and wait till session in &lt;code&gt;WORKING&lt;/code&gt; state:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mpv1gsp9q4673s9yeku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mpv1gsp9q4673s9yeku.png" alt="Image description" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7: Send a message
&lt;/h3&gt;

&lt;p&gt;Now you can &lt;strong&gt;send any message&lt;/strong&gt; to your WhatsApp account, and it'll respond with &lt;strong&gt;"Hi there"&lt;/strong&gt; message!&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow Templates
&lt;/h2&gt;

&lt;p&gt;👉 Check out &lt;br&gt;
&lt;a href="http://waha-n8n-templates.devlike.pro/" rel="noopener noreferrer"&gt;&lt;strong&gt;https://waha-n8n-workflows.devlike.pro&lt;/strong&gt;&lt;/a&gt; &lt;br&gt;
for workflow templates!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzbmmcn8238t7hnetva4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzbmmcn8238t7hnetva4d.png" alt="Image description" width="800" height="678"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;p&gt;If you're experiencing any issues or have a feature request, please check the below resources:&lt;br&gt;
&lt;strong&gt;WAHA&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://waha.devlike.pro/docs/integrations/n8n/" rel="noopener noreferrer"&gt;&lt;strong&gt;🧩 WAHA + n8n Integration&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://waha.devlike.pro/docs/overview/quick-start/" rel="noopener noreferrer"&gt;&lt;strong&gt;⚡ Quick Start&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://waha.devlike.pro/docs/how-to/install/" rel="noopener noreferrer"&gt;&lt;strong&gt;🔧 Install &amp;amp; Update&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;n8n&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.n8n.io/hosting/installation/docker/#starting-n8n" rel="noopener noreferrer"&gt;&lt;strong&gt;Installation guide&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.n8n.io/integrations/community-nodes/installation/gui-install/" rel="noopener noreferrer"&gt;&lt;strong&gt;Install community nodes&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.n8n.io/credentials/add-edit-credentials/" rel="noopener noreferrer"&gt;&lt;strong&gt;Create credentials&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If that doesn't help - kindly open an issue in the &lt;br&gt;
&lt;a href="https://github.com/devlikeapro/n8n-nodes-waha/" rel="noopener noreferrer"&gt;&lt;strong&gt;devlikeapro/n8n-nodes-waha&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
GitHub repository, we're happy to help you out!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🎉WAHA 2024.9 - S3, Session API, Metadata, Dashboard and more!🎉</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Tue, 27 Aug 2024 12:05:49 +0000</pubDate>
      <link>https://dev.to/waha/waha-20249-s3-session-api-metadata-dashboard-and-more-5cga</link>
      <guid>https://dev.to/waha/waha-20249-s3-session-api-metadata-dashboard-and-more-5cga</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvpwfo9pfij8fj5t39w6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvpwfo9pfij8fj5t39w6a.png" alt="WAHA 2024.9" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉 We are thrilled to announce the release of &lt;a href="https://waha.devlike.pro/docs/overview/changelog/#20249" rel="noopener noreferrer"&gt;WAHA 2024.9&lt;/a&gt; 🎉&lt;/p&gt;

&lt;p&gt;Kingly go and read the blog, it's hard to copy-paste everything 😅&lt;/p&gt;

&lt;p&gt;&lt;a href="https://waha.devlike.pro/blog/waha-2024-9/" rel="noopener noreferrer"&gt;https://waha.devlike.pro/blog/waha-2024-9/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you all for your support! 🙏&lt;/p&gt;

&lt;p&gt;All these changes were made possible by the amazing community of supporters!&lt;/p&gt;

&lt;p&gt;We are grateful for your contributions and feedback. 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WAHA Scaling - How To Handle 500+ WhatsApp Sessions</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Sun, 18 Aug 2024 03:30:12 +0000</pubDate>
      <link>https://dev.to/waha/waha-scaling-how-to-handle-500-whatsapp-sessions-3fie</link>
      <guid>https://dev.to/waha/waha-scaling-how-to-handle-500-whatsapp-sessions-3fie</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;The article is for people who want to scale their WhatsApp API for customers, like CRM, SaaS, or other services and who needs to handle a lot (&amp;gt;100) of &lt;a href="https://waha.devlike.pro/docs/how-to/sessions/" rel="noopener noreferrer"&gt;🖥️ Sessions&lt;/a&gt; (WhatsApp Accounts)&lt;/p&gt;

&lt;p&gt;If you’re using WAHA for 1-10 sessions - just make sure to follow &lt;a href="https://waha.devlike.pro/docs/how-to/install/" rel="noopener noreferrer"&gt;🔧 Install &amp;amp; Update&lt;/a&gt; guide. It handles all the necessary steps to make it work. 🚀&lt;/p&gt;

&lt;p&gt;There are two ways to scale WAHA:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Vertical Scaling&lt;/strong&gt; - adding more resources (CPU, RAM) to the single server to handle more sessions. That’s a good way to go if you need to handle up to &lt;strong&gt;50&lt;/strong&gt; sessions (WEBJS) or &lt;strong&gt;500&lt;/strong&gt; sessions (NOWEB).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Horizontal Scaling&lt;/strong&gt; - adding more servers to handle more sessions. Requires a bit of more work to set up, but it’s the best way to go if you need to handle more than 500 sessions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Vertical Scaling
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzkq3g8egsszxi5jlb4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzkq3g8egsszxi5jlb4i.png" alt="Image description" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vertical Scaling is the process of adding more resources (CPU, RAM) to the single server to handle more sessions.&lt;/p&gt;

&lt;p&gt;Assuming you’ve followed the guide &lt;a href="https://waha.devlike.pro/docs/how-to/install/" rel="noopener noreferrer"&gt;🔧 Install &amp;amp; Update&lt;/a&gt; and you got something like this architecture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8qhmfqgxakvfalbsvi8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8qhmfqgxakvfalbsvi8.png" alt="Image description" width="631" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many sessions you can run adding more resources (CPU and RAM) to the single WAHA server?&lt;/strong&gt;&lt;br&gt;
Here’s approximate example how many session you can run on a single server using &lt;strong&gt;Vertical Scaling&lt;/strong&gt; approach:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;a href="https://waha.devlike.pro/docs/how-to/engines/" rel="noopener noreferrer"&gt;&lt;strong&gt;🏭 Engine&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;Sessions&lt;/th&gt;
&lt;th&gt;CPU&lt;/th&gt;
&lt;th&gt;Memory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WEBJS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;270%&lt;/td&gt;
&lt;td&gt;2.5GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WEBJS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;1500%&lt;/td&gt;
&lt;td&gt;20GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NOWEB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;150%&lt;/td&gt;
&lt;td&gt;4GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NOWEB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;300%&lt;/td&gt;
&lt;td&gt;30GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;👉 The benchmark may differ from case to case, it depends on usage pattern - how many messages you get, how many send, etc.&lt;/p&gt;

&lt;p&gt;So if you need to run up to &lt;strong&gt;50&lt;/strong&gt; session on &lt;strong&gt;WEBJS&lt;/strong&gt; engine or up to &lt;strong&gt;500&lt;/strong&gt; sessions on &lt;strong&gt;NOWEB&lt;/strong&gt; - you can just keep adding more resources (CPU and RAM) to the single server! Fast to scale, easy to manage.🎉&lt;/p&gt;

&lt;p&gt;If you want to run more sessions - you need to consider &lt;strong&gt;Horizontal Scaling&lt;/strong&gt;. It’s not safe to run more than the above numbers on a single server!&lt;/p&gt;

&lt;h2&gt;
  
  
  Horizontal Scaling
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrae8xpt5mhbwqcmff2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrae8xpt5mhbwqcmff2x.png" alt="Image description" width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Horizontal Scaling&lt;/strong&gt; is the process of adding &lt;strong&gt;more servers&lt;/strong&gt; to handle more sessions.&lt;/p&gt;

&lt;p&gt;Right now the only way to do it is to run multiple WAHA instances and distribute the sessions between them in Your Application logic using &lt;strong&gt;Sharding&lt;/strong&gt; technique:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2ygr35680nvs93gpijc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2ygr35680nvs93gpijc.png" alt="Image description" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s key points how to set up Horizontal Scaling using &lt;strong&gt;Sharding&lt;/strong&gt; technique:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You run &lt;strong&gt;multiple WAHA&lt;/strong&gt; instances listening different &lt;strong&gt;hostnames&lt;/strong&gt; 
(&lt;code&gt;http://waha1.example.com&lt;/code&gt;, &lt;code&gt;http://waha2.example.com&lt;/code&gt;, etc) or &lt;strong&gt;ports&lt;/strong&gt;
(&lt;code&gt;http://waha.example.com:3001&lt;/code&gt;, &lt;code&gt;http://waha.example.com:3002&lt;/code&gt;, etc).&lt;/li&gt;
&lt;li&gt;You save the list of &lt;code&gt;url&lt;/code&gt;, &lt;code&gt;api-key&lt;/code&gt;, &lt;code&gt;capacity&lt;/code&gt; to &lt;strong&gt;Your Application Database&lt;/strong&gt; - 
&lt;strong&gt;Entities Schema&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;When a new user asks to run a new session - you follow &lt;strong&gt;Where to run a new session?&lt;/strong&gt;
logic to find a suitable WAHA instance and save &lt;code&gt;user &amp;lt;-&amp;gt; session &amp;lt;-&amp;gt; server&lt;/code&gt; association to &lt;strong&gt;Your Application Database&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When you need to send a request to WhatsApp API - you follow
&lt;strong&gt;Where to find the session?&lt;/strong&gt; logic to find the WAHA instance to send the request.&lt;/li&gt;
&lt;li&gt;All webhooks come to &lt;strong&gt;Your Application&lt;/strong&gt; directly from the WAHA instance, so you don't need to worry about it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We'll guide you through the process of setting up &lt;strong&gt;Horizontal Scaling&lt;/strong&gt;&lt;br&gt;
using &lt;strong&gt;Sharding&lt;/strong&gt; technique in the next sections.&lt;/p&gt;

&lt;p&gt;👉 Please note that each &lt;strong&gt;WAHA Worker&lt;/strong&gt; must have its own database -&lt;br&gt;
either &lt;strong&gt;File Storage&lt;/strong&gt; or &lt;strong&gt;MongoDB&lt;/strong&gt; URL (not a database). Otherwise, the &lt;code&gt;WHATSAPP_RESTART_ALL_SESSIONS=True&lt;/code&gt;&lt;br&gt;
option will restart ALL sessions in ALL workers on worker restart (you'll need disable it and run the session&lt;br&gt;
restart logic in your application).&lt;/p&gt;

&lt;h3&gt;
  
  
  Entities Schema
&lt;/h3&gt;

&lt;p&gt;In order to save WAHA instances and sessions associations you&lt;br&gt;
need to have the following entities in &lt;strong&gt;Your Application Database&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1e2hqkq7ywteuhxijd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1e2hqkq7ywteuhxijd5.png" alt="Image description" width="700" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Worker
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Worker&lt;/strong&gt; represents a single WAHA instance that can handle sessions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id&lt;/code&gt; - unique identifier&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;url&lt;/code&gt; - URL of the WAHA instance, &lt;code&gt;http://waha1.example.com&lt;/code&gt;, &lt;code&gt;http://waha2.example.com&lt;/code&gt;, etc&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;api_key&lt;/code&gt; - API Key to authorize requests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;capacity&lt;/code&gt; - how many sessions can be run on the WAHA instance (for simplicity, we're using a single field,
but it can be a new model &lt;strong&gt;AvailableSession&lt;/strong&gt; or similar).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By setting &lt;code&gt;capacity&lt;/code&gt; you can manage the WAHA Worker usage and prevent overloading.&lt;/p&gt;

&lt;h4&gt;
  
  
  User
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;User&lt;/strong&gt; is a user of &lt;strong&gt;Your Application&lt;/strong&gt; that can run sessions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id&lt;/code&gt; - unique identifier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 You can use either &lt;strong&gt;User&lt;/strong&gt; or &lt;strong&gt;Tenant&lt;/strong&gt; or &lt;strong&gt;Organization&lt;/strong&gt; it completely depends on your application logic&lt;br&gt;
and business model.&lt;br&gt;
We'll use &lt;strong&gt;User&lt;/strong&gt; for simplicity with a single field:&lt;/p&gt;

&lt;h4&gt;
  
  
  WAHASession
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;WAHASession&lt;/strong&gt; represents a single session that is running on the WAHA &lt;strong&gt;Worker&lt;/strong&gt; associated with the &lt;strong&gt;User&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id&lt;/code&gt; - unique identifier&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;name&lt;/code&gt; - WAHA session &lt;code&gt;name&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;user_id&lt;/code&gt; - reference to the &lt;strong&gt;User&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;worker_id&lt;/code&gt; - reference to the &lt;strong&gt;Worker&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Where to run a new session?
&lt;/h3&gt;

&lt;p&gt;When a new user asks to &lt;strong&gt;run a new session&lt;/strong&gt; - you need to find a suitable WAHA instance to run it.&lt;br&gt;
You can simply get a list of session with &lt;code&gt;capacity&amp;gt;0&lt;/code&gt; and pick the one with the highest &lt;code&gt;capacity&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77imj9i97stfpbxarms5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77imj9i97stfpbxarms5.png" alt="Image description" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's just an example with simple logic. You can adjust it and distribute WhatsApp session based on &lt;strong&gt;country&lt;/strong&gt;, &lt;strong&gt;proxy&lt;br&gt;
settings&lt;/strong&gt;,&lt;br&gt;
customer level, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where to find the session?
&lt;/h3&gt;

&lt;p&gt;When you need to &lt;strong&gt;send a request&lt;/strong&gt; to WhatsApp API - you need to find the WAHA instance to send the request.&lt;br&gt;
You can simply get the &lt;code&gt;worker_id&lt;/code&gt; from the &lt;strong&gt;WAHASession&lt;/strong&gt; and send the request to the WAHA instance using&lt;br&gt;
the &lt;code&gt;url&lt;/code&gt; and &lt;code&gt;api_key&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aa57fa9vgxntgubws26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aa57fa9vgxntgubws26.png" alt="Image description" width="656" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why this way?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;WAHA&lt;/strong&gt; is not stateless application, it has &lt;strong&gt;a runtime state&lt;/strong&gt; (not technically a state as in database, but still a&lt;br&gt;
state) - &lt;strong&gt;the connection to WhatsApp&lt;/strong&gt; (either browser or websocket connection) which can not be moved automatically, &lt;br&gt;
so all HTTP requests MUST be &lt;strong&gt;"sticky"&lt;/strong&gt;, meaning it &lt;strong&gt;MUST&lt;/strong&gt; go only to the certain "worker" - &lt;strong&gt;one with "running" session&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is why we can simply run more containers using Kubernetes Deployment/AWS ECS &lt;br&gt;
(tho you can use &lt;a href="https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/" rel="noopener noreferrer"&gt;StatefulSets&lt;/a&gt; for k8s)&lt;br&gt;
, we need to care about WHERE we run the session and WHERE we send the request.&lt;/p&gt;

&lt;p&gt;and few more reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simple&lt;/strong&gt; - you don't need to worry about the load balancer, k8s, docker, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Independent&lt;/strong&gt; - you can run WAHA instances on different servers, different cloud providers, bare-metal, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No single point of failure&lt;/strong&gt; - if one WAHA instance goes down - the others are still working.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible&lt;/strong&gt; - you can configure HOW you distribute sessions across different servers based on your business logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frees our hands&lt;/strong&gt; - we can focus on building the best WhatsApp API and adding new features,
and you can focus on building the best application. 😊&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Single Dashboard - Multiple Servers
&lt;/h3&gt;

&lt;p&gt;If you're running multiple servers&lt;br&gt;
you can run a dedicated WAHA &lt;a href="https://waha.devlike.pro/docs/how-to/waha-dashboard/" rel="noopener noreferrer"&gt;&lt;strong&gt;📊 Dashboard&lt;/strong&gt;&lt;/a&gt; just to have a single place where from you can manage all servers:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxf8c1nkw82d5dt5qi72w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxf8c1nkw82d5dt5qi72w.png" alt="Image description" width="750" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After that you can connect all server to the single dashboard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66o8nbrdztvgl956uo05.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66o8nbrdztvgl956uo05.png" alt="Image description" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WAHA 2024.8 - WhatsApp Business Labels API, Chat Archive and more!</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Sun, 04 Aug 2024 05:14:59 +0000</pubDate>
      <link>https://dev.to/waha/waha-20248-whatsapp-business-labels-api-chat-archive-and-more-5h43</link>
      <guid>https://dev.to/waha/waha-20248-whatsapp-business-labels-api-chat-archive-and-more-5h43</guid>
      <description>&lt;p&gt;🎉 We are thrilled to announce the release of &lt;a href="https://waha.devlike.pro/docs/overview/changelog/#20248" rel="noopener noreferrer"&gt;WAHA 2024.8&lt;/a&gt; 🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  WhatsApp Business Labels API
&lt;/h2&gt;

&lt;p&gt;You can now work with WhatsApp Labels available in WhatsApp Business using the API!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5nn0r3vgcxxgupkm2mo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5nn0r3vgcxxgupkm2mo.png" alt="Image description" width="706" height="772"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Read more about the WhatsApp Business Labels API on &lt;a href="https://waha.devlike.pro/docs/how-to/labels/" rel="noopener noreferrer"&gt;&lt;strong&gt;🏷️ Labels&lt;/strong&gt;&lt;/a&gt; page!&lt;/p&gt;

&lt;h2&gt;
  
  
  Chat archive/unarchive
&lt;/h2&gt;

&lt;p&gt;You can now archive and unarchive WhatsApp Chats using API and receive events about chat archive in WhatsApp using webhooks!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2kx6cwry51lw5mfvhuln.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2kx6cwry51lw5mfvhuln.jpeg" alt="Image description" width="753" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Read more about the endpoints and events on &lt;a href="https://waha.devlike.pro/docs/how-to/chats/" rel="noopener noreferrer"&gt;💬 Chats&lt;/a&gt; page!&lt;/p&gt;

&lt;h2&gt;
  
  
  Calls Events
&lt;/h2&gt;

&lt;p&gt;Now when the WhatsApp account receives (rejects and accepts) a new call - you can receive information about that using new call.* webhooks!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flp0r0tdlgh5e83z55v8y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flp0r0tdlgh5e83z55v8y.png" alt="Image description" width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Read more about the events on &lt;a href="https://waha.devlike.pro/docs/how-to/calls/" rel="noopener noreferrer"&gt;📞 Calls &lt;/a&gt; page!&lt;/p&gt;

&lt;h2&gt;
  
  
  And more!
&lt;/h2&gt;

&lt;p&gt;👉 Read the full&lt;a href="https://waha.devlike.pro/docs/overview/changelog/#20248" rel="noopener noreferrer"&gt; 🆕 Changelog&lt;/a&gt; for WAHA 2024.8 release!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WAHA 2024.7 - WhatsApp Channels API, JSON logs</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Wed, 24 Jul 2024 12:04:10 +0000</pubDate>
      <link>https://dev.to/waha/waha-20247-whatsapp-channels-api-json-logs-3ogb</link>
      <guid>https://dev.to/waha/waha-20247-whatsapp-channels-api-json-logs-3ogb</guid>
      <description>&lt;p&gt;🎉 We are thrilled to announce the release of &lt;a href="https://waha.devlike.pro/docs/overview/changelog/" rel="noopener noreferrer"&gt;&lt;strong&gt;WAHA 2024.7&lt;/strong&gt;&lt;/a&gt; 🎉 &lt;/p&gt;

&lt;h2&gt;
  
  
  WhatsApp Channels API
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivhmf0cqfvmes5sg28wg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivhmf0cqfvmes5sg28wg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WAHA now supports &lt;a href="https://waha.devlike.pro/whatsapp-channels/" rel="noopener noreferrer"&gt;&lt;strong&gt;WhatsApp Channels&lt;/strong&gt;&lt;/a&gt; - a brand-new feature introduced by WhatsApp. &lt;br&gt;
You can manage, read and send messages to &lt;strong&gt;WhatsApp Channels&lt;/strong&gt; (aka Newsletters) via API.&lt;/p&gt;

&lt;p&gt;👉 Read more about available features on &lt;a href="https://waha.devlike.pro/docs/how-to/channels/" rel="noopener noreferrer"&gt;&lt;strong&gt;📰 Channels&lt;/strong&gt;&lt;/a&gt; documentation page.&lt;/p&gt;

&lt;p&gt;💡 If you're completely new with the project, we wrote a &lt;br&gt;
&lt;a href="https://dev.to/waha/how-to-send-a-message-to-whatsapp-channel-via-api-4956"&gt;&lt;strong&gt;Step-By-Step Guide on How to send a post to WhatsApp Channel via API&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  JSON logs
&lt;/h2&gt;

&lt;p&gt;WAHA now supports JSON logs. You can enable it by setting &lt;code&gt;WAHA_LOG_FORMAT=JSON&lt;/code&gt; environment variable.&lt;br&gt;
&lt;code&gt;WAHA_LOG_FORMAT&lt;/code&gt; - supports formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;WAHA_LOG_FORMAT=PRETTY&lt;/code&gt; - good for local development, &lt;strong&gt;default&lt;/strong&gt; format&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WAHA_LOG_FORMAT=JSON&lt;/code&gt; - can be useful if you're using central logging management system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Learn more about logging configuration on &lt;a href="https://waha.devlike.pro/docs/how-to/observability/" rel="noopener noreferrer"&gt;&lt;strong&gt;🔍 Observability&lt;/strong&gt;&lt;/a&gt; page.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to send a message to WhatsApp Channel via API</title>
      <dc:creator>WAHA -Self-Hosted WhatsApp API</dc:creator>
      <pubDate>Wed, 24 Jul 2024 12:01:24 +0000</pubDate>
      <link>https://dev.to/waha/how-to-send-a-message-to-whatsapp-channel-via-api-4956</link>
      <guid>https://dev.to/waha/how-to-send-a-message-to-whatsapp-channel-via-api-4956</guid>
      <description>&lt;p&gt;&lt;a href="https://waha.devlike.pro/" rel="noopener noreferrer"&gt;WAHA&lt;/a&gt;, Free Self-Hosted WhatsApp API, supports &lt;a href="https://waha.devlike.pro/whatsapp-channels/" rel="noopener noreferrer"&gt;&lt;strong&gt;WhatsApp Channels&lt;/strong&gt;&lt;/a&gt;, a brand-new feature introduced by WhatsApp.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixeaah5c6bg3cjrr6g5v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixeaah5c6bg3cjrr6g5v.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is a one-way broadcast tool that allows administrators to send various content types such as text, photos, videos, and polls.&lt;br&gt;
Users receive push notifications from the channel, similar to a private message.&lt;/p&gt;

&lt;p&gt;In this article, we give you a &lt;strong&gt;Step-By-Step guide how to send messages to WhatsApp Channels&lt;/strong&gt; using &lt;strong&gt;WAHA&lt;/strong&gt; - free, self-hosted WhatsApp API!&lt;/p&gt;

&lt;p&gt;We'll install it on &lt;strong&gt;your own laptop or server&lt;/strong&gt;, so no suspicious services have access to your WhatsApp account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyf8e7fj1uanegpxz6jh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyf8e7fj1uanegpxz6jh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 0. Requirements
&lt;/h2&gt;

&lt;p&gt;WAHA works on top of &lt;strong&gt;Docker&lt;/strong&gt;, that's the only think you'll need! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuj2fcz5jmxmnorzh8u18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuj2fcz5jmxmnorzh8u18.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Please follow the &lt;br&gt;
&lt;a href="https://docs.docker.com/engine/install/" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;b&gt;Docker official guides to install it on Linux, Windows, and macOS&lt;/b&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Docker?&lt;/strong&gt;&lt;br&gt;
Docker makes it easy to ship all-in-one solution with the runtime and dependencies. You don't have to worry about language-specific libraries or chrome installation.&lt;/p&gt;

&lt;p&gt;Also, Docker makes installation and update processes so simple, just one command!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1. Run WAHA
&lt;/h2&gt;

&lt;p&gt;After you installed Docker - you're ready to run WAHA!&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

docker run &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000/tcp &lt;span class="nt"&gt;--name&lt;/span&gt; waha devlikeapro/waha

&lt;span class="c"&gt;# It prints logs and the last line must be&lt;/span&gt;
&lt;span class="c"&gt;# WhatsApp API is running on: http://[::1]:3000&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;It may take time to download the image, depending on your internet speed.&lt;/p&gt;

&lt;p&gt;If you're using &lt;strong&gt;ARM&lt;/strong&gt; processor (like &lt;strong&gt;Apple M1/M2&lt;/strong&gt;) run the following commands instead:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="c"&gt;# Download the image&lt;/span&gt;
docker pull devlikeapro/waha:arm
&lt;span class="c"&gt;# Rename it, so you can use devlikeapro/waha image in other place&lt;/span&gt;
docker tag devlikeapro/waha:arm devlikeapro/waha
&lt;span class="c"&gt;# Run the same command!&lt;/span&gt;
docker run &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000/tcp &lt;span class="nt"&gt;--name&lt;/span&gt; waha devlikeapro/waha

&lt;span class="c"&gt;# It prints logs and the last line must be&lt;/span&gt;
&lt;span class="c"&gt;# WhatsApp API is running on: http://[::1]:3000&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;👉 Now, open &lt;a href="https://waha.devlike.pro/docs/how-to/waha-dashboard/" rel="noopener noreferrer"&gt;Dashboard&lt;/a&gt; at &lt;br&gt;
&lt;a href="http://localhost:3000/dashboard" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;b&gt;&lt;a href="http://localhost:3000/dashboard" rel="noopener noreferrer"&gt;http://localhost:3000/dashboard&lt;/a&gt;&lt;/b&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll see WAHA Dashboard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjhcr20r2n1udylwdsbj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjhcr20r2n1udylwdsbj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2. Run session
&lt;/h2&gt;

&lt;p&gt;Now you start &lt;strong&gt;default&lt;/strong&gt; session (current status should be &lt;code&gt;STOPPED&lt;/code&gt;). &lt;/p&gt;

&lt;p&gt;You can leave all configuration parameters by default:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrydhmi4aunnxx3nrdq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrydhmi4aunnxx3nrdq4.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3. Scan QR
&lt;/h2&gt;

&lt;p&gt;Wait until the session status is &lt;code&gt;SCAN_QR&lt;/code&gt; and click on "camera" icon:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnysp312go6vqynst8f47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnysp312go6vqynst8f47.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 If instead of QR you see &lt;strong&gt;Click to reload QR&lt;/strong&gt; - &lt;strong&gt;stop&lt;/strong&gt; the session and &lt;strong&gt;start&lt;/strong&gt; it again.&lt;/p&gt;



&lt;p&gt;You'll see QR code from WhatsApp Web app, now get &lt;strong&gt;your phone&lt;/strong&gt; with installed WhatsApp application and &lt;strong&gt;scan the QR&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F392vzxd2q0f0s7zjoaru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F392vzxd2q0f0s7zjoaru.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The session status will move to &lt;code&gt;WORKING&lt;/code&gt; status:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqoryackni55e0kpswn3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqoryackni55e0kpswn3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4. Get Channel ID
&lt;/h2&gt;

&lt;p&gt;One step before you can send a message to you Channel - you need to get Channel ID in format &lt;code&gt;123123123@newsletter&lt;/code&gt; &lt;br&gt;
to know where to send a message.&lt;/p&gt;

&lt;p&gt;You can just execute the following curl command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

curl &lt;span class="nt"&gt;-X&lt;/span&gt; &lt;span class="s1"&gt;'GET'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'http://localhost:3000/api/default/channels?role=OWNER'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'accept: application/json'&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In the response you'll see all channels, choose one and copy &lt;code&gt;id&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"111111111111111111@newsletter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;lt;=========&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;copy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;that&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Channel Name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"OWNER"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;As alternative to &lt;code&gt;curl&lt;/code&gt;, you can use &lt;a href="https://waha.devlike.pro/docs/how-to/swagger/" rel="noopener noreferrer"&gt;WAHA Swagger&lt;/a&gt; for that, open it at&lt;br&gt;
&lt;a href="http://localhost:3000/#/channels" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;b&gt;&lt;a href="http://localhost:3000/#/channels" rel="noopener noreferrer"&gt;http://localhost:3000/#/channels&lt;/a&gt;&lt;/b&gt;&lt;br&gt;
&lt;/a&gt;, scroll down to &lt;strong&gt;Channels&lt;/strong&gt; section.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find &lt;code&gt;GET /api/{session}/channels&lt;/code&gt; endpoint and expand it&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Try it out&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;code&gt;role=OWNER&lt;/code&gt; if you have your own channels or &lt;code&gt;role=ADMIN&lt;/code&gt; if you're admin in the channel (you can not send messages if you're &lt;code&gt;SUBSCRIBER&lt;/code&gt; in the channel)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Execute&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jif3zoprgkwpxxvj2ep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jif3zoprgkwpxxvj2ep.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5. Send a message to WhatsApp Channel
&lt;/h2&gt;

&lt;p&gt;Now we're ready to send first messages to WhatsApp Channel via API!&lt;/p&gt;

&lt;p&gt;Replace &lt;code&gt;123123@newsletter&lt;/code&gt; with &lt;strong&gt;your newsletter id&lt;/strong&gt;, like &lt;code&gt;29847512@newsletter&lt;/code&gt; in the bellow command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

curl &lt;span class="nt"&gt;-X&lt;/span&gt; &lt;span class="s1"&gt;'POST'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'http://localhost:3000/api/sendText'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'accept: application/json'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
  "chatId": "123123123123@newsletter",
  "text": "Hi there!",
  "session": "default"
}'&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;As alternative to &lt;code&gt;curl&lt;/code&gt;, you can use &lt;a href="https://waha.devlike.pro/docs/how-to/swagger/" rel="noopener noreferrer"&gt;WAHA Swagger&lt;/a&gt; for that, open it at&lt;br&gt;
&lt;a href="http://localhost:3000/#/chatting" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;b&gt;&lt;a href="http://localhost:3000/#/chatting" rel="noopener noreferrer"&gt;http://localhost:3000/#/chatting&lt;/a&gt;&lt;/b&gt;&lt;br&gt;
&lt;/a&gt;, scroll down to &lt;strong&gt;chatting&lt;/strong&gt; section.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find &lt;code&gt;POST /api/sendText&lt;/code&gt; endpoint and expand it&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Try it out&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Replace &lt;code&gt;123123@newsletter&lt;/code&gt; with &lt;strong&gt;your&lt;/strong&gt; newsletter id, like &lt;code&gt;29847512@newsletter&lt;/code&gt; in the bellow command&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Execute&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vw8q47uwjltosf8t6fi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vw8q47uwjltosf8t6fi.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is next?
&lt;/h2&gt;

&lt;p&gt;🎉 You've sent the first message to WhatsApp Channel using WhatsApp API! 🎉 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://waha.devlike.pro/whatsapp-channels/" rel="noopener noreferrer"&gt;https://waha.devlike.pro/whatsapp-channels/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
