GOHIGHLEVEL ANSWERS & PROMPTS: PLAYBOOK T02 · MULTI-PHOTO FORM UPLOADS & OPPORTUNITY FOLDERS
AUTHOR: DANIEL HALLMAN
KEYWORD: PHOTO FOLDER
PLAYBOOK T02 · Multi-Photo Form Uploads & Opportunity Folders KEYWORD: PHOTO FOLDER

How Do You Automate Multi-Photo Form Uploads Into a Single Folder Link on a GoHighLevel Opportunity?

Answer: When staff submit 20+ inspection or damage photos on a GoHighLevel form, emailing 20 raw attachment URLs to a client looks messy and individual file links take forever to open one by one. Have the form submission fire a Workflow webhook that creates a shared Google Drive folder named after the Opportunity, uploads every photo from the form's file array, checks that the uploaded count matches the submitted count, and writes the single folder link back to an Opportunity custom field before manager approval.

STEP-BY-STEP INSTRUCTIONS + ANNOTATED GHL SCREENSHOTS

Steps in GoHighLevel

  1. STEP 1
    In Sites > Forms, add a File Upload field configured to allow multiple images and make sure external file access is enabled in your sub-account settings so your webhook worker can download each photo URL without a login prompt.
    REAL GHL SCREEN · SITES > FUNNELS, FORMS & CHAT WIDGET ANNOTATED GHL SCREENSHOT
    Annotated GoHighLevel Sites screenshot showing Sites menu, Funnels/Forms/Chat Widget top bar, and + New Funnel button
    1Click Sites in Left Sidebar 2Switch Between Funnels, Forms & Chat Widget 3Click + New Funnel or Build with AI
  2. STEP 2
    In Automation > Workflows, trigger on Form Submitted, create or update the Opportunity, and fire an outbound Webhook action passing {{contact.id}}, {{opportunity.id}}, and the multi-file upload field to create a shared Drive folder, upload each photo, and verify the uploaded file count matches the submitted count.
    REAL GHL SCREEN · AUTOMATION > WORKFLOW BUILDER CANVAS ANNOTATED GHL SCREENSHOT
    Annotated GoHighLevel Workflow Builder canvas screenshot showing If/Else condition branch, priority routing steps, and Builder/Settings/Execution logs tabs
    1Add If/Else Condition & Tag Guard 2Chain Priority & Wait Steps 3Switch to Settings or Execution Logs
  3. STEP 3
    In Settings > Custom Fields (Object: Opportunity) and Opportunities > Pipelines, store the returned Drive folder URL in {{opportunity.inspection_photos_folder_url}} and {{opportunity.photo_upload_status}}, then reference that single merge field inside your manager-approval email workflow.
    REAL GHL SCREEN · SETTINGS > CUSTOM FIELDS ANNOTATED GHL SCREENSHOT
    Annotated GoHighLevel Custom Fields screenshot showing Settings > Custom Fields menu, Contact/Opportunity/Company object filters, and + Create field button
    1Open Settings > Custom Fields 2Filter by Contact or Opportunity Object 3Click + Create Field
MODE: AGENT PROMPT
PASTE INTO CLAUDE CODE, CURSOR, CHATGPT, OR GOHIGHLEVEL ASK AI AGENT PROMPT
Wire multi-photo form uploads to a single Opportunity folder URL in sub-account <YOUR_LOCATION_ID>:
1. In Settings > Custom Fields (Object: Opportunity), create URL field inspection_photos_folder_url and text field photo_upload_status.
2. In Sites > Forms, configure the inspection form with a multi-file upload field.
3. In Automation > Workflows, trigger on Form Submitted, send the file array and opportunity ID to the folder-creation webhook, write the shared folder URL back to opportunity.inspection_photos_folder_url, and gate the client approval email on photo_upload_status = Complete.
Cause
  • Inspection, restoration, and property teams often upload 15 to 30 photos per item using a GoHighLevel form and wait for a manager to approve the record before emailing the customer.
  • Sending two dozen separate file URLs in an email looks unprofessional, and manually downloading and re-uploading photos into Google Drive for every ticket wastes hours every week.
GoHighLevel Configuration
  • Pass the form's uploaded file URL array and Opportunity ID to a webhook workflow that creates one shared Google Drive folder per submission, verifies all files finished uploading
  • and saves the folder link into a custom field on the Opportunity so your manager-approval email merges a clean gallery URL.
MENU PATH REFERENCE

GoHighLevel Menu Paths

Step Menu Path in GHL Action
Step 1 Sites > Forms Add a File Upload field configured to allow multiple images and make sure external file access is enabled in your sub-account settings so your webhook worker can download each photo URL without a login prompt.
Step 2 Automation > Workflows Trigger on Form Submitted, create or update the Opportunity, and fire an outbound Webhook action passing {{contact.id}}, {{opportunity.id}}, and the multi-file upload field to create a shared Drive folder, upload each photo, and verify the uploaded file count matches the submitted count.
Step 3 Settings > Custom Fields Opportunity) and Opportunities > Pipelines, store the returned Drive folder URL in {{opportunity.inspection_photos_folder_url}} and {{opportunity.photo_upload_status}}, then reference that single merge field inside your manager-approval email workflow.
3-step workflow diagram showing Send Form Webhook with file array, Create Shared Folder with file count check, and Save Opportunity Link to a custom field.
VISUAL PLAYBOOK · PLAYBOOK T02 (MULTI-PHOTO FORM UPLOADS & OPPORTUNITY FOLDERS) Back to Annotated GHL Screenshots ↑
DEFAULT SETUP VS. AUTOMATED WORKFLOW

Operational Comparison

Speed to Lead & Callback Safety
Default 0s Checkbox: Collides with Rep
45s Guard Workflow: Zero Collision
Caller Reply & Booking Rate
Generic 'We Missed You' SMS: 12%
Question-First Workflow SMS: 64%

Related Questions

BUILD FASTER IN GOHIGHLEVEL · FREE TRIAL BONUSES + MCP SERVER

Build this directly inside your GoHighLevel sub-account

Connect Claude Code, Cursor, or OpenAI Codex to our ghl-tools MCP Server & Rust CLI to build workflows, forms, and funnels from your editor, or start your GoHighLevel plan through our partner link to unlock $612+ in ready-to-import kits (including GHL Inspection Form & Opportunity Pack) and weekly live clinics.