# 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 Organization devices</strong></td><td>This entity gives you the most actionable snapshot of your infrastructure. Use it as the foundation for your first report, then layer in networks and admins as needed.</td></tr><tr><td><strong>Use a read-only API key</strong></td><td>Generate a dedicated API key with read-only access specifically for Coupler.io. This limits exposure if the key is ever compromised and makes it easy to revoke without affecting other integrations.</td></tr><tr><td><strong>Join devices with networks</strong></td><td>The Organization devices entity contains a network_id field. Use Coupler.io's Join transformation to enrich it with network names and types from Organization networks — much more useful for reporting than raw IDs.</td></tr><tr><td><strong>Append across multiple organizations</strong></td><td>If you manage more than one Meraki organization, add multiple sources in a single data flow and use Append to build a unified device or admin inventory across all orgs.</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>Sync API request logs daily</strong></td><td>Meraki has limited log retention for API requests. A daily refresh ensures you capture logs before they age out and disappear from the API response window.</td></tr><tr><td><strong>Sync device status hourly for uptime monitoring</strong></td><td>Device online/offline status is a point-in-time snapshot. If uptime tracking matters, schedule the Organization devices sync to run every hour so you catch outages before they go unnoticed.</td></tr><tr><td><strong>Sync admin and SAML data weekly</strong></td><td>Admin accounts and SAML configurations change infrequently. A weekly sync is usually enough for compliance reporting without putting unnecessary load on the Meraki API.</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>Set a tight start date for API request logs</strong></td><td>The Organization API requests entity can return enormous volumes of data if the start date is set too far back. Start with a 7–30 day window and expand only if you need historical analysis.</td></tr><tr><td><strong>Split large orgs into separate data flows</strong></td><td>If you have organizations with thousands of devices, consider putting each org's entities in its own data flow. This avoids hitting Meraki's 5 requests/second rate limit mid-sync and makes failures easier to debug.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
**Don't use your personal admin API key in production.** If that account is ever removed from the organization, all syncs will immediately break. Always use a dedicated service account or a shared admin key.
{% endhint %}

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

* Enable API access at the org level before setting up your data flow
* Use a dedicated read-only API key for Coupler.io
* Join devices and networks by `network_id` for richer reports
* Set a specific start date to limit data volume on first sync
  {% endcolumn %}

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

* Use your personal Meraki admin key for automated syncs
* Set the start date years back on the API requests entity
* Expect device status to reflect real-time changes between syncs
* Assume a single API key has access to all orgs if you manage multiple
  {% endcolumn %}
  {% endcolumns %}
