Getting Started
Connect your first WhatsApp client, publish a simple flow, and test it end-to-end
This guide takes you from a fresh dashboard to a working WhatsApp automation. It uses the dashboard first because it gives the fastest feedback: scan a QR code, build one small flow, send a message, and confirm the run was captured.
What you will build
A simple flow that replies when someone sends hello to your connected WhatsApp number.
Incoming "hello" -> Trigger -> Send Message -> endPrerequisites
- A running WP Engine deployment.
- Access to the web dashboard.
- A WhatsApp account that can scan a QR code.
- Server environment variables configured for PostgreSQL, MongoDB, Redis, and the internal WP Engine server API.
For local development, run the web app on port 3001 and the API server on port 9000 with pnpm dev:web and pnpm dev:server. Docker Compose starts the full stack with docker compose up --build.
1. Sign in to the dashboard
Open the web dashboard and sign in with your account. If this is a new deployment, create the first user through the auth screen.
After sign-in, you should see the protected dashboard navigation with entries for Clients, Flows, Proxies, and API Keys.
2. Connect a WhatsApp client
Go to /clients and create a new client.
- Enter a readable name for the client, such as
Support Inbox. - Continue to start the WhatsApp worker.
- When the QR code appears, open WhatsApp on your phone.
- Go to Linked devices and scan the QR code.
- Wait for the dashboard to show the client as connected.
The server runs one Baileys worker per client. If the worker stops later, you can restart it from the Clients page.
Do not connect a production WhatsApp number until you have tested the flow behavior with a low-risk number. Published flows react to real incoming messages.
3. Create your first flow
Go to /flows and create a flow.
Use a short name, for example Hello responder. Assign it to the client you connected in the previous step if the create dialog asks for a client. If not, assign the client in the flow editor before publishing.
4. Add the trigger
Open the flow editor and add a Trigger node.
Set the trigger mode to keyword and enter:
helloThe trigger matches incoming individual WhatsApp messages. Group, broadcast, and channel messages are ignored before flow execution.
5. Send a reply
Add a Send Message node and connect the Trigger node to it.
Set the message text to:
Hi! Your WP Engine flow is working.Your first graph should look like this:
Trigger -> Send MessageA Send Message node is allowed to terminate the flow when it has no outgoing edge, so an explicit End node is optional for this simple case.
6. Publish the flow
Click Publish in the flow editor.
Publishing validates the graph before it becomes active. Common blockers are:
| Error | How to fix it |
|---|---|
| No trigger | Add exactly one Trigger node |
| Disconnected node | Connect the node or remove it |
| Missing client | Assign the flow to a WhatsApp client |
| Unknown node type | Remove stale imported nodes |
| Go To target missing | Pick an existing target node |
Warnings can appear for unreachable or implicitly terminal nodes. Warnings are visible in the editor but do not always block publishing.
7. Test the automation
From another phone or WhatsApp account, send this to the connected number:
helloExpected result:
- The connected number replies with your Send Message text.
- The flow appears under
/flows/[flowId]/runsafter contact activity is recorded. - The contact appears under
/contacts/[clientId]after WhatsApp data is available.
8. Create an API key when you need integrations
Dashboard flows do not require an API key. External systems do.
Go to /account/api-keys, create a key, and store it immediately. API keys are shown once. Send the key in the x-api-key header when calling /api/rpc operations.
curl -X POST "https://your-web-host.example/api/rpc/server/ping" \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
--data '{}'Troubleshooting
The QR code does not appear
Check that the server app is running, Redis is reachable, and WP_ENGINE_API_URL points from the web app to the server. Restart the worker from /clients after fixing the environment.
The client is connected but no flow runs
Confirm the flow is published, assigned to the same client, and has a trigger that matches the exact incoming message. Group messages are intentionally ignored.
Publishing fails
Open the validation panel in the flow editor and fix blocking errors first. A common first-flow issue is leaving an unconnected node on the canvas.
The API returns unauthorized
Use x-api-key, not Authorization, for the dashboard API. Create keys from /account/api-keys and copy the value before closing the dialog.
Next steps
- Learn the node types in Flow Builder.
- Follow Build your first flow for a branching example.
- Read API keys and external calls when integrating another system.