Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.the-meridian.ai/llms.txt

Use this file to discover all available pages before exploring further.

Meridian CRM automatically builds a profile for every merchant who installs your Shopify app. Data flows in from the Shopify Partner API — no manual imports, no webhooks to configure. The moment a merchant installs your app, their record appears in your CRM with their shop details, subscription status, and full charge history already populated.

How data flows in

Meridian connects to the Shopify Partner API using your Partner credentials. Every app event — installs, uninstalls, and charges — is fetched and mapped to a customer record in your CRM. The underlying API response follows the PartnerAppEventsResponse shape: a paginated list of PartnerAppEventNode objects, each carrying the event type, occurredAt timestamp, and the associated shop.
Meridian polls the Shopify Partner API on your behalf. You do not need to register webhooks or maintain a separate integration to keep CRM data current.

Customer profiles

Each merchant in your CRM is represented as a CustomerFromApi record. Open a profile to see the full picture of that merchant’s relationship with your app.

Profile fields

FieldTypeDescription
shop.namestringThe merchant’s shop display name
shop.myshopifyDomainstringThe canonical .myshopify.com domain
subscriptionStatus"installed" | "uninstalled"Whether the merchant currently has your app installed
planNamestringThe active subscription plan name
totalRevenuenumberLifetime revenue from this merchant
monthlyRevenuenumberRevenue attributed to the current month
activeDaysnumberNumber of days the app has been installed
firstInstallDatestringISO 8601 date of the first install event
lastPaymentDatestringISO 8601 date of the most recent charge
totalChargesnumberTotal number of charge events recorded
chargeHistoryCustomerChargeEvent[]Full list of charge events (see below)
eventSummaryAppEventSummaryAggregated counts of installs, uninstalls, and charges

Charge history

Every billing event is recorded as a CustomerChargeEvent:
type CustomerChargeEvent = {
  date: string      // ISO 8601 timestamp
  amount: number    // Charge amount
  currency: string  // e.g. "USD"
  type: string      // Event type string
}
Charge events are sourced from the Shopify Partner API PartnerAppEventType values. The charge-related types you will see in a merchant’s history are:
  • SUBSCRIPTION_CHARGE_ACTIVATED — a recurring subscription charge was activated
  • SUBSCRIPTION_CHARGE_ACCEPTED — the merchant accepted a subscription charge
  • ONE_TIME_CHARGE_ACTIVATED — a one-time purchase was activated
  • USAGE_CHARGE_APPLIED — a usage-based charge was applied

Event summary

The AppEventSummary on each profile gives you a quick count of lifecycle events at a glance:
type AppEventSummary = {
  installs: number
  uninstalls: number
  charges: number
}
You can also view month-by-month event history via AppEventHistory, which records installs, uninstalls, and charges per calendar month.

CRM sections

Your CRM is divided into four sections accessible from the sidebar.

Customers

The full merchant list with search, filtering, and individual profiles. Each row shows shop name, plan, revenue, subscription status, and active days.

Analytics

Aggregate metrics across all merchants: total installs, active merchants, monthly revenue, churn signals, and event trends over time.

Segments

Saved audience filters. Target merchants by subscription status, plan name, revenue thresholds, or activity. Use segments to power email campaigns and automations.

Transactions

A unified ledger of every charge event across all merchants, drawn from TransactionEventNode records returned by the Shopify Partner API.

Analytics view

The analytics view aggregates data across your entire merchant base. Key metrics include:
  • Total installs and uninstalls over a selected date range
  • Active merchant count (merchants with subscriptionStatus: "installed")
  • Gross revenue and month-over-month change
  • Top plans by merchant count and revenue
  • Install and uninstall trends charted by month via AppEventHistory

Segments

Segments let you define a reusable audience filter that you can target with email campaigns or automation triggers. Create a segment by combining conditions based on:
  • Subscription statusinstalled or uninstalled
  • Plan name — match merchants on a specific pricing tier
  • Revenue — filter by totalRevenue or monthlyRevenue thresholds
  • Activity — filter by activeDays or firstInstallDate
Once saved, a segment automatically updates as new merchants match or no longer match its conditions. You can reference a segment when sending an email or configuring an automation trigger.
Create an “At-risk” segment targeting merchants with subscriptionStatus: "installed" and activeDays over 30 but low monthlyRevenue. Use it as an automation trigger to send a re-engagement email.

Transactions

The Transactions view shows every charge-related event across all merchants in a single table. Each row is sourced from a TransactionEventNode returned by the Shopify Partner API:
type TransactionEventNode = {
  type: TransactionChargeEventType
  occurredAt: string
  shop: {
    id: string
    name: string
    myshopifyDomain: string
  }
  charge?: {
    id: string
    name: string
    amount: {
      amount: string
      currencyCode: string
    }
  }
}
The full set of TransactionChargeEventType values surfaced in the transactions view:
Event typeMeaning
SUBSCRIPTION_CHARGE_ACCEPTEDMerchant accepted a recurring subscription
SUBSCRIPTION_CHARGE_ACTIVATEDRecurring charge became active
SUBSCRIPTION_CHARGE_DECLINEDMerchant declined the subscription charge
SUBSCRIPTION_CHARGE_EXPIREDCharge offer expired before acceptance
SUBSCRIPTION_CHARGE_CANCELEDSubscription was canceled
SUBSCRIPTION_CHARGE_FROZENSubscription is frozen (e.g. shop on pause)
SUBSCRIPTION_CHARGE_UNFROZENSubscription resumed after freeze
Event typeMeaning
ONE_TIME_CHARGE_ACCEPTEDMerchant accepted a one-time purchase
ONE_TIME_CHARGE_ACTIVATEDOne-time charge was activated
ONE_TIME_CHARGE_DECLINEDMerchant declined the one-time charge
ONE_TIME_CHARGE_EXPIREDOne-time charge offer expired

Platform plan limits

Your Meridian platform plan includes a crm_customers limit that caps how many merchant records Meridian syncs for your app. You can check your current usage and limit in Settings → Plan.
platform_plan: {
  limits: {
    crm_customers: number | null  // null means unlimited
  }
  usage: {
    crm_customers: number         // current synced merchant count
  }
}
When you reach your crm_customers limit, Meridian stops syncing new merchant records from the Shopify Partner API. Upgrade your plan to increase the limit and resume syncing.
Last modified on May 5, 2026