# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Start with simple report types</strong></td><td>Begin with "Page: lifetime overview" or "Page: cumulative posts performance" before moving to time-based reports. These don't require date ranges and are less prone to issues.</td></tr><tr><td><strong>Use separate flows for different report types</strong></td><td>Create one data flow per report type rather than trying to combine them. This makes troubleshooting easier and keeps your destination cleaner. You can combine them later using Append transformations.</td></tr><tr><td><strong>Test with data preview first</strong></td><td>Always check the data preview before running the full flow. This shows you exactly what will be exported and catches missing-data issues early.</td></tr><tr><td><strong>Append historical snapshots</strong></td><td>For time-series analysis, set your flow to append rather than replace. This builds a historical record over time so you can track trends.</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 daily for performance insights</strong></td><td>"Page: performance insights" and "Page: follower gains trend" change daily. Schedule these flows to run once per day, preferably outside 9 AM–5 PM (avoid peak API usage).</td></tr><tr><td><strong>Run weekly for demographic reports</strong></td><td>Demographic data (follower/audience demographics) changes slowly. Weekly or bi-weekly runs are sufficient and reduce unnecessary API calls.</td></tr><tr><td><strong>Use lifetime snapshot for reference</strong></td><td>Run "Page: lifetime overview" once per week or month as a reference point. Changes slowly and useful for high-level health checks.</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>Limit date ranges for large datasets</strong></td><td>If pulling 1+ years of post or performance data, split it into quarters using date ranges. This prevents timeouts and keeps exports manageable.</td></tr><tr><td><strong>Choose one demographic dimension per flow</strong></td><td>For demographic reports, select one breakdown dimension per flow (e.g., geography OR job title, not both). This speeds up the API call and avoids data explosion.</td></tr></tbody></table>

## Common pitfalls

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

* Test manually before scheduling
* Use separate flows for different report types
* Check the data preview before running
* Append data to build historical records
* Schedule during off-peak hours
* Verify your LinkedIn permissions before troubleshooting
  {% endcolumn %}

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

* Don't run the same flow multiple times in quick succession
* Don't try to combine multiple report types in one flow
* Don't ignore null values in the preview — they indicate missing data
* Don't export years of post data in a single run
* Don't change your LinkedIn role without re-authorizing Coupler.io
* Don't assume the exported data matches LinkedIn's real-time dashboard exactly (there's always a slight lag)
  {% endcolumn %}
  {% endcolumns %}
