Using Tray to manage and update product usage data in your CRM

If you want your sales team to stop flying blind, you need good product usage data in your CRM. But getting that info in there, cleanly and reliably, is a pain. This is for folks who are tired of spreadsheet imports, clunky Zapier hacks, or “we’ll do it next quarter” promises from engineering. Here’s how to use Tray to pipe product usage data into your CRM—and what’s actually worth doing versus what you can skip.

Why bother syncing product usage data to your CRM?

Before you sink time into this, let’s be clear: not every business needs product usage data in their CRM. If your sales or CS teams never look at it, or if your product is simple, don’t overcomplicate things. But if you want to:

  • Help reps see which accounts are slipping before renewal time
  • Trigger outreach when usage drops
  • Spot upsell opportunities when someone hits a usage limit
  • Give leadership better reporting (and fewer “what’s going on with X?” meetings)

…then this is worth doing.

What is Tray, really?

Tray isn’t magic. It’s a workflow automation platform that connects cloud apps and moves data around. It’s more flexible (and more complex) than tools like Zapier, but it’s not a “set it and forget it” thing. You’ll have to learn its quirks, but it can handle bigger jobs—like syncing data between your product database and Salesforce or HubSpot—pretty well.

Step 1: Map out what you actually need

Don’t start building yet. Tray gives you a blank canvas, which means you can waste hours automating things nobody needs.

  • Which usage data matters? Daily logins? API calls? Feature adoption? List only what people will use.
  • Where does the data live? Is it in your data warehouse, app database, or a third-party analytics tool?
  • Which CRM fields should be updated? Be specific. Is it a custom object? A field on the Account, Contact, or Opportunity?

Pro tip: Limit yourself to 3-5 fields or usage metrics for the first pass. You can always add more later, but cleaning up bad data is a pain.

Step 2: Get access to your product usage data

This is the step where most projects die. Tray can connect to a lot of sources—databases (like Postgres), warehouses (Snowflake, BigQuery), or APIs (Mixpanel, Segment, etc.). But you’ll need:

  • Credentials: API keys, read-only DB user, or service account.
  • Documentation: What tables/fields/objects actually contain the data you want?
  • Someone technical: Don’t wing production database queries if you’re not comfortable.

What works: Using a dedicated analytics warehouse as the source. It’s usually safer and less likely to change under your feet.

What to skip: Direct connections to your production app DB unless you really know what you’re doing. Fragile and risky.

Step 3: Connect Tray to your data source and your CRM

Once you’ve got your data source figured out, create a new workflow in Tray:

  1. Add a trigger: Usually a scheduled trigger (e.g., run every night). Don’t bother with real-time unless you truly need it.
  2. Connect to your data source: Use the Tray connector for your warehouse, DB, or API. Test your connection.
  3. Fetch the data: Write the SQL or configure the API call to pull just what you need. Keep it small at first.

Then, add the CRM step:

  1. Connect to your CRM: Tray has connectors for Salesforce, HubSpot, and others. Again, use a non-admin test account first.
  2. Map fields: Set up the mapping from your usage data fields to the right CRM fields.

Pro tip: Add a filter step before updating your CRM. Only update records if something actually changed. This avoids blowing up your API limits or filling the audit log with noise.

Step 4: Transform and clean your data

Usage data is almost never in the right shape for your CRM. You’ll probably need to:

  • Change date/time formats
  • Convert user IDs to emails or account IDs
  • Aggregate (e.g., sum logins for the week)

Tray’s visual editor lets you do these things, but it can get fiddly. Test with small batches of data and watch out for:

  • Bad data: Nulls, blanks, or garbage values will break your workflow.
  • Mismatched IDs: Make sure you know how to match product users to CRM records (emails, external IDs, etc.).

What works: Building in “dead letter” logic—a branch that logs or emails you when a row can’t be matched, instead of failing silently.

What doesn’t: Trying to do heavy-duty data cleaning in Tray. If your data is a mess, clean it upstream first.

Step 5: Update records (carefully) in the CRM

Here’s where you can get yourself in trouble. Bulk-updating CRM records can easily:

  • Overwrite fields sales reps are updating manually
  • Trigger automations you forgot about (e.g., “last updated” workflows)
  • Hit API rate limits and lock you out

To avoid headaches:

  • Test with a small set of records first (ideally in a sandbox environment).
  • Use Tray’s “find and update” pattern—find the record, check if the value is different, then update only if needed.
  • Don’t overwrite fields you don’t own. If sales uses “Notes,” don’t push usage data there.

A word on deduplication: Matching up product users to CRM accounts is almost always harder than you think. If your app allows the same email for multiple accounts, or people sign up with personal emails, expect edge cases.

Step 6: Notify the right people for errors or edge cases

Don’t assume everything will work perfectly. Build in basic alerting:

  • Send yourself (or a Slack channel) a message if more than X records fail to update.
  • Log errors somewhere persistent (Google Sheet, S3, etc.) for review.
  • Optionally, write a “dead letter” queue for records that can’t be matched—don’t drop them silently.

You’ll thank yourself later when the inevitable “Why isn’t usage data showing up for this account?” email hits.

Step 7: Monitor, iterate, and improve

Once it’s running, resist the urge to forget about it. Instead:

  • Spot-check data in your CRM every week at first
  • Review error logs and fix mapping or data issues as they come up
  • Ask your users (sales, CS, leadership) if the data’s actually helpful—or just noise

What works: Shipping a basic version, getting feedback, and layering on more fields or automations later.

What doesn’t: Trying to automate every possible usage metric or edge case on day one.

A few things to ignore (for now)

  • Real-time updates: Most teams don’t need usage data in the CRM within seconds. Nightly or hourly is plenty.
  • Fancy visualizations in the CRM: Your CRM’s reporting is probably not up to the job—keep the heavy analysis in your BI tool.
  • Pushing every field: More data isn’t always better. Only sync what’s actionable.

Summary: Keep it simple, then iterate

Connecting product usage data to your CRM with Tray isn’t rocket science, but it’s rarely as plug-and-play as the sales pitch implies. Start with just a few metrics, get the plumbing working, and watch for data quality issues. If you keep your workflows simple and build in basic error handling, you’ll save yourself a ton of pain down the road. Don’t try to solve every edge case on day one—just get good data flowing and improve from there.