> ## Documentation Index
> Fetch the complete documentation index at: https://boundbot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Sheets import

> Connect Google Sheets to BoundBot so you can import product data from spreadsheets into the product catalog.

export const BrowserWrapper = ({src, alt, title, description, height = '280px', caption, imgStyle = {}, children, imagePadding = '0px'}) => {
  const legacyDocsImagePrefix = '/images/';
  const productionDocsImagePrefix = '/docs/images';
  const rawSrc = typeof src === 'string' ? src : src && (src.src || src.default) || '';
  const imageSrc = rawSrc.startsWith(legacyDocsImagePrefix) ? `${productionDocsImagePrefix}/${rawSrc.slice(legacyDocsImagePrefix.length)}` : rawSrc;
  return <Frame caption={caption || alt || title} width="100%">
      <div style={{
    border: '1px solid #e2e8f0',
    borderRadius: '12px',
    overflow: 'hidden',
    boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
    width: '100%'
  }}>
        <div style={{
    backgroundColor: '#f8fafc',
    padding: '10px 15px',
    borderBottom: '1px solid #e2e8f0',
    display: 'flex',
    gap: '6px'
  }}>
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ff5f56'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ffbd2e'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#27c93f'
  }} />
        </div>
        <div style={{
    overflow: 'hidden',
    background: '#ffffff',
    width: '100%',
    padding: imagePadding
  }}>
          {src ? <img src={imageSrc} alt={alt || ''} data-docs-screenshot style={{
    ...imgStyle,
    width: '100%',
    minWidth: '100%',
    height: 'auto',
    display: 'block',
    borderRadius: '0px'
  }} /> : children ? children : null}
        </div>
      </div>
    </Frame>;
};

Google Sheets integration lets BoundBot pull product data from spreadsheets so non-technical teammates can maintain the catalog without editing CSV files manually.

## What this integration is for

Use Google Sheets import when:

* product data already lives in Google Sheets
* teammates update products in a spreadsheet workflow
* you want a faster import path than manually cleaning CSV exports

## Before you connect Google Sheets

Make sure you have:

* a Google account with access to the source spreadsheet
* a sheet that contains product rows you want to import
* permission to manage team integrations inside BoundBot

## Connect Google Sheets

<Steps>
  <Step title="Open team integrations">
    Go to <a href="https://www.boundbot.com/dashboard/settings/general" target="_blank" rel="noopener noreferrer"><b>Settings</b></a> -> <b>Team settings</b> -> <a href="https://www.boundbot.com/dashboard/settings/integrations" target="_blank" rel="noopener noreferrer"><b>Integrations</b></a>.
  </Step>

  <Step title="Connect Google">
    Find **Google Sheets** and start the Google authorization flow.

    <BrowserWrapper src="../images/google-sheets-card.png" alt="BoundBot Integrations page showing the Google Sheets card and option to start the authorization flow." caption="Start the Google authorization flow from the Integrations page." />
  </Step>

  <Step title="Grant the required access">
    Approve the permissions BoundBot needs to read the spreadsheet you want to import.
  </Step>

  <Step title="Open the products import flow">
    Go to <a href="https://www.boundbot.com/dashboard/knowledge/knowledge-base" target="_blank" rel="noopener noreferrer"><b>Knowledge</b></a> -> <a href="https://www.boundbot.com/dashboard/knowledge/products" target="_blank" rel="noopener noreferrer"><b>Products</b></a> and start a Google Sheets import.
  </Step>
</Steps>

## Import products from a sheet

After connection, BoundBot can use Google Sheets as a product source for:

* standard product rows
* custom headers mapped through AI-assisted import
* catalogs maintained by operations or merchandising teams

## Google Sheets vs CSV import

| Import method | Best for                                              |
| ------------- | ----------------------------------------------------- |
| Google Sheets | Ongoing catalog changes maintained by a team          |
| CSV import    | One-time imports or exports from another platform     |
| AI-mapped CSV | Messy headers or rows that need cleanup during import |

## Related pages

<CardGroup cols={2}>
  <Card title="Products" icon="shopping-bag" href="/guides/products">
    Build and manage the product catalog after the spreadsheet is connected.
  </Card>

  <Card title="Integrations" icon="plug" href="/developers/integrations">
    Compare Google Sheets with the rest of the available integrations.
  </Card>

  <Card title="Team settings" icon="users" href="/guides/team-settings">
    Manage the team-scoped integration before you run imports.
  </Card>

  <Card title="Plans and limits" icon="badge-dollar-sign" href="/reference/plans-and-limits">
    Review product and integration limits before you scale catalog imports.
  </Card>
</CardGroup>

## Common questions

### Do I need perfect column names first?

No. BoundBot can use AI mapping when your column names do not match product fields cleanly.

### When should I use Google Sheets instead of manual products?

Use Sheets when the catalog changes often or another team already owns the product data in a spreadsheet workflow.
