Best Practices
Recommended setup
Use one data flow for Calls, another for Conversations
Calls and Conversations have different structures and update cadences. Keeping them in separate data flows makes it easier to troubleshoot and schedule them independently.
Join Calls with ad platform data
Use Coupler.io's Join transformation to merge CallRail call records with Google Ads or Facebook Ads data on campaign name or UTM parameters. This gives you a true cost-per-call metric without manual spreadsheet work.
Append data from multiple CallRail accounts
If you manage several accounts (e.g., for different clients or locations), add multiple sources to one data flow and use the Append transformation to combine them into a single table.
Data refresh and scheduling
Match refresh frequency to your reporting needs
For daily call volume dashboards, a once-per-day refresh is usually enough. If you're monitoring missed calls or open conversations in near real-time, consider hourly refreshes — but only for the entities that need it.
Set a fixed start date for historical loads
Use the date picker to set a specific start date when first loading data. Once historical data is in your destination, you can narrow the start date for subsequent runs to avoid re-pulling the same records unnecessarily.
Performance optimization
Filter in your destination, not at the source
CallRail's API doesn't support granular filtering — pull all data and apply filters (by source, tag, campaign, or call status) in Google Sheets, Looker Studio, or BigQuery instead.
Use BigQuery for large call volumes
If your account logs thousands of calls per day, Google Sheets will hit row limits quickly. Load to BigQuery and query from Looker Studio for scalable, high-volume reporting.
Common pitfalls
Don't use a restricted user's API key for shared data flows. If the key owner has limited account access, every data flow using that key will silently return incomplete data. Always use an admin-level API key for data flows that need full account visibility.
Do
Use an admin account's API key for full data access
Convert duration (seconds) to minutes in your destination
Use the Aggregate transformation to roll up call counts by campaign or source before loading to a dashboard
Don't
Pull the full historical date range on every scheduled run — it's slow and redundant
Rely on the
keywordsfield without confirming keyword-level tracking is enabledRun simultaneous data flows on the same CallRail account — stagger them to avoid rate limit errors
Last updated
Was this helpful?
