π€ Migrate Salesforce opportunity line items to GoHighLevel with Google Sheets
β‘ 22 views Β· π€ CRM & Sales Operations
Description
Quick overview
This workflow manually migrates Salesforce Opportunity Line Items into GoHighLevel by creating custom_objects.opportunity_products records and associating them to existing opportunities, using Google Sheets as the batch input and status log.
How it works
- Runs when you manually execute the workflow.
- Reads unprocessed opportunity rows from Google Sheets (where Created = βNoβ) and limits the run to a defined batch size.
- For each Salesforce Opportunity ID from the sheet, queries Salesforce for up to 200 related OpportunityLineItem records and splits the results into individual line items.
- Skips any line items that donβt have a Salesforce line item ID and loops through the remaining items one at a time.
- Updates the corresponding Google Sheets row to indicate processing has started, then waits to pace API calls.
- Creates a GoHighLevel
custom_objects.opportunity_productscustom object record populated with fields from the Salesforce line item. - Creates a GoHighLevel association linking the new opportunity product record to the parent GoHighLevel opportunity, then logs success or error status back to Google Sheets with waits between retries.
Setup
- Add Salesforce OAuth2 credentials and replace
YOUR_SF_INSTANCE.my.salesforce.comin the Salesforce query request URL with your Salesforce org domain. - Provide a GoHighLevel Private Integration token and replace
YOUR_GHL_API_TOKEN,YOUR_GHL_LOCATION_ID, andYOUR_GHL_ASSOCIATION_IDin both GoHighLevel HTTP requests. - Add Google Sheets OAuth2 credentials, set
YOUR_GOOGLE_SHEET_ID, and ensure theOpportunity Line Itemstab includesSalesforce Opportunity ID,Opportunity ID,Created, androw_numbercolumns. - Verify the
custom_objects.opportunity_productsschema in GoHighLevel matches the properties being sent (for example,opportunity_product_name,quantity, andwholesale). - Adjust the batch
Limitvalue and the Wait durations if you need to tune throughput for your Salesforce and GoHighLevel rate limits.
π Nodes Used
Google Sheets, HTTP Request
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File