{"product_id":"migrate-salesforce-opportunity-line-items-to-gohighlevel","title":"Migrate Salesforce Opportunity Line Items to GoHighLevel","description":"\u003ch3\u003eMigrate Salesforce Opportunity Line Items into GoHighLevel (with a Google Sheets batch log)\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow manually migrates your \u003cstrong\u003eSalesforce Opportunity Line Items\u003c\/strong\u003e into \u003cstrong\u003eGoHighLevel\u003c\/strong\u003e by creating \u003ccode\u003ecustom_objects.opportunity_products\u003c\/code\u003e records and linking them to existing GoHighLevel opportunities—using \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e to track processing status from start to success\/error.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eManual trigger:\u003c\/strong\u003e Runs when you execute the workflow manually in n8n.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReads batch inputs:\u003c\/strong\u003e Pulls unprocessed opportunity rows from Google Sheets where \u003cem\u003eCreated = \"No\"\u003c\/em\u003e, then limits the run to a defined \u003cstrong\u003ebatch size\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFetches Salesforce line items:\u003c\/strong\u003e For each Salesforce Opportunity ID in the sheet, queries Salesforce for up to \u003cstrong\u003e200\u003c\/strong\u003e related \u003cstrong\u003eOpportunityLineItem\u003c\/strong\u003e records.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eProcesses item-by-item:\u003c\/strong\u003e Splits results into individual line items, skips records missing a Salesforce line item ID, and processes the remaining items sequentially.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eUpdates sheet status:\u003c\/strong\u003e Marks the row as “processing started,” then paces API calls to avoid rate issues.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCreates GoHighLevel products:\u003c\/strong\u003e Creates a GoHighLevel \u003ccode\u003ecustom_objects.opportunity_products\u003c\/code\u003e record populated with fields from the Salesforce line item.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAssociates to the parent opportunity:\u003c\/strong\u003e Creates a GoHighLevel association linking the new opportunity product to the corresponding GoHighLevel opportunity.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLogs success or errors:\u003c\/strong\u003e Writes results back to Google Sheets and retries with waits between attempts when needed.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eMoving active deals from Salesforce to GoHighLevel while preserving line-item details.\u003c\/li\u003e\n  \u003cli\u003eIncremental migrations driven by a Google Sheets queue (process only rows not yet marked Created).\u003c\/li\u003e\n  \u003cli\u003eBatch-controlled backfills to reduce load on Salesforce and GoHighLevel APIs.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSalesforce OAuth2:\u003c\/strong\u003e HTTP requests to query OpportunityLineItems (replace your org domain in the URL).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGoHighLevel Private Integration:\u003c\/strong\u003e Uses your token, \u003cstrong\u003elocation ID\u003c\/strong\u003e, and \u003cstrong\u003eassociation ID\u003c\/strong\u003e for record creation and linking.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n nodes used:\u003c\/strong\u003e \u003ccode\u003ehttp request\u003c\/code\u003e, \u003ccode\u003eif\u003c\/code\u003e, \u003ccode\u003elimit\u003c\/code\u003e, \u003ccode\u003esplit out\u003c\/code\u003e, \u003ccode\u003ewait\u003c\/code\u003e, plus a \u003ccode\u003esticky note\u003c\/code\u003e for workflow clarity.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003cstrong\u003eSetup:\u003c\/strong\u003e Add Salesforce OAuth2 credentials, update the Salesforce request URL with your org domain, and provide \u003cstrong\u003eGoHighLevel Private Integration\u003c\/strong\u003e values (\u003ccode\u003eYOUR_GHL_API_TOKEN\u003c\/code\u003e, \u003ccode\u003eYOUR_GHL_LOCATION_ID\u003c\/code\u003e, \u003ccode\u003eYOUR_GHL_ASSOCIATION_ID\u003c\/code\u003e).\u003c\/p\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45978876641459,"sku":"N8N-19373","price":53.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/em2Ub4MCd3kFuiUwU13br_oh2wlI1A.png?v=1788858263","url":"https:\/\/buyflowscripts.com\/products\/migrate-salesforce-opportunity-line-items-to-gohighlevel","provider":"N8N Commerce","version":"1.0","type":"link"}