HubSpot Workflow Setup
Step-by-step guide to build the "Meeting Booked → SMS Confirmation" workflow in HubSpot. All pipeline and stage IDs below are confirmed live values from the PNP Freight HubSpot account.
Pipeline & Stage IDs
Confirmed 2026-07-24 via /api/hubspot-pipelines. These are already wired into the form submission code — no secrets needed.
| Pipeline | Pipeline ID | First Stage ID | First Stage Label |
|---|---|---|---|
| Freight | t_029d9005cdca83796dace374290b8295 | 3881908944 | Freight Lead Received |
| Auto Transport | t_d8c6d9feb0f475111f7727b315c0ba52 | 3882232539 | Auto Lead Received |
| Auction Pickup | t_8db25a4b5fabb8e8fa1d69adea11fb93 | 3881908936 | Auction Lead Received |
| White Glove Service | 2438813370 | 4029275897 | White Glove Lead Received |
| Specialized Freight | 2439321285 | 4029279933 | Specialized Freight Lead Received |
| Business Shipping Program | 2438700759 | 4028552921 | Business Program Lead Received |
Build the HubSpot Workflow
In HubSpot: Automation → Workflows → Create workflow → Contact-based → Start from scratch
Filter: Meeting type = "Talk to a Shipping Specialist" (the scheduler at meetings-na2.hubspot.com/gailon)
Re-enrollment: ON — allow contacts to re-enter if they book again.
Assign to Gailon Greene (or the appropriate team member).
Set property "Lead Source" → "Scheduling Page".
Set custom property "pnp_lead_type" → "Consultation Booked".
Create task: "Review consultation request" — Due: 1 business day — Assign to owner.
POST to: https://pnpfreightsolutions.com/api/meeting-booked-sms
Body (JSON):
{
"contactName": "{{ contact.firstname }} {{ contact.lastname }}",
"contactPhone": "{{ contact.phone }}",
"contactEmail": "{{ contact.email }}",
"meetingTime": "{{ meeting.start_time }}"
}To: [email protected] Subject: "New Consultation Booked — {{ contact.firstname }} {{ contact.lastname }}" Body: Include contact name, phone, email, and meeting time.
IF contact has an associated deal in any pipeline with stage ≠ "Completed Delivery" → skip to step 9. ELSE → continue to step 8.
Pipeline: White Glove Service (ID: 2438813370)
Stage: White Glove Lead Received (ID: 4029275897)
Deal Name: "{{ contact.firstname }} {{ contact.lastname }} — Consultation"
Associate with contact.Set contact property "Lead Status" → "In Progress".
Webhook Configuration (Step 5)
Method
POSTURL
https://pnpfreightsolutions.com/api/meeting-booked-smsRequest Body (JSON)
{
"contactName": "{{ contact.firstname }} {{ contact.lastname }}",
"contactPhone": "{{ contact.phone }}",
"contactEmail": "{{ contact.email }}",
"meetingTime": "{{ meeting.start_time }}"
}✓ Endpoint tested and live. Returns { ok: true } on success. HubSpot will receive a 200 regardless of SMS outcome so the workflow never retries on SMS errors.
Activation Checklist
SMS Message Preview
From: (719) 223-3373