Best Practices
Recommended setup
Join Reports and Emails in one data flow
Add both the Emails and Reports entities to the same data flow and use Coupler.io's Join transformation on campaign ID. This gives you a single table with subject lines, send dates, and engagement metrics — far more useful than two separate sheets.
Use Aggregate to monitor list health
Pull the Contacts entity and apply an Aggregate transformation to count contacts by subscription status (active, unsubscribed, bounced). This gives you a quick health check on your audience without manual counting.
Append data from multiple accounts
If your organization uses more than one Campayn account, add multiple sources in the same data flow and use Append to combine them into a unified dataset for cross-account reporting.
Data refresh and scheduling
Match refresh frequency to send cadence
If you send campaigns weekly, a daily refresh is more than enough. If you send daily, consider a refresh every few hours. Refreshing more often than your send frequency just pulls duplicate data.
Refresh Reports shortly after sends
Open and click data accumulates in the 24–48 hours after a send. Schedule your Reports refresh to run a day or two after your typical send time to capture the bulk of engagement activity.
Performance optimization
Pull only the entities you need
Avoid pulling all five entities into a single data flow if you only need reports. Separate data flows for separate purposes keep runs faster and make troubleshooting easier.
Use AI destinations for quick analysis
Send your Reports data directly to ChatGPT, Claude, or Gemini to get instant narrative summaries of campaign performance — useful for weekly email briefs without building a full dashboard.
Common pitfalls
Do not share or expose your Campayn API key in public documents, shared spreadsheets, or version-controlled code. Anyone with your API key has full read access to your account data. Regenerate it immediately if it's ever compromised.
Do
Generate your API key from an admin account to ensure full data access
Join Reports with Emails so your metrics always have context (subject line, send date)
Run a manual data flow first to confirm data looks correct before scheduling
Don't
Use a restricted or read-limited user's API key — it may silently return partial data
Expect Reports to contain per-recipient data — it's campaign-level only
Pull Contacts and Lists separately and manually try to reconcile counts — use the Join transformation instead
Last updated
Was this helpful?
