# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Create view-specific data flows</strong></td><td>Don't share your entire Airtable base. Instead, create individual shareable views for each data flow. This gives you granular control over what data is exposed and makes it easier to manage multiple data flows.</td></tr><tr><td><strong>Use a dedicated import sheet</strong></td><td>Keep your imported Airtable data in a separate Google Sheet and reference it from your analysis sheets using formulas. This prevents accidental data loss when the import refreshes and overwrites your sheet.</td></tr><tr><td><strong>Test with a smaller view first</strong></td><td>Before setting up large imports, test with a small filtered view to ensure the connection works and data flows as expected. Once you're confident, you can scale to larger datasets.</td></tr><tr><td><strong>Store passwords securely</strong></td><td>If your Airtable view is password-protected, Coupler.io encrypts the password. Keep it safe, and update it immediately if compromised.</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>Choose refreshes wisely</strong></td><td>Schedule automatic refreshes during off-peak hours to avoid rate limits. Daily or weekly refreshes are usually sufficient unless your data changes minute-by-minute. Manual refreshes are always free and on-demand.</td></tr><tr><td><strong>Run manual tests first</strong></td><td>Before setting up automatic refreshes, run at least one manual test import to confirm the link works and data looks correct. This prevents bad data from being scheduled repeatedly.</td></tr><tr><td><strong>Monitor large imports</strong></td><td>If you have very large Airtable views, run a manual import first to gauge how long it takes. Then schedule automated refreshes at intervals that won't cause overlapping imports.</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>Filter in Airtable, not in destination</strong></td><td>Create separate Airtable views with filters applied instead of importing everything and filtering on the destination side. Smaller imports are faster and more reliable.</td></tr><tr><td><strong>Hide unnecessary columns in Airtable</strong></td><td>Only include columns you actually need in your Airtable view. Hidden columns won't be imported, making the import smaller and faster.</td></tr><tr><td><strong>Split very large bases</strong></td><td>If you have a massive Airtable base, create multiple data flows for different tables or views instead of importing everything at once. This reduces timeout risk and improves performance.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
**Don't put manual edits in your import sheet.** Coupler.io completely overwrites your sheet on every refresh. Any custom columns, formulas, or formatting you add will be lost. Create a separate analysis sheet and use formulas to reference the import sheet instead.
{% endhint %}

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

* Share individual views, not your entire base
* Use separate sheets for imports and analysis
* Test imports with manual runs before automating
* Schedule refreshes during off-peak hours
* Create filtered Airtable views to reduce data volume
* Store passwords securely if using protected views
  {% endcolumn %}

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

* Share your full Airtable base link
* Add custom columns to your import sheet
* Run multiple large data flows simultaneously
* Change your destination's timezone mid-project
* Import fields with #ERROR! values from Airtable
* Leave old data flows running if they're no longer needed
  {% endcolumn %}
  {% endcolumns %}

{% hint style="warning" %}
**Beware of special characters in multi-select fields.** If your data contains the delimiter character you chose (like a comma in a name), values may split unexpectedly. Pick a delimiter that doesn't appear in your actual Airtable data, such as a pipe `|` or semicolon `;`.
{% endhint %}
