> ## Documentation Index
> Fetch the complete documentation index at: https://docs.quivly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrating to Quivly

> How to move from another customer success platform, CRM, or spreadsheet to Quivly. What carries over automatically, what you rebuild, and how to export from common tools.

Migrating to Quivly is not a data dump-and-load. Quivly connects directly to the systems your data already lives in — [Salesforce or HubSpot](/integrations/crm/salesforce), [Stripe](/integrations/billing/stripe), [support](/integrations/support/pylon), [calls](/integrations/call-recordings/fireflies), [Slack](/integrations/communication/slack), and your [warehouse](/integrations/warehouses/overview) — the same sources your old tool was reading from. So most of your data isn't migrated at all; you reconnect the source and it flows in live.

What you *do* migrate is the layer that only existed inside the old tool: your health-score model, playbooks, segments, and any data you kept only there.

## What carries over vs. what you rebuild

| Data                                       | How it gets into Quivly                                                               |
| ------------------------------------------ | ------------------------------------------------------------------------------------- |
| Accounts / customers                       | Sync from your [CRM](/integrations/crm/salesforce) — not exported                     |
| Contacts                                   | Sync from CRM                                                                         |
| Opportunities / renewals                   | Sync from CRM                                                                         |
| Revenue, subscriptions, invoices           | Sync from [Stripe](/integrations/billing/stripe)                                      |
| Support tickets                            | Sync from [support](/integrations/support/pylon)                                      |
| Call transcripts & summaries               | Sync from [call recordings](/integrations/call-recordings/fireflies)                  |
| Product usage                              | [Warehouse, PostHog, or Usage Push API](/integrations/warehouses/overview)            |
| Health score model                         | **Rebuild** in [Health Scores](/health-scores/configuration)                          |
| Playbooks / CTAs / automations             | **Rebuild** as [Agents](/product/agents)                                              |
| Segments                                   | **Recreate** as [custom views](/customer-views/custom-views)                          |
| Success plans, QBR notes, tool-only fields | **Recreate** as [custom objects/fields](/data-models/custom-objects) — backfill below |
| Historical health scores, NPS trends       | Not migrated — Quivly recomputes going forward                                        |

<Note>
  Quivly has no bulk CSV importer for core records, and it never writes back to your source systems. Connecting the integration *is* the import. Data that lives only in your old CS tool is handled in [Backfilling tool-only data](#backfilling-tool-only-data).
</Note>

## The migration playbook

<Steps>
  <Step title="Connect your sources">
    Connect CRM first, then billing, support, calls, Slack, and usage. Each source populates customers and their history automatically. See the [quick start](/quickstart-admin).
  </Step>

  <Step title="Verify customer matching">
    Records from different systems link to one customer profile by email domain and external IDs. Confirm they resolved correctly — see [cross-system linking](/field-mappings/cross-system-linking).
  </Step>

  <Step title="Rebuild your health-score model">
    Translate your old scorecard into Quivly's weighted categories — revenue, usage, engagement, support, market signals. See [health score configuration](/health-scores/configuration). You can [test it](/health-scores/testing-scores) against real customers before going live.
  </Step>

  <Step title="Recreate segments and views">
    Rebuild your books of business and risk segments as [custom views](/customer-views/custom-views) with filters and saved columns.
  </Step>

  <Step title="Rebuild playbooks as agents">
    Each playbook or CTA rule becomes an [agent](/product/agents): a trigger (health change, record update, schedule, Slack) plus steps, with a Review gate before anything sends. See the [template agents](/product/agents#template-agents) for common patterns.
  </Step>

  <Step title="Backfill tool-only data">
    Move any data that lived only in the old tool — see below.
  </Step>
</Steps>

## Coming from another CS platform

Your accounts, contacts, renewals, and tickets already live in your CRM, billing, and support tools — connect those and they sync. From the CS platform itself you only need to carry over what was unique to it: the scoring logic, playbooks, and any custom data. Most platforms export the latter via a CSV/report export or their API.

| Coming from   | Already flows in via integrations                                      | Export from the old tool                              | Rebuild in Quivly                                                                      |
| ------------- | ---------------------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------- |
| **Gainsight** | Accounts, contacts, opportunities (Salesforce/HubSpot); tickets; usage | Scorecards, CTAs, Success Plans, custom MDA fields    | Health model, [agents](/product/agents), [custom objects](/data-models/custom-objects) |
| **ChurnZero** | Accounts, contacts, renewals, tickets, usage                           | ChurnScores, Plays, Journeys, custom attributes       | Health model, agents, custom fields                                                    |
| **Totango**   | Accounts, contacts, usage                                              | Health, SuccessPlays, SuccessBLOCs, custom attributes | Health model, agents, views                                                            |
| **Vitally**   | Accounts, contacts, tickets, usage                                     | Health scores, Playbooks, Traits, Docs/notes          | Health model, agents, custom objects                                                   |
| **Catalyst**  | Accounts, contacts, opportunities, usage                               | Health profiles, Playbooks, custom fields             | Health model, agents, custom fields                                                    |
| **Planhat**   | Accounts, contacts, revenue, tickets, usage                            | Health, Playbooks, custom data models                 | Health model, agents, custom objects                                                   |
| **Custify**   | Accounts, contacts, subscriptions, usage                               | Health, Playbooks, custom dimensions                  | Health model, agents, custom fields                                                    |

The pattern is the same for any tool: **don't re-export what your CRM/billing already owns** — re-express the scoring and automation logic, and backfill only the truly tool-specific data.

## Coming from a CRM or spreadsheets

If today's "system" is just your CRM (or a spreadsheet feeding one): connect the CRM and you're most of the way there. Fields that lived only in a spreadsheet — renewal notes, onboarding stage, a manual risk flag — become [custom fields](/data-models/custom-fields) on the customer, or a [custom object](/data-models/custom-objects) for repeating records like success plans. Get the values in by writing them to your CRM (so they sync) or via the backfill options below.

## Backfilling tool-only data

For data that isn't in any connected source, in order of preference:

1. **Write it to a connected system.** The cleanest path — add the field/value in your CRM and it syncs into Quivly like everything else, and stays current.
2. **Model it as a custom object or field**, then populate it. Good for success plans, onboarding stages, or account-level flags. See [custom objects](/data-models/custom-objects) and [custom fields](/data-models/custom-fields).
3. **Push usage history** via the [Usage Push API](/integrations/product-usage/api-overview) if you're carrying historical product-usage events.
4. **Ask us.** For a large one-time backfill, email [support@quivly.ai](mailto:support@quivly.ai) — [book time with the team](https://cal.com/chandrika) if you'd like a hand planning the move.

## FAQ

<AccordionGroup>
  <Accordion title="Do I need to export my accounts and contacts?">
    No. They sync from your CRM. Exporting and re-importing them would create duplicates that fight the live sync. Connect the CRM instead.
  </Accordion>

  <Accordion title="Can I bulk-import a CSV of customers?">
    There's no CSV importer for core records — Quivly builds its customer model from your connected systems. Data that isn't in any source is handled through [backfilling](#backfilling-tool-only-data): write it to your CRM, or model it as a custom object/field.
  </Accordion>

  <Accordion title="Will my historical health scores come over?">
    No — Quivly computes health from your live data using the model you configure, so scores start fresh and build history from your connect date forward. Underlying history (revenue, usage, calls) still syncs, so trends fill in quickly.
  </Accordion>

  <Accordion title="How long does the move take?">
    Most teams are live in less than a week, mainly gated by initial sync volume and rebuilding the health model and playbooks. See the [implementation FAQ](/faq).
  </Accordion>

  <Accordion title="Can I run Quivly alongside my current tool during the switch?">
    Yes. Quivly's data integrations are read-only, so connecting them changes nothing in your source systems — you can run both in parallel until you're ready to cut over.
  </Accordion>
</AccordionGroup>
