LaunchDarkly is a popular feature management platform that offers cutting-edge A/B testing and experimentation functionalities. It lets you efficiently automate and manage feature flags and improve overall product workflow and software quality.

RudderStack supports LaunchDarkly as a destination to which you can seamlessly send your data for flag management.

Getting started

Before configuring LaunchDarkly as a destination in RudderStack, verify if the source platform is supported by LaunchDarkly by referring to the table below:

Connection ModeWebMobileServer
Device modeSupported--
Cloud mode---
To know more about the difference between cloud mode and device mode in RudderStack, refer to the RudderStack Connection Modes guide.

Once you have confirmed that the source platform supports sending events to LaunchDarkly, follow these steps:

  1. From your RudderStack dashboard, add a source. Then, from the list of destinations, select LaunchDarkly.
  2. Assign a name to the destination and click Continue.

Connection settings

To successfully configure LaunchDarkly as a destination, you will need to configure the following settings:

LaunchDarkly connection settings
  • Client-side ID: Enter the client-side ID of your LaunchDarkly project.
For more information on getting the LaunchDarkly client-side ID, refer to the FAQ section below.

Identify

The identify call lets you create or update a user in LaunchDarkly.

You must call identify before making any track or alias calls.

A sample identify call is as shown below:

rudderanalytics.identify(
"1hKOmRA4GRlm", {
anonymous: false,
avatar: "https://avatarfiles.alphacoders.com/837/83744.jpg",
country: "USA",
custom: {
favourite_color: "black"
},
email: "alex@example.com",
firstName: "Alex",
ip: "12.23.34.45",
lastName: "Keener",
name: "Alex Keener",
privateAttribureNames: ["avatar", "country"],
secondary: "abcd21234"
}
);

LaunchDarkly key

RudderStack assigns the userId to LaunchDarkly's key field to uniquely identify a user.

key is the only required field in LaunchDarkly's identify call. If no unique identifier is provided, RudderStack will automatically assign anonymousId as key.

Supported traits

The following table lists the supported fields for the traits object in the identify call:

FieldTypePresenceDescription
anonymousBooleanOptionalMust be set to true.
avatarStringOptionalUser's avatar image URL.
countryStringOptionalCountry associated with the user.
customObjectOptionalAdditional attributes associated with the user.
emailStringOptionalUser's email address.
firstNameStringOptionalUser's first name.
ipStringOptionalUser's IP address.
lastNameStringOptionalUser's last name.
nameStringOptionalUser's full name.
privateAttributeNamesString ArrayOptionalList of attribute names (built-in or custom) marked as private and not sent to LaunchDarkly as analytics events.
secondaryStringOptionalUser's secondary identifier.
If you have chosen to bucket the users by a specific attribute, the secondary field can be used to further distinguish the users who are otherwise identical as per that attribute.

Track

The track call lets you record user events and send them to LaunchDarkly as custom conversion metrics for your experiments.

As mentioned above, you must call identify before sending any track events to LaunchDarkly.

A sample track call is as shown:

rudderanalytics.track("Test Event", {
foo: "bar"
});

Alias

The alias call lets you merge different identities of a known user. You can explicitly change the identity of a user via this call.

A sample alias call is shown below:

rudderanalytics.alias("newUserId","userId");

FAQ

Where do I get the LaunchDarkly Client-side ID?

To get your LaunchDarkly client-side ID, follow these steps:

  1. Log into your LaunchDarkly dashboard.
  2. Select your project, as shown:
LaunchDarkly projects
  1. Then, navigate to Account settings > Projects.
  2. You will see the client-side ID for your project here.
LaunchDarkly client-side ID

Contact us

For queries on any of the sections covered in this guide, you can contact us or start a conversation in our Slack community.

Contents