WWP Engine Docs

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 -> end

Prerequisites

  • 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.

  1. Enter a readable name for the client, such as Support Inbox.
  2. Continue to start the WhatsApp worker.
  3. When the QR code appears, open WhatsApp on your phone.
  4. Go to Linked devices and scan the QR code.
  5. 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:

hello

The 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 Message

A 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:

ErrorHow to fix it
No triggerAdd exactly one Trigger node
Disconnected nodeConnect the node or remove it
Missing clientAssign the flow to a WhatsApp client
Unknown node typeRemove stale imported nodes
Go To target missingPick 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:

hello

Expected result:

  • The connected number replies with your Send Message text.
  • The flow appears under /flows/[flowId]/runs after 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

On this page