Rudderstack

Sync your Rudderstack groups, users, and product events to Vitally in real time with our Rudderstack integration.

Please note this is in BETA. If you would like to be added, please reach out to Support.

Overview

Vitally's Rudderstack integration can be used to sync the following Rudderstack data into Vitally in real time:

  • Groups - Vitally imports your Rudderstack groups into Vitally as accounts. The entire group object, including all your Rudderstack traits, will be attached to your Vitally account profiles.

  • Users - Vitally imports your Rudderstack users (i.e. your identify API calls) into Vitally as users. The entire user object, including all your Rudderstack traits, will be attached to your Vitally user profiles.

  • Tracks - Vitally imports your Rudderstack tracks into Vitally as product events. The entire track object, including any event properties, will be imported.

Enabling the Rudderstack integration

To enable the Rudderstack integration, navigate to your Settings -> Integrations -> Rudderstack (get there via Quick Jump). When there, you'll see an API key that you'll need to copy and paste into a new Rudderstack destination to connect to Vitally.

Once you copy the API key, head over to your Rudderstack dashboard and click "Connections" to add a new Vitally destination

Select the Webhook destination type

Enter any name for the destination, e.g. "Vitally Destination", select the source you want to send to Vitally and fill in the connection settings below

Webhook URL: https://{subdomain}.api.vitally.io/rudderstack
URL Method: POST
Headers:
    Authorization: (your API key)

Once your destination is configured, head back to Vitally, where you'll likely see a message like this:

Before you can complete the Rudderstack integration process in Vitally, we must receive at least 1 Rudderstack message from your connected source. This can take a few minutes after you connect your source, even if you know messages are being sent. This occurs because Rudderstack's CDN needs to propagate your new connection throughout its infrastructure before they route your messages to Vitally. That propagation can take several minutes to complete.

Once we receive a single Rudderstack message, you'll see the below and will be able to configure the rest of the integration.

Creating accounts from Rudderstack

As Vitally is geared towards B2B companies, we must be able to associate each user to the account/customer they belong to. Rudderstack provides 2 different APIs to achieve this result.

This is a dedicated API Rudderstack provides that directly identifies an account. A sample group API call made using Rudderstack's Javascript SDK would look something like this:

rudderanalytics.group("0e8c78ea9d97a7b8185e8632", {
  name: "Initech",
  industry: "Technology",
  employees: 329,
  plan: "enterprise", 
  totalBilled: 830
});

If you use the Group API, then the only other requirement is to ensure your Group API calls have a name trait attached to them.

Using the Group API to create accounts is strongly recommended. This API is your best option for creating accounts in Vitally, as it allows you to directly define your account data in Vitally. For example, the sample API call above would provide access to the industry, employees, plan, and totalBilled traits for the account in Vitally. Additionally, any future traits your engineers add to a group API call will be automatically attached to your accounts in Vitally.

Associating tracks to specific accounts

If your users can belong to multiple accounts, you may have a need to specifically associate that user's tracks to the account they are logged in to. To do so, you have 3 options:

Use context

Rudderstack's context option supports setting groupId, and Rudderstack's B2B SaaS spec recommends setting this for specific tracks. If you set the groupId field in your track context, Vitally will automatically associate the track to the account the groupId value references.

Use a track property to reference the account

Similar to using Rudderstack's context, you can also specify the group ID that a track belongs to in the track's properties - see below for an example (using an accountId property).

analytics.track('User registered', {
  role: 'admin',
  accountId: 'ACCOUNT_EXTERNAL_ID'
})

Unlike using context, Vitally will not automatically detect the track property you use to point to the account the track belongs to, so if you head down this route, you will need to contact our support team to let us know which property you're using. We'll configure your integration to use the property you select.

Default behavior

By default, if you do not use any of the above options, Vitally will associate the track to the account the user was last associated to. This typically works fine for customers, especially if you send a group call for the user each time they login to their account or start a session (as a group call establishes the association between the user and account).

Unlinking a user from an account in Vitally

You can disassociate a user from a company by passing in a field inside the company trait with remove: true in your identify calls.

rudderanalytics.identify({
  userId: '1',
  traits: {
    company: {
      id: 12345,
      remove: true
    }
  }
});

Ignore Events

Rudderstack may send many events to Vitally, some of which may not be relevant. For this reason, you will want to "ignore" any events you don't want to track in Vitally.

There are two benefits to "Ignoring" an event:

  1. Keeps your event list cleaner in the UI as there will be fewer data to sift through.

  2. This enables us to process your data as quickly as possible as we are not processing data that is not relevant to you.

To update an Event Status go to: Settings > Events > Status column

FAQs

Does my historical Rudderstack data sync to Vitally when I enable the Rudderstack integration? Unfortunately not, but simply because Rudderstack offers no APIs for integration partners to extract your historical data from Rudderstack. However, for those on advanced plan tiers for Rudderstack, Rudderstack does offer a feature to "replay" your historical data to a connected destination. If you have access to that feature, you can use it to push your historical data from Rudderstack to Vitally.

Last updated