WhatsApp automation with Evolution API means the system sends messages on its own, without someone typing each one. Evolution API makes that connection through a session based on WhatsApp Web, which is quick to put online but is not official. For a channel approved by Meta, the alternative is the WhatsApp Cloud API, which uses approved templates and requires the recipient's opt-in.
I am Anderson Barbosa, of ab/ in Campina Grande, Brazil. I use Evolution API in client projects and in my own product. Below I explain what it does, when to choose the official API, the risks for the number and four real uses from my portfolio.
What Evolution API is
Evolution API is a service that a system calls to send and receive WhatsApp messages. According to the project's own documentation, it connects the number through a session based on WhatsApp Web, using the Baileys library. It also offers the connection through the WhatsApp Cloud API, which is Meta's official API. So when the connection runs on WhatsApp Web, Evolution API is not the official API, and that choice changes the risk of the project.
Related service
From R$ 1.200
Need this in your business? I build it for companies in Campina Grande (PB) and across Brazil, with price and timeline in writing before we start.
Evolution API or the official Meta API: which to use
The difference lies in the connection, the risk for the number and the sending rules. The table summarizes what I consider when choosing.
| Criterion | Evolution API (WhatsApp Web) | WhatsApp Cloud API (Meta) |
|---|---|---|
| Technology | Session based on WhatsApp Web, using the Baileys library | Official API of the WhatsApp Business Platform, from Meta |
| Cost | The API is free, according to the project documentation | May carry a cost per message |
| Rules | May have limitations, and the risk for the number is higher | Must follow Meta's policies; outside the customer service window, only approved templates |
| Recipient permission | Send only to people who asked for contact | Opt-in is required before sending templates |
| When to use | Alerts for people who signed up, small volume and a close relationship | Higher volume, campaigns and operations that cannot stop because of a restriction |
Risks and limits of Evolution API
Evolution API depends on a WhatsApp Web session, which brings three limits that I explain to the client before starting.
- Risk for the number. Meta's developer documentation says the use of unauthorized third-party tools is prohibited. In practice, a number used for mass sending, or for messages the recipient did not ask for, can be restricted.
- Dependence on the version. An update can break a feature. I personally fixed an Evolution API failure that left interactive buttons without working, and I described the fix on the blog.
- Session. The connection needs maintenance and may have to be set up again, so the system must report when a message did not go out.
Before hiring an automation, check the current WhatsApp and Meta terms, because usage rules change. A phone number identifies a person, so its handling falls under Brazil's data protection law, the LGPD (Law 13.709/2018).
Four real uses in my portfolio
The four cases below use Evolution API to send messages that people asked for. Each one solves a different task.
Scheduled alerts: F1 Lembretes
F1 Lembretes is my own system that sends WhatsApp alerts before each Formula 1 session, in Brasília time. Every day it updates the calendar through the Jolpica-F1 API, and a queue runs every minute. Each session gets three alerts, 1 day, 3 hours and 30 minutes ahead, sent to the subscribers group. The timing comes from the official calendar, with no artificial intelligence in the path, and a lock stops the same message from going out twice.
Delivery after the Pix payment: Rúbia Tárcia
On the Rúbia Tárcia website, the e-book “Quando Mãe também é Madrasta” is paid by Pix through AbacatePay. When the payment is confirmed by webhook, the site sends the PDF to the buyer's WhatsApp number, with a message personalized with her name, and marks the delivery so it is not repeated. The author does not need to send the file for each purchase.
New contact alert and visit source: Guilherme Neto Advocacia
On the website of the Guilherme Neto Advocacia e Assessoria law firm, in Campina Grande, the admin panel alerts the firm on WhatsApp when a new contact arrives, through Evolution API. The WhatsApp message also says where the visit came from, such as a Google ad, the Google Business Profile, organic search, Instagram or Facebook, and that source is saved with form leads. This lets the traffic manager measure which channel brought each conversation.
Confirmation code in booking: Nath Rafaeli
On the Nath Rafaeli website, a nail designer who works at clients' homes in Campina Grande, the client confirms her own WhatsApp number with a 6-digit code in the fifth step of the booking. The confirmation arrives right away, and the reminder arrives the day before. Through the link she receives on WhatsApp, the client can also view or cancel the appointment.
Good practices I apply
- Native buttons, with a fallback text. For a code, use a copy button. For an address or page, use a link button. For a short answer, such as YES or reschedule, use a reply button. If a button fails on the version in use, the same information goes out as plain text, so the message never fails to arrive. The post on interactive buttons in Evolution API covers one such failure and how it was fixed.
- Queue and duplicate lock. Each alert goes into a queue, and a lock keeps the same message from going out twice. If the server goes down, an expired alert is discarded instead of sent late.
- Opt-in. Send only to people who asked for it. In F1 Lembretes, the person creates an account and confirms the number with a code sent on WhatsApp. In Nath Rafaeli's booking, the client confirms her own number. In the official API, opt-in is required before any template is sent.
- Short, identified messages. Say who is sending, what it is about and what the person needs to do.
- Visible failure. Record each send and alert the team when a message does not go out.
If you want to build the flow with n8n, there is a tutorial on n8n and Evolution API on the blog.
How much it costs
As of October 2026, an automation of one task starts at R$ 1.200 (see Process Automation), and a WhatsApp customer service bot costs R$ 1.800 to set up plus R$ 180 per month. Hosting, domain and ad budget are separate. The final price depends on what the automation has to do, so the budget comes after I understand the flow. You can also see the services.
If you want to send alerts, deliveries or confirmations on WhatsApp from your system, talk to me. I work with clients in Campina Grande and with companies across Brazil, remotely.
Frequently asked questions
Is Evolution API official from Meta?
No. Evolution API connects the number through a session based on WhatsApp Web, using the Baileys library. The same project also offers the connection through the WhatsApp Cloud API, which is Meta's official API. So Evolution API running on WhatsApp Web carries a higher risk for the number than the official API does.
Can WhatsApp automation get my number blocked?
Yes, it can, and the risk grows with mass sending. Messages to people who did not ask for contact, and spam reports from recipients, raise the chance of a restriction. That is why I send only to people who signed up, keep the volume compatible with the use and keep the official API as a backup plan.
How much does WhatsApp automation with Evolution API cost?
At ab/ Anderson Barbosa, an automation of one task starts at R$ 1.200, and a WhatsApp customer service bot costs R$ 1.800 plus R$ 180 per month. Hosting, domain and ad budget are charged separately. The final budget depends on the rules and integrations the automation needs.
How do I send automatic WhatsApp messages from my system?
The system sends the message when an event happens, such as a confirmed payment, the time of a scheduled alert, a new sign-up or a submitted form. The message goes through the chosen WhatsApp API, with the recipient's number and the text. I build this flow with a queue, a lock against duplicates and a fallback text for every send.