# Import new leads from Google Sheets

> Connect a Google Sheet, choose which rows and offices to import, and manage recurring lead imports.

Language: en-US. Product guide: https://agencymesh.app/help/leads-sync/.

Last reviewed October 1, 2026 by AgencyMesh Product Support · Checked against release 2026.10

Use [Sync Leads](https://app.agencymesh.app/ill/sync-leads) to import new leads from a Google Sheet on a schedule. Requires Administrator access and an assigned active office. Imports add leads; later sheet edits do not overwrite saved details, Notes, office, or status.

<span id="leads-sync-connect"></span>

## Connect a lead spreadsheet

1. Copy **Spreadsheet sharing email** with **Copy sharing email**. In Google Sheets, share the spreadsheet with that address as **Viewer**.
2. Click **Add lead source**. Enter **Source name** and **Google spreadsheet link**, then click **Read spreadsheet**.
3. Choose **Spreadsheet tab** and **Header row** (the row containing column names), then **Check for new leads**, **First sync**, and **Assign new leads to**. **Default lead type** supplies missing types; **Default source label** supplies a missing lead source. Click **Match columns**.
4. Match the field dropdowns to your spreadsheet columns. Map a phone or **Email**, and a **Lead type** unless a default supplies it. Names and **Notes** are optional. Use **View spreadsheet column samples** to identify a column; choose **ID** as described below, then click **Preview imports**.
5. Review **New leads**, **Duplicates skipped**, **Existing rows excluded**, and **Invalid rows**, including each previewed destination office. Click **Enable lead source**. A sync is queued; imported leads appear on the next [Leads Report](https://app.agencymesh.app/ill/illSearch) search or Dashboard refresh.

> **Refresh a changed sheet:** If the sheet changes after the preview, select **Columns**, then **Preview imports** again before enabling. The preview shows the first **25 rows**; its totals cover the scanned rows.

<span id="leads-sync-first-sync"></span>

## Choose the first import and schedule

**First sync** becomes read-only when editing a saved source. To connect another spreadsheet tab, add a separate source.

| Item | Guidance |
| --- | --- |
| Import existing rows and future leads | Imports eligible rows already in the sheet, then new rows on later syncs. |
| Future leads only | Excludes identities present when you enable the source. Only new identities added afterward can import. Fix missing or invalid identities and unavailable offices before enabling. |
| Check for new leads | Choose Every 5, 10, 15, 30, or 60 minutes. Use Sync now for an extra run; it queues work rather than completing the import immediately. |

<span id="leads-sync-office-assignment"></span>

## Choose where new leads go

Set **Assign new leads to** before **Match columns**. Available destinations are the source owner’s assigned active offices; the preview shows each row’s office. Existing imported leads keep their office.

| Item | Guidance |
| --- | --- |
| Single office | Choose Office. Every new lead goes there. |
| Office column in spreadsheet | Choose Office column. Each row must name an authorized office; case and extra spaces are ignored. Blank, unknown, or ambiguous names need correction and do not fall back to another office. |
| Split between selected offices | Check at least two Selected offices. New leads are distributed among that pool. A repeated identity keeps the same assignment while the pool stays the same. |
| Random across all offices | Uses the owner’s current assigned active offices except SHARED. No office selection is needed. Assignment stays stable for a repeated identity while that office pool stays the same. |

> **Change the spreadsheet columns:** Changing **Spreadsheet tab** or **Header row** clears the **Office column** choice. Select it again before **Match columns**. SHARED can be selected in the other assignment modes.

<span id="leads-sync-identity"></span>

## Keep repeated submissions from creating extra leads

A confirmed duplicate has the same name and full address plus a matching phone or email within the source’s destination office pool. Leads without names must have the same contact values and address. Different names or addresses can import separately even when contact details match.

**Duplicates skipped** creates no extra lead. **Already processed** means that identity was previously handled or excluded. Changing an ID is not a way to update an existing lead.

**Full name** usually splits at the first word; a “Last, First” value uses its comma-separated parts. Separately mapped **First name** and **Last name** override those parts. **Notes** supports up to **2,000 characters** and imports only with the new lead.

| Item | Guidance |
| --- | --- |
| ID left blank | Uses the matched name, contact, and address values together as the row’s identity. Sorting or moving a row does not change it. Changing those values can make the row new; Notes, Lead type, and Lead source do not affect this identity. |
| ID mapped to a column | Use a stable ID for each distinct request. Repeated rows with the same ID are processed once; an invalid copy does not block a valid copy. The saved ID choice is locked when editing the source. |

<span id="leads-sync-manage"></span>

## Run, pause, or edit a source

Open the source’s **Manage** icon or its **More actions** menu. **Last synced** is the last successful run, even if a later attempt fails. **Pending** and **Syncing** mean the work is unfinished. Use **Refresh** to update results; **Manage > History** shows checked, imported, and skipped counts.

| Item | Guidance |
| --- | --- |
| Sync now | Queues a run for an enabled source. |
| Pause / Resume | Stops or restarts that source’s scheduled imports. Resume also queues a run. |
| Disconnect / Reconnect | Disconnect stops imports and keeps imported leads and history. Reconnect resumes the same source; it does not erase its prior imports. |
| Edit mapping / preview | Change settings or column matches, click Preview imports, then Save mapping and enable sync. Saving makes you the source’s owner; your Administrator role and office access govern later imports. |

<span id="leads-sync-recovery"></span>

## Fix a source or rejected row

Use a native Google Sheet; convert Excel files in Drive first. Each selected tab supports up to **2,000 data rows**, **100 columns**, and a **2 MB** response. Oversized sheets fail with an error; split them into smaller sources.

| Item | Guidance |
| --- | --- |
| Rows needing attention | Open Manage, correct the listed rows in Google Sheets, then click Sync now. Each row needs a usable phone or email, a type from its column or default, an identity, and an authorized office. |
| Mapping changed | Open Edit mapping / preview, match the current headers, preview, then Save mapping and enable sync. |
| Access needed / Tab unavailable | Restore Viewer sharing or the selected tab. If the owner lost Administrator or office access, a permitted Administrator must preview and save the mapping. |
| Sync failed | Read the source’s error. Temporary connection failures retry automatically; use Manage > History for the failed attempt. |
| Add lead source disabled | Google Sheets access must be configured and you need an assigned active office. Ask your Administrator to resolve the message shown on the page. |

## Related guides

- [Add and follow up with leads](https://agencymesh.app/help/lead-management.md)
- [Leads, quotes, and AMS follow-up](https://agencymesh.app/help/leads-and-quotes.md)
- [Use the Dashboard](https://agencymesh.app/help/dashboard.md)
- [Roles and permissions reference](https://agencymesh.app/help/roles-and-permissions.md)
