# How to Use Google Sheet Data Fetch in ZazzyAgent

Google Sheets doesn't have to be only a place where you store customer information.

ZazzyAgent can also **look up information from a Google Sheet during a conversation** and use the result in the next step.

This is useful when your information changes regularly but doesn't need a full database or custom API.

For example:

> Customer asks for a plumber.

Your ZazzyAgent flow can search your Google Sheet and return the relevant plumber's information.

The current Google Sheet Data Fetch feature supports retrieving spreadsheet data for use in chatbot replies across supported channels.

## What is Google Sheet Data Fetch?

It lets a ZazzyAgent flow search connected spreadsheet data and use the matching information during the conversation.

The basic architecture is:

```text
Customer
   ↓
Input / Selection
   ↓
Google Sheet Data Fetch
   ↓
Matching Row
   ↓
Custom Fields
   ↓
Reply
```

## When should you use it?

Use Google Sheet Data Fetch when the information changes regularly and is easier for your team to maintain in a spreadsheet.

Examples:

*   Service providers
    
*   Locations
    
*   Contact lists
    
*   Staff directories
    
*   Available services
    
*   Simple price tables
    
*   Branch information
    
*   Product information
    

## Example: Service directory

Imagine your Sheet contains:

| Service | Person | Phone |
| --- | --- | --- |
| Plumber | Rahul | +91... |
| Electrician | Amit | +91... |
| Cleaner | Priya | +91... |

A customer says:

> Plumber

ZazzyAgent can search the Sheet for the matching service and retrieve:

**Rahul**

and:

**+91...**

## Before you start

You need:

*   Connected Google account
    
*   Google Sheet
    
*   Clean column headings
    
*   Data you want to search
    
*   Appropriate custom fields for the values you want to use
    

## Prepare your Google Sheet

Keep the data structured.

Example:

| Service | Name | Phone |
| --- | --- | --- |
| Plumber | Rahul | +919... |
| Electrician | Amit | +919... |

Avoid putting several unrelated values into one cell.

## Connect Google Sheets

Connect your Google account through the Google Sheets integration.

Then add the existing Sheet or create a new one.

This step is different from actually configuring Data Fetch.

Your Sheet must already be available to ZazzyAgent.

## Create custom fields

Suppose you want to retrieve:

**Name**

**Phone**

Create appropriate custom fields if they don't already exist.

For example:

> Provider Name

> Provider Phone

The Data Fetch result can then be saved into those fields.

## Create a Data Fetch campaign

Open the Google Sheet Data Fetch configuration.

Create a new campaign.

Give it a useful name.

For example:

> Service Provider Lookup

Avoid:

> Sheet Test

## Select the Google Sheet

Choose the Sheet containing the information you want to search.

Make sure it's the correct Sheet.

Businesses often have several spreadsheets.

## Configure the search

Define what information the workflow should use to find the appropriate row.

For example:

```text
Customer's selection
        ↓
Search Service column
        ↓
Matching row
```

The current Data Fetch workflow can search spreadsheet information based on the value received from the conversation and then make selected row data available through custom fields.

## Map the returned columns

Suppose the matching row contains:

```text
Service
Name
Phone
```

Map:

```text
Name
 ↓
Provider Name

Phone
 ↓
Provider Phone
```

Now your flow can use the returned information.

## Use the data in a reply

Your next message might say:

> We found a plumber for you.

> Rahul

> +91...

The exact variable syntax depends on how the corresponding custom fields are exposed in your message configuration.

## Use it with buttons

A particularly clean pattern is:

> What service do you need?

**Plumber**

**Electrician**

**Cleaner**

The button selection becomes the search value.

The current Google Sheet Data Fetch workflow supports using interactive selections to search the configured Sheet and retrieve matching row data.

## Example flow

```text
Choose Service
      ↓
[Plumber]
[Electrician]
[Cleaner]
      ↓
Google Sheet Data Fetch
      ↓
Find matching row
      ↓
Save returned data
      ↓
Reply
```

## Keep the search column consistent

Suppose your Sheet contains:

```text
Plumber
Electrician
Cleaner
```

Your button text should correspond to those values if the workflow is designed to search using the button text.

If your Sheet says:

> Electrical Services

while the button says:

> Electrician

the lookup may not find the expected row unless your matching configuration accounts for the difference.

## What if there are duplicate matches?

Suppose your Sheet contains:

| Service | Name |
| --- | --- |
| Plumber | Rahul |
| Plumber | Amit |

You need to decide how your workflow should handle multiple matches.

Don't assume a spreadsheet lookup is automatically the same as a database query.

Structure your data around the result you actually want.

## Keep Sheets clean

Avoid:

*   Blank header rows
    
*   Random columns
    
*   Inconsistent spellings
    
*   Duplicate entries
    
*   Mixed data types
    

The cleaner the Sheet, the easier the automation is to maintain.

## Update the Sheet without rebuilding the flow

One advantage of this setup is that your team can update the source data in Google Sheets.

For example:

> Rahul changes his phone number.

Update the spreadsheet.

The lookup can use the updated information without you rewriting the entire chatbot flow.

This is one reason Data Fetch is useful for operational information that changes regularly.

## Data Fetch vs sending data to Google Sheets

These are opposite directions.

### Data Fetch

Google Sheet → ZazzyAgent.

### User Input to Sheet

ZazzyAgent → Google Sheet.

Don't confuse the two.

## Data Fetch vs HTTP API

Use:

**Google Sheet Data Fetch**

when your source is a spreadsheet.

Use:

**HTTP API**

when your source is an external application/API.

## Example: Branch locator

Sheet:

| City | Branch | Phone |
| --- | --- | --- |
| Ahmedabad | Branch A | +91... |
| Mumbai | Branch B | +91... |

Customer:

> Ahmedabad

The flow searches the Sheet and returns the relevant branch information.

## Example: Service provider

Customer:

> Electrician

The flow finds the matching provider and returns the information.

## Example: Internal directory

Customer:

> Sales

The Sheet contains your sales contact.

The automation can retrieve and present it.

## What if no match is found?

Plan for it.

For example:

> I couldn't find a matching service. Please choose another option or contact our team.

A lookup should have a fallback path.

## Test these cases

Test:

**Valid match**

**No match**

**Different capitalization**

**Extra spaces**

**Duplicate values**

**Empty result**

## Common problems

### Nothing is returned

Check the search value and Sheet data.

### Wrong row is returned

Check for duplicate matches.

### Returned fields are empty

Check the mapping from Sheet columns to custom fields.

### Data is outdated

Update the Sheet.

### Flow works manually but not from the button

Check the button text against the Sheet search value.

## The architecture

```text
Google Sheet
     ↓
Data Fetch Campaign
     ↓
Search
     ↓
Matching Row
     ↓
Custom Fields
     ↓
ZazzyAgent Reply
```

Google Sheet Data Fetch is essentially a simple way to turn a spreadsheet into a **live lookup table inside your chatbot conversations**.
