If you're a Segment user, you can configure Vitally to send data back to Segment for distribution to your other destinations.

If you configure this option, once per day (at 23:00 UTC) Vitally will send a group call to Segment for every tracked (User, Customer) pair in Vitally. We will not send identify calls for those Users, just groups associating their id with the Customer's groupId and the traits defined below.

Setting up Vitally as a Segment source

Create a new source in Segment

So that you can isolate the data sent from Vitally from your other sources, we recommend creating a new source for Vitally in Segment using the HTTP API template. That way, you can decide which destinations you want to receive data from Vitally.

Creating an HTTP API source for Vitally
Add the write key to your Segment config

After creating the new source in Segment, enable sending group calls in your Segment integration settings and add the write key for the Vitally source.

Configuring group calls
Connect Vitally source to destinations

In Segment, the new Vitally source will not be connected to the same destinations as your existing sources. Connect the Vitally source to a new destination to get your data flowing!

Customer traits created by Vitally

Vitally sends a summary of your Customer in Vitally to Segment as traits for each group call. Each trait is prefixed with vitally. to avoid naming conflicts with your other Segment sources.

Full list of traits
  • vitally.id
    • Type: string
    • Summary: The ID of this customer in Vitally
  • vitally.externalId
    • Type: string
    • Summary: The ID of this customer in your database
  • vitally.name
    • Type: string
    • Summary: The customer's name
  • vitally.type
    • Type: enum(subscribed, trial, unqualified-trial)
    • Summary: The state of this customer in the subscription lifecycle
  • vitally.createdAt
    • Type: date
    • Summary: The time this customer was created in Vitally
  • vitally.churnedAt
    • Type: date | null
    • Summary: The time this customer was churned in Vitally. If type is subscribed, this customer is considered churned. If type is trial, this customer is counted as an unconverted trial
  • vitally.firstSeenTimestamp
    • Type: date | null
    • Summary: The timestamp of the first product event for this customer
  • vitally.lastSeenTimestamp
    • Type: date | null
    • Summary: The timestamp of the most recent product event for this customer
  • vitally.activeUserPercent
    • Type: number (Between 0 and 1)
    • Summary: The percent of users that have logged a product event in the past 30 days
  • vitally.renewalStatus
    • Type: enum(new, in_state, near_period_end, past_due, canceled, unknown)
    • Summary: A description of this customer's status within their trial or current billing period, depending on type
  • vitally.mrr
    • Type: number | null
    • Summary: The monthly recurring revenue for this customer
  • vitally.nextRenewalDate
    • Type: date | null
    • Summary: The next date that this customer's subscription will renew
  • vitally.trialEndDate
    • Type: date | null
    • Summary: The date that the customer's trial will end (or did end)
  • vitally.firstPaidDate
    • Type: date | null
    • Summary: The date that a paying customer first started paying you (i.e. the date their first subscription started)
  • vitally.usersCount
    • Type: number
    • Summary: The number of users for this customer in Vitally
  • vitally.csm
    • Type: A Vitally account (object) | null
    • Summary: If you've assigned a team member to be the CSM of the account, we will include that team member's name and email here in an object (see below for an example).
  • vitally.activeRiskIndicatorCount
    • Type: number
    • Summary: The total number of risk indicators currently active at this customer
  • vitally.activeOpportunityIndicatorCount
    • Type: number
    • Summary: The total number of risk indicators currently active at this customer
  • vitally.currentSuccessMetricValues
    • Type: hash<string, number>
    • Summary: A hash containing the current values of this customer's Success Metrics, keyed by the Success Metric name
  • vitally.currentElementCounts
    • Type: hash<string, number>
    • Summary: A hash containing the current counts of this customer's Elements, keyed by the Element name
  • vitally.activeRiskIndicators
    • Type: hash<string, date>
    • Summary: A hash containing the date that each active risk indicator started, keyed by the Indicator name
  • vitally.activeOpportunityIndicators
    • Type: hash<string, date>
    • Summary: A hash containing the date that each active opportunity indicator started, keyed by the Indicator name
  • vitally.owner
    • Type: A user (object) | null
    • Summary: If a user at the account has been identified as the account's owner, we will include that user here (see below for an example).
  • vitally.segments
    • Type: array<string>
    • Summary: if the account is in any segments, we will include an array of those segment names here.

Note: all date fields are represented as a full ISO8601 datetime in the UTC timezone: YYYY-MM-DDTHH:MM:SS.sssZ

Example traits
{
  "vitally.id": "0283c0ab-952a-4c69-9b21-a844d37393e3",
  "vitally.externalId": "your_id_12345",
  "vitally.name": "Apple",
  "vitally.type": "subscribed",
  "vitally.createdAt": "2018-06-01T14:05:26.559Z",
  "vitally.firstSeenTimestamp": "2018-06-01T14:45:23.621Z",
  "vitally.lastSeenTimestamp": "2018-08-17T14:05:26.559Z",
  "vitally.activeUserPercent": .9,
  "vitally.renewalStatus": "near_period_end",
  "vitally.mrr": 250,
  "vitally.nextRenewalDate": "2018-08-19T12:00:00.000Z",
  "vitally.trialEndDate": null,
  "vitally.firstPaidDate": "2018-07-19T12:00:00.000Z",
  "vitally.usersCount": 10,
  "vitally.csm": {
    "email": "richard@piedpiper.com",
    "name": "Richard Hendricks",
    "firstName": "Richard",
    "lastName": "Hendricks",
    "id": "1281c0ab-552a-4d68-9a21-a544e36394f2"
  },
  "vitally.owner": {
    "email": "sally@fields.com",
    "name": "Sally Fields",
    "id": "2250c3ab-542b-4a69-3x21-a641f36291a8",
    "createdAt": "2018-06-01T14:05:26.559Z",
    "externalId": "your_id_12345"
  },
  "vitally.activeRiskIndicatorCount": 2,
  "vitally.activeOpportunityIndicatorCount": 1,
  "vitally.currentSuccessMetricValues": { 
    "Percent of Users Creating Tasks": .4,
    "Percent of Users Completing Tasks": .6
  },
  "vitally.currentElementCounts": {
    "Slack Integration": 1,
    "Zapier Integration": 0,
    "Projects Created": 7
  },
  "vitally.activeRiskIndicators": {
    "Too many open support tickets":  "2018-08-15T19:00:00.000Z",
    "Disabled Zapier integration":  "2018-08-10T19:00:00.000Z"
  },
  "vitally.activeOpportunityIndicators": {
    "Spike in new users": "2018-08-11T19:00:00.000Z"
  },
  "vitally.segments": ["B2B", "Low user engagement"]
}