HubSpot to WhatsApp with Beex, instant welcomes
New leads come in, and somehow the “quick welcome” turns into a messy scramble. Someone exports a contact list, someone else checks phone numbers, and a few good leads quietly go cold.
This HubSpot WhatsApp automation hits marketing managers first, but sales reps and small business owners feel it too. You get an instant, consistent first touch on WhatsApp without manually copying contact details or guessing if the number is valid.
This guide breaks down what the workflow does, why it’s worth automating, and how to think about customizing it once it’s running.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: HubSpot to WhatsApp with Beex, instant welcomes
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Inbound Webhook Trigger"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Fetch HubSpot Contact"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Verify Contact Details", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map Message Fields", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Dispatch WhatsApp Template", pos: "b", h: 48 }
n0 --> n1
n3 --> n4
n1 --> n2
n2 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2 decision
class n0 api
classDef customIcon fill:none,stroke:none
class n0,n1 customIcon
Why This Matters: Leads Go Cold Between HubSpot and WhatsApp
If you rely on WhatsApp to convert leads, speed is the whole game. But HubSpot and WhatsApp usually live in two different worlds, which means your “welcome message” becomes a manual task you do when you remember. Then you second-guess the phone number format, realize the contact is missing a country code, or find out the email field is blank. Meanwhile, the lead has already moved on, or worse, you message the wrong person and create an awkward support ticket for yourself.
It adds up fast. Here’s where the friction usually shows up:
- Someone has to notice the new contact, which means weekends and busy days create silent gaps.
- Phone numbers arrive in inconsistent formats, so sending from WhatsApp becomes a copy-paste and cleanup routine.
- Contacts without an email or phone number slip into “welcome” campaigns and waste your team’s time.
- Manual first-touch messaging feels small, but it can easily burn an hour a day once lead volume grows.
What You’ll Build: HubSpot Contact → Validated WhatsApp Welcome
This workflow listens for a HubSpot “contact created” event through a webhook, then pulls the full contact details so you’re not stuck with partial event data. Next, it checks the basics: the contact must have a real email and a real phone number before anything gets sent. After that, it standardizes the fields you actually need, cleans up the phone format (including removing the “+” from a country code when required), and maps values into a WhatsApp template format. Finally, it sends a pre-approved WhatsApp template through Beex using the correct Queue ID so the message is delivered reliably and consistently.
The workflow starts at HubSpot, but it doesn’t trust the first payload blindly. It validates, reshapes, and only then pushes a welcome template through Beex to WhatsApp. The result is a fast first touch that looks like your business, not a rushed manual reply.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you add about 20 new HubSpot contacts a day from forms and inbound chats. Manually, even “quick” WhatsApp welcomes take maybe 5 minutes each once you open HubSpot, find the phone number, fix formatting, and paste a message, so you lose roughly 1.5 to 2 hours daily. With this workflow, the trigger is instant and the send is automatic as long as email and phone exist, which means your time cost drops to near zero. You still get control, because the template content is set in Beex and the field mapping is explicit in n8n.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- HubSpot for contact creation events and contact data.
- Beex to send approved WhatsApp templates at scale.
- HubSpot access token (create a private app in HubSpot).
- Beex API key (Platform Settings → API Key & Callback).
Skill level: Intermediate. You’ll connect accounts, paste a webhook URL into HubSpot, and map a few fields to match your WhatsApp template.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A new HubSpot contact triggers the workflow. HubSpot sends a contact-created event to your n8n webhook URL, so n8n can start immediately.
The workflow fetches the full contact record. The HubSpot node pulls the contact by ID and extracts the properties you actually want to use (like first name, email, phone number, and anything else you add later).
Validation decides if this lead should be messaged. An “only continue if…” filter checks that email and phone are not empty. If they’re missing, the workflow stops, which prevents sending to bad or incomplete records.
Field mapping prepares the WhatsApp template payload. n8n renames and standardizes fields, cleans up the country code, and sets the “associated values” that match your Beex template placeholders.
Beex dispatches the WhatsApp template. The workflow sends your pre-approved welcome template using the Queue ID tied to the template/campaign in Beex, so delivery stays consistent.
You can easily modify which HubSpot sources trigger a welcome (for example, only certain forms) and adjust the message variables to fit your template. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
This workflow starts when an external system sends a POST request into n8n.
- Add the Inbound Webhook Trigger node as the trigger.
- Set HTTP Method to
POST. - Set Path to
3757267f-2176-4a9c-b564-9615d4574262. - Copy the test URL and use it in the external system that will call this webhook.
Execution Flow: Inbound Webhook Trigger → Fetch HubSpot Contact.
Step 2: Connect HubSpot and Fetch Contact Data
This step retrieves the contact record from HubSpot using the object ID sent in the webhook payload.
- Add the Fetch HubSpot Contact node.
- Credential Required: Connect your hubspotAppToken credentials.
- Set Operation to
getand Authentication toappToken. - Set Contact ID to
={{ $json.body[0].objectId }}. - Under Additional Fields → Properties, include
email,phone,hs_whatsapp_phone_number, andfirstname.
Execution Flow: Fetch HubSpot Contact → Verify Contact Details.
Step 3: Set Up Contact Validation and Mapping
Validate that the contact has required fields, then map those values for WhatsApp templating.
- Add the Verify Contact Details node.
- Configure the conditions to check for existing and non-empty values using these expressions:
- Set Left Value to
={{ \n $json.properties \n .email.value \n}}with Operationexists. - Set Left Value to
={{ \n $json.properties. \n hs_calculated_phone_number.value \n}}with Operationexists. - Set Left Value to
={{ \n $json.properties\n .email.value \n}}with OperationnotEmpty. - Set Left Value to
={{ \n $json.properties.\n hs_calculated_phone_number.value \n}}with OperationnotEmpty. - Add the Map Message Fields node and create these assignments:
- country_code →
={{ \n $json.properties.hs_calculated_phone_number\n .value.slice(1,3) \n}} - phone_number →
={{ \n $json.properties.hs_calculated_phone_number\n .value.slice(3) \n}} - template_name →
n8n_beex - associated_values →
=[\"{{ $json.properties.firstname.value }}\"]
Execution Flow: Verify Contact Details → Map Message Fields.
Step 4: Configure the WhatsApp Template Dispatch
Send the templated WhatsApp message through Beex using the mapped fields.
- Add the Dispatch WhatsApp Template node.
- Credential Required: Connect your beexApi credentials.
- Set Queue ID to
38. - Set Resource to
templatesand Operation topost. - Map code_country to
={{ $json.country_code }}. - Map phone_number to
={{ $json.phone_number }}. - Map template_name to
={{ $json.template_name }}. - Map template_values to
={{ $json.associated_values }}.
Execution Flow: Map Message Fields → Dispatch WhatsApp Template.
Step 5: Test and Activate Your Workflow
Verify that the webhook, HubSpot lookup, and WhatsApp dispatch run end-to-end.
- Click Execute Workflow to put Inbound Webhook Trigger in test mode.
- Send a POST request to the webhook URL with a payload containing
body[0].objectId. - Confirm Fetch HubSpot Contact returns the contact and Verify Contact Details passes.
- Check Map Message Fields outputs
country_code,phone_number, and the template fields correctly. - Validate that Dispatch WhatsApp Template sends the WhatsApp message successfully.
- When ready, toggle the workflow to Active for production use.
Troubleshooting Tips
- HubSpot credentials can expire or lack the right scopes. If contacts fail to fetch, check your private app token and verify it has read access to Contacts.
- Beex sends templates using a Queue ID tied to a specific approved template and campaign. If your message fails, confirm the template is approved and the Queue ID in the “Send Template” node matches what Beex shows.
- Phone formatting issues are sneaky. If WhatsApp delivery is inconsistent, review your mapping node to confirm the country code is correct and the “+” removal logic matches what Beex expects.
Quick Answers
About 45 minutes if your HubSpot app and Beex template are ready.
No. You will connect credentials, paste a webhook URL into HubSpot, and map fields to your template.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Beex platform and WhatsApp template messaging costs based on your plan.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. You can add an extra filter right after the webhook so only specific HubSpot forms or lead sources trigger the message, and you can expand the “Fetch HubSpot Contact” properties list if your template needs more fields. Most customization happens in the “Map Message Fields” step (that’s where the template name and associated values are set). If you switch WhatsApp providers later, you typically keep the HubSpot + validation parts and replace only the “Dispatch WhatsApp Template” step.
Usually it’s an invalid API key or a Queue ID that doesn’t match an approved template. Re-check your Beex API key in Platform Settings, then confirm the template is approved and associated with a campaign/queue. If the template name in your mapping step doesn’t exactly match what you created in Beex, the payload can be rejected too.
Practically, it can handle hundreds of new contacts per day for most small teams, and self-hosting removes execution caps (your server becomes the limit).
For this workflow, n8n has a few advantages: more control over validation and mapping, easier handling of webhook-driven HubSpot events, and the ability to self-host for unlimited executions when volume grows. It’s also simpler to keep the exact field formatting you need for a WhatsApp template payload. Zapier or Make can be fine for basic “HubSpot contact created → send message” flows, but they get clunky when you must enforce rules like “only send if email and phone exist” and standardize country codes. If you’re torn, Talk to an automation expert and get a quick recommendation based on your lead volume.
Once this is live, new HubSpot contacts get a proper WhatsApp welcome without the daily babysitting. Honestly, it’s one of those automations you only notice when it’s gone.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.