> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/surveys/google-forms/best-practices.md).

# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Split forms and responses into separate sources</strong></td><td>Add both the Forms and Form responses entities to the same data flow but map them to different destination sheets or tables. This keeps question structure separate from response data and makes both easier to query.</td></tr><tr><td><strong>Use Append to combine responses from multiple forms</strong></td><td>If you run the same survey across different audiences or time periods (each as its own form), use the Append transformation to merge all responses into a single dataset. This is cleaner than maintaining separate sheets per form.</td></tr><tr><td><strong>Include form_id in every export</strong></td><td>When pulling responses from multiple forms into one destination, always keep the form_id column. Without it, you lose track of which response came from which form once the data is combined.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Match your schedule to your response volume</strong></td><td>For active campaigns or time-sensitive feedback forms, hourly syncs make sense. For low-volume internal forms, a daily refresh is usually enough and avoids unnecessary API calls.</td></tr><tr><td><strong>Run a manual sync before sharing dashboards</strong></td><td>Always complete a successful manual run before publishing a Looker Studio report or sharing a Google Sheet. This confirms the data is flowing correctly before others rely on it.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Don't put too many forms in one data flow</strong></td><td>If you're pulling from dozens of forms, split them across multiple data flows. This reduces the chance of hitting Google API rate limits and makes it easier to troubleshoot if one form has an issue.</td></tr><tr><td><strong>Use AI destinations for open-text analysis</strong></td><td>For forms with open-ended questions, route the Form responses entity to ChatGPT, Claude, or Gemini. These destinations can summarize themes, detect sentiment, and highlight patterns far faster than manual review.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Do not delete or re-create a form to "reset" it — this generates a new Form ID and breaks any existing data flows pointing to the old ID. Instead, clear responses from within Google Forms settings.
{% endhint %}

{% columns %}
{% column %}
**Do**

* Copy the Form ID from the URL (the part between `/d/` and the next `/`)
* Enable email collection in form settings before you need respondent identity data
* Use the Join transformation to combine form responses with external data (e.g., CRM records) using email as the key
  {% endcolumn %}

{% column %}
**Don't**

* Paste the full form URL into the Form IDs field — only the ID string is needed
* Assume the respondent\_email field will be populated without checking form settings first
* Edit question text on a live form mid-campaign if consistency in historical exports matters to you
  {% endcolumn %}
  {% endcolumns %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/surveys/google-forms/best-practices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
