Skip to content

Automation  ·  Customer success

How to build integration adoption tracking

Everyone agrees customers who integrate stay longer, and nobody can show it, because nobody can say which customers have an integration running today. How to track adoption per customer, the prompts that build it, and how to put the answer where account teams look.

Built with Tray Headless

  1. System Customer instances
  2. Step Turned on and running?
  3. Step Join to the account
  4. Step Compare retention
  5. System Salesforce
Also Snowflake

Every customer's instances are counted daily, active or not, joined to their account, and written to the CRM and the warehouse.

The short answer

What is integration adoption tracking?

Integration adoption tracking has four parts: a daily count of every customer's integrations, split into set up, turned on, and actually running (a successful run in the last week); each one joined to the customer's account using the same id your product uses; the result written to the CRM so account teams see it on the account; and a regular comparison of retention and expansion between customers who integrate and customers who don't. The part most teams get wrong is counting set-up integrations as adopted. An integration that was turned on in March and has failed since April is a risk, and it is counted as a win.

Stage 7 of 7: Track adoption and retention. Part of Embedded integration, end to end : every stage, the systems it runs on and the guide that builds it.

What matters here

  • Count running, not set up. An integration that stopped working is a risk on the account, not adoption.
  • Join by your own customer id. Matching by company name breaks on the first rename.
  • Put it on the account in the CRM. Account teams won't open another dashboard.
  • Compare retention for customers who integrate and customers who don't, every quarter, from your own data.
  • Flag a running integration that stops before renewal. It is one of the clearest early signs of a customer leaving.

Who this is for

You run product, partnerships or customer success at a software company. You believe customers with integrations stay longer, and you can't show which customers have one running.

How it works in practice

From customers' instances to a number account teams use.

  1. 1

    Every customer's instances are read daily

    Which integration, when it was set up, whether it is turned on, and when it last ran successfully.

  2. 2

    Each is classed

    Set up, turned on, or running: a successful run in the last seven days.

  3. 3

    Each is joined to the customer's account

    By your own customer id, which is the id the integration user was created with.

  4. 4

    The CRM account is updated

    Integrations running, integrations stopped, and the date each last ran.

  5. 5

    The warehouse keeps the history

    So retention and expansion can be compared for customers who integrate and customers who don't.

  6. 6

    A stopped integration before renewal is flagged

    To the account owner, with the integration and the date it last ran.

What adoption tracking is made of

Four parts. The first is where most adoption numbers go wrong.

Running, not set up

Three states per integration per customer, with running defined as a successful run in the last seven days.

One customer id

The same id in your product, in Tray and in the CRM, set when the customer's integration user is created.

Numbers on the account

Written to the CRM account record, where account teams already look, rather than a separate report.

A retention comparison

Every quarter, from your own history: renewal and expansion rates for customers with a running integration against those without.

The Tray Headless prompts

Paste these into Claude Code or Codex with the Tray Headless plugin installed. Each stage runs on its own. The systems named in them are the worked example rather than a requirement, and every prompt says so.

Once per project, run /tray-workflows:set-workspace to pick the workspace these build in. Point it at a sandbox first.

  1. 1

    Read every customer's integrations

    Before counting, see what the records hold.

    Headless skills build-workflow

    Use build-workflow. The systems in play are Tray Embedded's solution
    instances, Salesforce and Snowflake, or whatever we run in those
    seats.
    
    List every solution instance: which solution, which end user, when
    created, whether it is turned on, and when it last ran successfully.
    Show me the external user id on a few, so we can check it is our own
    customer id.
    
    If some customers' integration users were created with an email
    instead of our customer id, list them. They need fixing before any of
    this is trustworthy.
  2. 2

    Class each one: set up, on, or running

    An integration that stopped is a risk, not adoption.

    For every instance, class it:
    
      Set up: created, never turned on
      On: turned on, no successful run in the last seven days
      Running: a successful run in the last seven days
    
    For scheduled integrations that run less often than weekly, use their
    own schedule plus a day as the window. Keep the date of the last
    successful run on every record.
  3. 3

    Write it to the account

    Account teams won't open another dashboard.

    Headless skills build-workflow tray-gotchas

    Use build-workflow and tray-gotchas. Once a day, update each
    Salesforce account with: integrations running, integrations stopped,
    the names of each, and the date each last ran.
    
    Write only when something changed, so the account history shows real
    changes rather than a daily touch.
    
    Land every daily snapshot in Snowflake as well, one row per customer
    per integration per day.
  4. 4

    Flag stopped integrations before renewal

    One of the clearest early signs of a customer leaving.

    When an integration moves from running to on, and the account renews
    in the next two quarters, tell the account owner in Slack: which
    integration, when it last ran, and the most likely reason from the
    last failure.
    
    Every quarter, compare renewal and expansion rates for customers with
    at least one running integration against customers with none, and
    post the result to the product channel.

    Run the comparison on your own customers. A figure from your own data is the one your board will believe.

What it connects to

The instances say what is running. The CRM is where it gets used.

Salesforce

Show integrations running and stopped on each account, and read renewal dates to flag risk.

Reads and writes

Snowflake

Keep the daily history, so retention for customers who integrate can be compared with those who don't.

Writes

Slack

Tell the account owner when a running integration stops ahead of renewal.

Writes

Gainsight

Where customer health is scored there, add integrations running as one of the signals.

Writes

Same build, other stacks

The design does not change if you run something else in one of these seats. The same prompts build it against Microsoft Dynamics 365, Google BigQuery, Microsoft Teams, HubSpot, Databricks or Google Chat.

Connections in this build

Field mapping, templates and common problems for each pairing: Salesforce + Slack, Gainsight + Salesforce and Gainsight + Slack.

Named systems are the ones most teams run, not the only ones that work. Each is an authentication in your Tray workspace, referenced by name, so the workflow never holds a credential. Where we have a connector page, the name links to it.

Running it in production

This turns a belief about retention into a number you can check.

It runs daily

Counts are current every morning, so a stopped integration is seen within a day.

Running means running

A successful run in the last week, never just a record that it was set up.

One id across systems

Your customer id joins the instance to the account, so a rename or merge doesn't break the count.

The history is kept

Daily snapshots in the warehouse, so the retention comparison can be rerun on any period.

Questions people ask

What counts as an adopted integration?

One that is running: a successful run in the last week, or within its own schedule. Set up and turned on are steps toward it.

Do customers who integrate really churn less?

Podium found customers who integrate are 60% less likely to churn and 70% more likely to be classified as active. Track your own, because your board will want your number.

Where should adoption numbers live?

On the account in the CRM, where account teams already look, with the history in the warehouse for analysis.

How is this different from product usage tracking?

Product usage covers everything customers do in your product. This counts one thing, integrations running, because it is one of the clearest signals of whether a customer stays.

Last reviewed October 2026.