# 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 an admin User ID for audit entities</strong></td><td>Admin logs, Events, and enterprise-wide collaborations require an admin-level user context. Set your User ID to a Box co-admin or admin account to ensure full data visibility.</td></tr><tr><td><strong>Split entities into separate data flows</strong></td><td>Each Box entity has different data volume and refresh needs. Running Files and Admin logs in the same data flow can cause slowdowns. Give high-volume entities their own flow.</td></tr><tr><td><strong>Join Users with collaboration data</strong></td><td>Use Coupler.io's Join transformation to combine the Users entity with File collaborations or Folder collaborations. This lets you see permission reports with real names and email addresses instead of raw user 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>Sync Trashed items frequently</strong></td><td>Box permanently purges trash after a set retention period. If you need a record of deletions for compliance, schedule this entity to sync at least daily so nothing is missed before purge.</td></tr><tr><td><strong>Set a higher refresh cadence for Sign requests</strong></td><td>Signing status changes quickly — a request can go from pending to signed or declined within hours. Refresh this entity every few hours if you're tracking active signing workflows.</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>Use Aggregate for storage reporting</strong></td><td>When pulling the Users entity to report on storage usage, use Coupler.io's Aggregate transformation to sum space_used across departments or roles rather than exporting raw rows.</td></tr><tr><td><strong>Append Admin logs over time</strong></td><td>Admin logs grow continuously. Use the Append mode in your data flow destination to accumulate historical records rather than overwriting them on each sync — this gives you a full audit trail without manual stitching.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Never use a personal user's credentials as the User ID for enterprise-wide syncs. Personal accounts are scoped to their own files only, and syncs will silently return incomplete data without any error message.
{% endhint %}

{% columns %}
{% column %}

#### Do

* Use a dedicated service account as your User ID for production data flows
* Enable only the Box app scopes you actually need for your entities
* Test with Recent items or Collections first to verify auth is working before pulling large entities
* Store Box credentials in Coupler.io's credential manager rather than re-entering them per flow
  {% endcolumn %}

{% column %}

#### Don't

* Use a personal admin's login credentials for automated syncs — use a service account instead
* Pull Files and Admin logs in the same data flow if you have a large Box enterprise
* Assume empty results mean no data exists — check User ID scope and app permissions first
* Overwrite destination data on every sync for audit-sensitive entities like Admin logs
  {% endcolumn %}
  {% endcolumns %}
