Best Practices

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

triangle-exclamation

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 keywords field without confirming keyword-level tracking is enabled

  • Run simultaneous data flows on the same CallRail account — stagger them to avoid rate limit errors

Last updated

Was this helpful?