# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Pin your board IDs</strong></td><td>Always specify board IDs in the Board IDs parameter unless you genuinely need all boards. Exporting from all boards in large workspaces slows down runs and fills your destination with data you don't need.</td></tr><tr><td><strong>Use a start date for Actions</strong></td><td>The Actions entity grows fast on active boards. Set a start date that matches your reporting window — for weekly reports, set it to 7–14 days ago. This keeps runs fast and destination files manageable.</td></tr><tr><td><strong>Separate entities into focused data flows</strong></td><td>Cards and Actions are high-volume. Run them in their own data flows so a slow Actions export doesn't block your Cards refresh.</td></tr><tr><td><strong>Join Cards with Lists in your destination</strong></td><td>Cards only carry a list ID, not the list name. Use Coupler.io's Join transformation to merge Cards and Lists on <code>idList</code> so your reports show meaningful stage names like "In Review" instead of raw IDs.</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 refresh frequency to board activity</strong></td><td>For active sprint boards, hourly or twice-daily refreshes give you near-real-time visibility. For archived or slower-moving boards, daily is more than enough.</td></tr><tr><td><strong>Append Actions over time</strong></td><td>Use Coupler.io's Append mode for the Actions entity so historical activity accumulates in your destination. This lets you build long-term audit trails and trend reports without re-exporting everything each run.</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>Aggregate card metrics before reporting</strong></td><td>Use Coupler.io's Aggregate transformation to count cards per list, per assignee, or per label before they reach your destination. This is faster to render in dashboards than loading raw card rows and grouping in Looker Studio or Sheets.</td></tr><tr><td><strong>Use AI destinations for instant summaries</strong></td><td>Connect your Cards or Actions export to Claude, ChatGPT, or Gemini to automatically generate sprint summaries, blockers reports, or workload analyses — no manual copy-pasting needed.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Don't export from all boards in a large organization without a start date on Actions. This combination can generate hundreds of thousands of rows and cause your data flow to time out or hit Trello's API rate limits.
{% endhint %}

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

* Specify board IDs when you only need specific boards
* Set a start date for the Actions entity
* Join Cards + Lists to get human-readable stage names
* Use Append mode to build historical action logs
  {% endcolumn %}

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

* Export all boards and all actions with no date filter on first run
* Rely on card position (`pos`) as a sort order in your destination — it's a float value optimized for Trello, not human-readable ranking
* Assume archived cards are excluded — always filter `closed = false` if your report should reflect active work only
  {% endcolumn %}
  {% endcolumns %}
