{"nodes":[{"id":"29451054-fcd6-4054-b072-a87c716f6c67","name":"On clicking 'execute'","type":"n8n-nodes-base.manualTrigger","position":[240,240],"parameters":{},"typeVersion":1,"notes":"This manualTrigger node performs automated tasks as part of the workflow."},{"id":"995ae9b0-130c-4989-8e94-81a14b7743c4","name":"Read Google Sheet","type":"n8n-nodes-base.googleSheets","position":[460,240],"parameters":{"options":{},"sheetId":"1cz-4tVi7Nn3j1gh147hROq9l6S4ta06sMfhm2AAI6js"},"credentials":{"googleSheetsOAuth2Api":{"id":"{{ $credentials.googleSheetsOAuth2Api.id }}","name":"Tom's Google Sheets account"}},"typeVersion":2,"notes":"This googleSheets node performs automated tasks as part of the workflow."},{"id":"2c1ed019-85f1-4b0f-bcf5-ce59ff13ea49","name":"Search Salesforce accounts","type":"n8n-nodes-base.salesforce","position":[680,240],"parameters":{"query":"=SELECT id, Name FROM Account WHERE Name = '{{$json[\"Company Name\"].replace(/'/g, '\\\\\\'')}}'","resource":"search"},"credentials":{"salesforceOAuth2Api":{"id":"{{ $credentials.salesforceOAuth2Api.id }}","name":"Salesforce account"}},"typeVersion":1,"alwaysOutputData":false,"notes":"This salesforce node performs automated tasks as part of the workflow."},{"id":"c6978a27-3cdc-44a2-a961-94557b2aed88","name":"Keep new companies","type":"n8n-nodes-base.merge","position":[900,40],"parameters":{"mode":"removeKeyMatches","propertyName1":"Company Name","propertyName2":"Name"},"typeVersion":1,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"7b5df5cf-7019-415b-9758-7f62c4fb13c8","name":"Merge existing account data","type":"n8n-nodes-base.merge","position":[900,440],"parameters":{"mode":"mergeByKey","propertyName1":"Company Name","propertyName2":"Name"},"typeVersion":1,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"7da1de2f-2b37-4e33-b8d4-d1dc59e94bbe","name":"Account found?","type":"n8n-nodes-base.if","position":[1120,440],"parameters":{"conditions":{"string":[{"value1":"={{ $json[\"Id\"] }}","operation":"isNotEmpty"}]}},"typeVersion":1,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"80890a2a-f6d3-4efd-92b1-6465f98f512b","name":"Remove duplicate companies","type":"n8n-nodes-base.itemLists","position":[1120,140],"parameters":{"compare":"selectedFields","options":{},"operation":"removeDuplicates","fieldsToCompare":{"fields":[{"fieldName":"Company Name"}]}},"typeVersion":1,"notes":"This itemLists node performs automated tasks as part of the workflow."},{"id":"ea9afa15-77be-4d7a-a287-35d4c1c6e6c1","name":"Set Account ID for existing accounts","type":"n8n-nodes-base.renameKeys","position":[1340,440],"parameters":{"keys":{"key":[{"newKey":"{{ $credentials.newKey }}","currentKey":"{{ $credentials.currentKey }}"}]},"additionalOptions":{}},"typeVersion":1,"notes":"This renameKeys node performs automated tasks as part of the workflow."},{"id":"61cfdf30-9135-40bf-929d-317fca0ad474","name":"Retrieve new company contacts","type":"n8n-nodes-base.merge","position":[1780,40],"parameters":{"mode":"mergeByKey","propertyName1":"Company Name","propertyName2":"Name"},"typeVersion":1,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"c10dea7c-96b0-4f3b-b859-af094ced51cc","name":"Set new account name","type":"n8n-nodes-base.set","position":[1560,140],"parameters":{"values":{"string":[{"name":"id","value":"={{ $json[\"id\"] }}"},{"name":"Name","value":"={{ $node[\"Remove duplicate companies\"].json[\"Company Name\"] }}"}]},"options":{},"keepOnlySet":true},"typeVersion":1,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"a4a2be2a-7bd9-4a70-b4d9-0df53834bdda","name":"Create Salesforce account","type":"n8n-nodes-base.salesforce","position":[1340,140],"parameters":{"name":"={{ $json[\"Company Name\"] }}","resource":"account","additionalFields":{}},"credentials":{"salesforceOAuth2Api":{"id":"{{ $credentials.salesforceOAuth2Api.id }}","name":"Salesforce account"}},"typeVersion":1,"notes":"This salesforce node performs automated tasks as part of the workflow."},{"id":"89f49e6f-62be-403f-9a4c-cd56e28141f3","name":"Create Salesforce contact","type":"n8n-nodes-base.salesforce","position":[2000,240],"parameters":{"lastname":"={{ $json[\"Last Name\"] }}","resource":"contact","operation":"upsert","externalId":"Email","externalIdValue":"={{ $json[\"Email\"] }}","additionalFields":{"email":"={{ $json[\"Email\"] }}","firstName":"={{ $json[\"First Name\"] }}","acconuntId":"={{ $json[\"Account ID\"] }}"}},"credentials":{"salesforceOAuth2Api":{"id":"{{ $credentials.salesforceOAuth2Api.id }}","name":"Salesforce account"}},"typeVersion":1,"notes":"This salesforce node performs automated tasks as part of the workflow."},{"id":"error-9bb4107a","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"connections":{"Read Google Sheet":{"main":[[]]}},"name":"Manualtrigger Workflow","description":"Automated workflow: Manualtrigger Workflow. This workflow processes data and performs automated tasks.","settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"meta":{"instanceId":"workflow-20fc8122","versionId":"1.0.0","createdAt":"2025-09-29T07:07:48.776056","updatedAt":"2025-09-29T07:07:48.776070","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"notes":"Excellent quality workflow: Manualtrigger Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}