← Operating Docs · PV Subaccount Setup

GHL Workflows Build Guide · PostureVision Subaccount

Subaccount: Posture Vision (Fort Myers, FL) Location ID: wvQwMzyXRjFdLc5UInJZ Workflows URL: https://app.gohighlevel.com/v2/location/wvQwMzyXRjFdLc5UInJZ/automation/workflows Build time: ~30 min for all 3 workflows Date: May 18, 2026


What we're building

  1. PV - Foundation Cohort Outreach, 5-touch insider campaign May 24–Jun 8 (300 patients)
  2. PV - Slot Decision Webhook, round-trip to lead-seg-worker for calendar uncertainty
  3. PV - Foundation Cohort Conversion Hook. Stripe → tag + counter increment + Pushover

Plus 2 optional support builds: 4. PV AI Conversational Agent, paste system prompt 5. Custom fields setup, counters + flags Workflows 1 + 3 need

Do them in this order, 4 prerequisites first, then workflows that depend on them.


Step 0 · Prerequisites (do these FIRST)

0a · Create 3 custom fields

Settings → Custom Fields → Add Field

Field name Type Used by
foundation_cohort_count Numeric Workflow 3 increments on each conversion
foundation_cohort_member Single checkbox Workflow 3 flips to TRUE on conversion
foundation_cohort_lapsed Single checkbox Workflow 1 flips to TRUE on June 8 if not converted

0b · Create 3 tags (Settings → Tags → Add Tag)

0c · Bulk-tag the 300 patients

Contacts → All Contacts → filter to your patient list (probably by source = "Patient" or by date range matching when they were in your clinic). Select all → Bulk Actions → Add Tag → foundation-cohort-2026.

⚠️ Critical: do this before May 24 10:00 AM ET. The tag is the trigger.


Workflow 1, PV - Foundation Cohort Outreach

Create the shell

  1. Click + Create Workflow (top right)
  2. Pick Start from scratch (NOT a recipe)
  3. Name: PV - Foundation Cohort Outreach
  4. Save

Add the trigger

  1. Click + Add New Trigger
  2. Pick Contact Tag → Added
  3. Tag = foundation-cohort-2026
  4. Save trigger

Add the actions (in order)

Action 1. Wait until May 24, 10:00 AM ET

Action 2. Email (Touch 1)

Action 3. Wait 2 hours

Action 4. If/Else: Email opened?

Action 5 (NO branch only). Send SMS

Action 6. Wait until May 27, 9:00 AM ET

Action 7. Email (Touch 2)

Action 8. Wait until May 29, 8:00 AM ET

Action 9. Email (Touch 3, the offer)

Action 10. Wait 9 hours

Action 11. If/Else: Email opened AND tag foundation-cohort-converted not added?

Action 12 (YES branch only). SMS

Action 13. Wait until June 1, 7:00 AM ET

Action 14. Email (Touch 4, launch day)

Action 15. Wait until June 4, 10:00 AM ET

Action 16. If/Else: tag foundation-cohort-converted NOT added AND foundation_cohort_count < 30?

Action 17 (YES branch only). Email (Touch 5, closing)

Action 18. Wait until June 8, 11:59 PM ET

Action 19. If/Else: tag foundation-cohort-converted NOT added?

Action 20 (YES branch only). Apply tag foundation-cohort-lapsed

Action 21. Remove tag foundation-cohort-2026

Action 22. End workflow

Publish

  1. Top right → Status toggle → ON / Publish
  2. Confirm enrollment rules: "Enroll new contacts when trigger fires" = ON, "Re-enroll when trigger fires again" = OFF

Workflow 2, PV - Slot Decision Webhook

This one rides on top of GHL's AI Agent. The agent classifies inbound conversations; when it detects "patient is asking for a specific time slot and we need Brian's call," it fires this workflow.

Create the shell

Trigger

Actions

Action 1. Webhook POST to lead-seg-worker

{
  "contactId": "{{contact.id}}",
  "contactName": "{{contact.first_name}} {{contact.last_name}}",
  "contactEmail": "{{contact.email}}",
  "requestedSlot": "{{ai_agent.extracted.requested_slot_iso}}",
  "agentNote": "{{ai_agent.summary}}",
  "subaccount": "PV",
  "callbackURL": "https://services.leadconnectorhq.com/hooks/{{workflow.callback_url}}"
}

Action 2. Wait for callback

Action 3. If/Else on decision

Publish


Workflow 3, PV - Foundation Cohort Conversion Hook

Fires when a Foundation Cohort patient completes Stripe checkout.

Trigger

Alternative: if you trigger from Stripe webhook directly, set the webhook URL to your worker, have the worker POST a GHL inbound webhook with the contact info.

Actions

Action 1. Apply tag foundation-cohort-converted

Action 2. Update custom field foundation_cohort_member = TRUE

Action 3. Update custom field foundation_cohort_count (increment by 1)

Action 4. Webhook POST to Pushover (notify Brian)

{
  "token": "{{Pushover app token from your env}}",
  "user": "{{Pushover user key}}",
  "title": "🎉 Foundation lock-in",
  "message": "{{contact.first_name}} {{contact.last_name}} just locked in. Count: {{custom_values.foundation_cohort_count}}/30."
}

⚠️ Pushover credentials shouldn't be in the workflow body, instead, hit your worker's /admin/notify-conversion endpoint and let the worker hold the secret. (We can add that endpoint in 5 min, say the word.)

Action 5. Remove from Workflow 1

Action 6. Add to Workflow 6 (Foundation Cohort Members)

Publish


Step 4 · PV AI Conversational Agent (the system prompt paste)

URL: https://app.gohighlevel.com/v2/location/wvQwMzyXRjFdLc5UInJZ/conversation-ai/conversation-ai-list

  1. Click + Create AI Agent (or edit existing if there's already one)
  2. Name: Elina. PostureVision
  3. Channels: enable IG comments, IG DMs, FB DMs, SMS, Email, Web Chat
  4. System prompt: paste the entire ## System Prompt (paste into GHL, version for PostureVision subaccount) block from Code/lead-seg-worker/GHL_AGENT_SPEC.md
  5. Tools / Allowed actions:
    • book-slot (calls the calendar widget)
    • send-link (sends a tracked link to the contact)
    • escalate-to-Brian (creates a task)
    • slot-decision-request (fires Workflow 2's webhook, this is the bridge to the slot-decision tap flow)
  6. Escalation rules:
    • Anything clinical → escalate-to-Brian
    • Anything legal → escalate-to-Brian
    • Anything outside 8a–9p ET after 3 back-and-forths → escalate-to-Brian
  7. Save + enable

Repeat steps for the DH subaccount (different system prompt. DH version in same spec file).


Troubleshooting

Workflow 1 not firing on May 24?

Touch 4 shows "X of 30" with X = 0?

Slot-decision tap page loads but won't accept the tap?


Done condition

When all of these are green:

When this list is checked off, you can sleep through May 24 launch day and the engine handles it.