Intermediate~20 min setupProductivity & CRMVerified April 2026
Google Sheets logo
Salesforce logo

How to Import Trade Show Leads from Google Sheets to Salesforce with N8n

Automatically converts attendee data from Google Sheets into qualified Salesforce leads after trade shows.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

Best for

Teams that need data validation and transformation when importing trade show leads

Not ideal for

Simple imports without custom formatting or data enrichment needs

Sync type

polling

Use case type

import

Real-World Example

πŸ’‘

A 25-person B2B software company attends 6 trade shows annually, collecting 150-400 leads per event through badge scans and signup forms. Their sales ops manager previously spent 2-3 hours after each show manually cleaning attendee data and importing leads into Salesforce, often missing leads that had formatting issues. Now they paste raw booth scan data into Google Sheets and let N8n validate, clean, and import everything automatically within minutes.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently β€” Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into n8n

Copy the pre-built n8n blueprint and paste it straight into n8n. All modules, filters, and field mappings are already configured β€” you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Google Sheets spreadsheet with attendee data including email, company, and contact details
Salesforce org with API access and lead creation permissions
N8n instance (cloud or self-hosted) with Google Sheets and Salesforce nodes available
Attendee data formatted with consistent column headers across all imports

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
First NameFirstName
Email AddressEmail
6 optional fieldsβ–Έ show
Last NameLastName
Company NameCompany
Phone NumberPhone
Job TitleTitle
Lead SourceLeadSource
Event NotesDescription

Step-by-Step Setup

1

Workflows > + Add Workflow

Create new N8n workflow

Start with a fresh workflow to handle your lead import automation. Name it something descriptive so you can find it later among your workflows.

  1. 1Click '+ Add Workflow' in the N8n dashboard
  2. 2Name the workflow 'Trade Show Lead Import'
  3. 3Click 'Save' to create the empty workflow
βœ“ What you should see: Empty workflow canvas with the workflow name shown in the top left
2

Nodes > Google Sheets > Trigger

Add Google Sheets trigger node

Configure N8n to watch for new data in your attendee spreadsheet. This trigger fires whenever you add or modify rows in the specified sheet.

  1. 1Click the '+' button to add a node
  2. 2Search for 'Google Sheets' and select it
  3. 3Choose 'On Row Added or Updated' as the trigger type
  4. 4Select 'Every time the workflow is called' for testing
βœ“ What you should see: Google Sheets node appears on canvas with configuration panel open
⚠
Common mistake β€” Don't use 'On Row Added' only β€” you'll miss updates to existing attendee data
n8n
+
click +
search apps
Google Sheets
GO
Google Sheets
Add Google Sheets trigger node
Google Sheets
GO
module added
3

Node Settings > Credentials > Google Sheets OAuth2

Connect your Google account

Authenticate N8n to access your Google Sheets. You'll need to grant permissions for N8n to read your spreadsheet data.

  1. 1Click 'Create New Credential' in the Google Sheets node
  2. 2Select 'Google Sheets OAuth2 API'
  3. 3Click 'Connect my account' and complete OAuth flow
  4. 4Select your connected account from the dropdown
βœ“ What you should see: Green checkmark next to credential field showing successful connection
⚠
Common mistake β€” Make sure the Google account owns the spreadsheet β€” shared sheets need explicit permissions
n8n settings
Connection
Choose a connection…Add
click Add
Google Sheets
Log in to authorize
Authorize n8n
popup window
βœ“
Connected
green checkmark
4

Node Settings > Spreadsheet Configuration

Select your attendee spreadsheet

Point N8n to the specific Google Sheet containing your trade show attendee data. Choose the exact sheet tab where you paste the lead information.

  1. 1Click the 'Spreadsheet' dropdown
  2. 2Select your attendee tracking spreadsheet
  3. 3Choose the specific sheet tab (usually 'Sheet1' or 'Attendees')
  4. 4Set 'Range' to include all data columns (e.g., 'A:H')
βœ“ What you should see: Spreadsheet and sheet names populate in the dropdown fields
⚠
Common mistake β€” Leave 'Range' broad enough to capture new columns you might add later
5

Nodes > Salesforce > Create > Lead

Add Salesforce node

Connect the Salesforce node to create leads from your Google Sheets data. This node handles the actual lead creation in your CRM.

  1. 1Click '+' to add a new node after Google Sheets
  2. 2Search for 'Salesforce' and select it
  3. 3Choose 'Create' as the operation
  4. 4Select 'Lead' as the resource type
βœ“ What you should see: Salesforce node appears connected to Google Sheets with operation settings visible
6

Node Settings > Credentials > Salesforce OAuth2

Set up Salesforce credentials

Authenticate with your Salesforce org to enable lead creation. N8n needs API access to write new lead records to your CRM.

  1. 1Click 'Create New Credential' in the Salesforce node
  2. 2Select 'Salesforce OAuth2 API'
  3. 3Enter your Salesforce login URL (usually login.salesforce.com)
  4. 4Complete the OAuth flow with your Salesforce credentials
βœ“ What you should see: Credential shows 'Connected' status with your Salesforce org name
⚠
Common mistake β€” Use login.salesforce.com for production orgs, test.salesforce.com for sandboxes β€” wrong URL causes authentication errors
7

Node Settings > Fields > Add Field

Map Google Sheets columns to Salesforce fields

Configure how attendee data from your spreadsheet translates into Salesforce lead fields. This mapping ensures data lands in the right places in your CRM.

  1. 1Click 'Add Field' for each Salesforce lead field you want to populate
  2. 2Map 'Company' to {{ $json.Company }} from Google Sheets
  3. 3Map 'Email' to {{ $json.Email }} from the spreadsheet
  4. 4Add mappings for FirstName, LastName, Phone, and LeadSource
βœ“ What you should see: Field mapping panel shows Google Sheets column references for each Salesforce field
⚠
Common mistake β€” Salesforce requires either Company OR LastName β€” don't leave both empty or leads will fail to create
Google Sheets fields
Column A
Column B
Email
Status
Notes
available as variables:
1.props.Column A
1.props.Column B
1.props.Email
1.props.Status
1.props.Notes
8

Node Settings > Fields > LeadSource

Set lead source and campaign

Tag imported leads with source tracking so you can measure trade show ROI. Use consistent values that match your existing Salesforce picklist options.

  1. 1Add a 'LeadSource' field mapping
  2. 2Set the value to 'Trade Show' or your specific event name
  3. 3Add 'Campaign' field if you track campaigns
  4. 4Set a static value like 'Q4 2024 Events' for campaign tracking
βœ“ What you should see: LeadSource and Campaign fields show static values rather than column mappings
⚠
Common mistake β€” Check your Salesforce LeadSource picklist values β€” mismatched values cause import failures
9

Nodes > IF > Conditions

Add data validation node

Insert an IF node to check for required data before creating Salesforce leads. This prevents incomplete records from cluttering your CRM.

  1. 1Add an 'IF' node between Google Sheets and Salesforce
  2. 2Set condition to check if Email field is not empty
  3. 3Add a second condition for Company or LastName being present
  4. 4Configure 'true' path to continue to Salesforce
βœ“ What you should see: IF node shows branching paths with conditions for data validation
⚠
Common mistake β€” Place validation before Salesforce node β€” failed API calls count against your execution limits
10

Workflow > Execute Workflow

Test with sample data

Run a test execution to verify your mapping works correctly with real attendee data. Check that leads appear in Salesforce with all expected field values.

  1. 1Click 'Execute Workflow' to test the entire flow
  2. 2Check the execution log for any errors
  3. 3Verify new leads appear in Salesforce with correct data
  4. 4Review field mapping if any data looks incorrect
βœ“ What you should see: Execution shows green checkmarks on all nodes and new leads visible in Salesforce
⚠
Common mistake β€” Test creates real Salesforce records β€” use a sandbox org or delete test leads after verification
n8n
β–Ά Run once
executed
βœ“
Google Sheets
βœ“
Salesforce
Salesforce
πŸ”” notification
received
11

Node Settings > Settings > Continue on Fail

Configure error handling

Set up proper error handling so failed lead imports don't break the entire batch. This ensures partial failures don't lose all your attendee data.

  1. 1Click the Salesforce node settings gear icon
  2. 2Select 'Continue on Fail' in the error handling section
  3. 3Add an 'Edit Fields' node on the error path to log failed records
  4. 4Connect error output to a Google Sheets append for tracking failures
βœ“ What you should see: Error handling paths visible with separate nodes for success and failure cases
⚠
Common mistake β€” Without error handling, one bad email address can stop your entire import batch
12

Workflow > Activate Toggle

Activate workflow for production

Enable the workflow to run automatically when you add new attendee data to your Google Sheet. Set appropriate execution settings for your trade show volume.

  1. 1Click the 'Inactive' toggle at the top of the workflow
  2. 2Verify the webhook URL appears in the Google Sheets trigger
  3. 3Test by adding a new row to your attendee spreadsheet
  4. 4Confirm the new lead appears in Salesforce within 30 seconds
βœ“ What you should see: Workflow status shows 'Active' and webhook URL is displayed in trigger node
⚠
Common mistake β€” Active workflows consume executions on every spreadsheet change β€” consider using manual triggers for large batch imports

Drop this into an n8n Code node.

JavaScript β€” Code Node// Clean phone numbers from booth scans
β–Έ Show code
// Clean phone numbers from booth scans
const phone = $json.Phone || '';
const cleaned = phone.replace(/[^0-9+]/g, '').replace(/^1/, '+1');

... expand to see full code

// Clean phone numbers from booth scans
const phone = $json.Phone || '';
const cleaned = phone.replace(/[^0-9+]/g, '').replace(/^1/, '+1');
return { Phone: cleaned.length >= 10 ? cleaned : null };

Scaling Beyond 300+ attendees per event+ Records

If your volume exceeds 300+ attendees per event records, apply these adjustments.

1

Enable batch processing

Use N8n's 'Split in Batches' node to process 50 attendees at a time instead of individual API calls. This prevents Google Sheets API timeouts and stays within Salesforce rate limits for bulk imports.

2

Add processing delays

Insert 'Wait' nodes between batches to respect Salesforce API limits. A 30-second delay between 50-record batches keeps you under most org's hourly API quotas while processing large events overnight.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use N8n for this if you need custom data validation before importing leads or want to process attendee data in batches without hitting API limits. The JavaScript code nodes let you clean messy trade show data β€” fixing phone number formats, parsing combined name fields, or enriching leads with booth visit timestamps. Skip N8n if you just want simple row-by-row syncing with no data transformation β€” Zapier handles basic imports faster.

Cost

This workflow consumes 1 execution per attendee imported. A typical trade show with 200 leads costs 200 executions. At 4 shows per year (800 executions), you stay within N8n's free tier of 5,000 monthly executions. The starter plan at $20/month covers up to 3,000 executions, handling 15+ trade shows annually. Zapier's starter plan at $20/month only includes 750 tasks β€” you'd need the $50 professional plan for the same volume. N8n saves $30/month at this scale.

Tradeoffs

Zapier wins on setup speed β€” their Google Sheets to Salesforce integration takes 3 minutes versus N8n's 20-minute configuration. Make offers better bulk processing with their array aggregator for handling 500+ attendees at once without timeouts. But N8n's JavaScript nodes let you transform messy booth scan data that other platforms can't handle β€” like parsing 'John Smith, VP Sales, Acme Corp' into separate name, title, and company fields.

Google Sheets API paginates at 100 rows, so importing 300+ attendees requires N8n's 'Split in Batches' node to avoid timeouts. Salesforce enforces a 200 API calls per hour limit on some orgs β€” batch your imports or add wait nodes between requests. Trade show scan data often has encoding issues with special characters in names β€” test with international attendee data to catch Unicode problems before your next event.

Ideas for what to build next

  • β†’
    Add lead scoring based on job title β€” Create a JavaScript node that assigns lead scores based on attendee job titles, company size, or booth interaction notes to prioritize follow-up.
  • β†’
    Send Slack notifications for high-value leads β€” Add a Slack node that alerts sales reps immediately when C-level executives or target company contacts are imported from trade shows.
  • β†’
    Create follow-up email sequences β€” Connect imported leads to email marketing automation that sends personalized follow-up sequences based on which trade show they attended.

Related guides

Was this guide helpful?
← Google Sheets + Salesforce overviewn8n profile β†’