Internal Reference

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.

PipelinePipeline IDFirst Stage IDFirst Stage Label
Freightt_029d9005cdca83796dace374290b82953881908944Freight Lead Received
Auto Transportt_d8c6d9feb0f475111f7727b315c0ba523882232539Auto Lead Received
Auction Pickupt_8db25a4b5fabb8e8fa1d69adea11fb933881908936Auction Lead Received
White Glove Service24388133704029275897White Glove Lead Received
Specialized Freight24393212854029279933Specialized Freight Lead Received
Business Shipping Program24387007594028552921Business Program Lead Received

Build the HubSpot Workflow

In HubSpot: Automation → Workflows → Create workflow → Contact-based → Start from scratch

TRIGGERMeeting booked

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.

1
Set Contact Owner
Assign to Gailon Greene (or the appropriate team member).
2
Set Lead Source
Set property "Lead Source" → "Scheduling Page".
3
Set pnp_lead_type
Set custom property "pnp_lead_type" → "Consultation Booked".
4
Create Review Task
Create task: "Review consultation request" — Due: 1 business day — Assign to owner.
5
Send Webhook (SMS Confirmation)Webhook
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 }}"
}
6
Send Internal Notification Email
To: [email protected]
Subject: "New Consultation Booked — {{ contact.firstname }} {{ contact.lastname }}"
Body: Include contact name, phone, email, and meeting time.
7
Branch: Does contact have an open deal?Branch
IF contact has an associated deal in any pipeline with stage ≠ "Completed Delivery" → skip to step 9.
ELSE → continue to step 8.
8
Create Deal
Pipeline: White Glove Service (ID: 2438813370)
Stage: White Glove Lead Received (ID: 4029275897)
Deal Name: "{{ contact.firstname }} {{ contact.lastname }} — Consultation"
Associate with contact.
9
Set hs_lead_status = IN_PROGRESS
Set contact property "Lead Status" → "In Progress".

Webhook Configuration (Step 5)

Method

POST

URL

https://pnpfreightsolutions.com/api/meeting-booked-sms

Request 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

Hi [First Name]! This is Gailon at PNP Freight Solutions. Your consultation is confirmed for [Day], [Month] [Date] at [Time] MDT. I'll review your shipping needs before we connect. Questions before then? Reply here or call (719) 223-3373. — Gailon, PNP Freight Solutions
Internal admin page — not indexed by search engines. Pipeline IDs last verified 2026-07-24.