# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Use date filters to avoid timeouts</strong></td><td>Import conversations, tickets, and contacts in smaller time windows (e.g., weekly or daily) rather than all at once. This keeps individual imports under the 9-minute API timeout. Append multiple smaller imports to build your full dataset.</td></tr><tr><td><strong>Start with a test run on a single day</strong></td><td>Before scheduling a large import, manually run a single day's worth of data to confirm everything works. This helps you spot filtering issues early.</td></tr><tr><td><strong>Choose the right report for your use case</strong></td><td>Don't pull all reports—focus on what you need. For example, if you only need ticket metrics, use "List of tickets" rather than "List of conversations" plus "List of tickets."</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>Schedule incremental daily or weekly imports</strong></td><td>Instead of one large monthly import, set up daily or weekly imports with a rolling date range (e.g., last 7 days). This keeps your data fresh and avoids timeout risks.</td></tr><tr><td><strong>Use macros for rolling date filters</strong></td><td>Replace fixed dates with macros like `{{today}}`, `{{yesterday}}`, or `{{7daysago}}` so your date filters automatically adjust. This makes scheduling hands-off.</td></tr><tr><td><strong>Stagger imports if you have multiple data flows</strong></td><td>If you're pulling conversations and tickets, schedule them at different times (e.g., conversations at 2 AM, tickets at 2:30 AM) to avoid API overload.</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 early with advanced filters</strong></td><td>Use Intercom's advanced filters (status, team, priority) at the source rather than filtering in your destination spreadsheet. This reduces data transfer and speeds up imports.</td></tr><tr><td><strong>Append or aggregate strategically</strong></td><td>If you're pulling data from multiple teams or time periods, use Coupler.io's Append transformation to combine them in one step, then Aggregate to calculate metrics like total ticket volume or average response time.</td></tr></tbody></table>

## Common pitfalls

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

* Test with a narrow date range first (one day or week)
* Use append mode for incremental imports with non-overlapping date ranges
* Monitor your first few scheduled runs to catch timeout patterns early
* Filter by status or team at the source to reduce data volume
* Space out multiple data flows if running them on a schedule
  {% endcolumn %}

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

* Pull all conversations or tickets from your entire workspace in one import
* Re-run the same date range multiple times in append mode (causes duplicates)
* Run multiple Intercom data flows simultaneously
* Ignore timeout errors—adjust your filters or date ranges immediately
* Use append mode without carefully planning non-overlapping date ranges
  {% endcolumn %}
  {% endcolumns %}

{% hint style="danger" %}
**Timeout is the #1 issue with Intercom imports.** If you hit a timeout, immediately reduce your date range or add advanced filters. Don't just re-run the same import—it will fail again. Start with 1-7 days at a time and scale up only if successful.
{% endhint %}
