Wubble now has a Developer API — connect n8n, Zapier, and your CRM in minutes

We built Wubble so that WhatsApp conversations could be managed smarter — with automation, pipelines, and team workflows in one place. Today, we’re opening Wubble up to the tools you already use. Introducing the Wubble Developer API.

From today, every Wubble workspace gets access to a set of REST API endpoints under /api/v1/ — authenticated with your own personal API key. Send messages, sync contacts, create deals, and trigger workflows from any external tool: n8n, Zapier, Make, your own CRM, or a custom script.

This post is your complete guide to getting started.

What you can do with the API

Five core endpoint groups are available right now:

  • POST /api/v1/send: Send a text or template message to any phone number
  • GET/POST /api/v1/contacts: List, create, or update contacts in your workspace
  • GET /api/v1/conversations: List your inbox conversations
  • GET /api/v1/pipelines: Fetch your pipeline names, stages, and stage IDs
  • GET/POST /api/v1/deals: List all deals or create new ones in any pipeline stage

Step-by-step: Generate your API key

  1. Open Settings → Developer: Log into your Wubble dashboard. In the left sidebar, click Settings, then navigate to the Developer tab.
  2. Click “Generate New Key”: Give your key a name — something descriptive like “n8n automation” or “CRM sync”. This helps you track which integration is using which key.
  3. Copy your key immediately: Your key is shown exactly once. It starts with wacrm_ — save it in a secure place. You will not be able to see it again.

Security note: Wubble never stores your raw API key — only a hashed fingerprint. If you lose your key, revoke it and generate a new one from the Developer settings panel.

Authenticating your requests

All API requests use Bearer token authentication. Pass your API key in the Authorization header with every request:

Authorization: Bearer wacrm_YOUR_API_KEY

No cookies, no sessions. Every request is stateless and scoped to your workspace only.

Sending your first message

The most powerful endpoint is POST /api/v1/send. It automatically creates a contact and conversation if the phone number doesn’t exist yet, dispatches the message through Meta’s WhatsApp API, and pauses any active bot flow on that contact — so your manual or automated message always gets through cleanly.

Send a plain text message

curl -X POST https://your-wubble-domain.com/api/v1/send \
  -H "Authorization: Bearer wacrm_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+919876543210",
    "message_type": "text",
    "content_text": "Hello from n8n! Your order is confirmed."
  }'

Send a WhatsApp template

curl -X POST https://your-wubble-domain.com/api/v1/send \
  -H "Authorization: Bearer wacrm_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+919876543210",
    "message_type": "template",
    "template_name": "order_confirmation",
    "template_params": ["Rahul", "ORD-4521"]
  }'
ParameterTypeNotes 
phonestringE.164 format with country code (required)
message_typestring“text” or “template” (required)
content_textstringYour message body (for text type)
template_namestringMeta-approved template name
template_paramsarrayVariable values in order

Managing contacts

Fetch all contacts

curl -X GET https://your-wubble-domain.com/api/v1/contacts \
  -H "Authorization: Bearer wacrm_YOUR_API_KEY"

You can also filter by phone or email using query params: ?phone=%2B919876543210&[email protected]

Create or update a contact

curl -X POST https://your-wubble-domain.com/api/v1/contacts \
  -H "Authorization: Bearer wacrm_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+919876543210",
    "name": "Priya Sharma",
    "email": "[email protected]",
    "company": "Aquilyn Digital"
  }'

The contacts endpoint uses phone number matching — if a contact with the same phone already exists, it updates the record rather than creating a duplicate.

Working with pipelines and deals

Before you can create a deal, you’ll need the IDs for your pipeline and target stage. Fetch them with:

curl -X GET https://your-wubble-domain.com/api/v1/pipelines \
  -H "Authorization: Bearer wacrm_YOUR_API_KEY"

The response gives you pipeline_id and a list of stages with their stage_id values. Copy the ones you need, then create a deal:

curl -X POST https://your-wubble-domain.com/api/v1/deals \
  -H "Authorization: Bearer wacrm_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Priya — Website Package",
    "contact_id": "CONTACT_UUID",
    "pipeline_id": "PIPELINE_UUID",
    "stage_id": "STAGE_UUID",
    "value": 18000.00
  }'

Connecting with n8n or Zapier

These endpoints are standard REST — any HTTP node in n8n or Zapier’s Webhooks action will work out of the box. Here’s a quick setup for n8n:

  1. Add an HTTP Request node: Set method to POST, URL to your Wubble /api/v1/send endpoint.
  2. Add your API key as a header: Header name: Authorization · Value: Bearer wacrm_YOUR_KEY
  3. Map your data and test: Pass phone, message_type, and content_text from your upstream trigger node. Hit execute — done.

Tip for Zapier users: Use the “Webhooks by Zapier” action → POST. Add the Authorization header under “Headers” in the custom request setup.

What’s coming next

The v1 API is just the start. We’re already working on:

  • Inbound webhook events (message received, deal stage changed)
  • Bot flow trigger/pause control via API
  • Bulk message dispatch endpoint
  • OAuth 2.0 for third-party app integrations

If you’re on Wubble and want to connect your stack, head to Settings → Developer and generate your first key today. And if you run into any issues or have a specific integration you’re trying to build, just reach out — we’ll help you get it working.

— Shantanu Chakraborty

Founder, Aquilyn Digital

Newsletter Updates

Enter your email address below and subscribe to our newsletter

Leave a Reply

Your email address will not be published. Required fields are marked *