PlatformX

PlatformX helps platform teams gather in-the-moment feedback from the users of their internal tools — web apps, CLIs, build scripts, and code libraries.

It works by tracking events from those tools, then letting you send surveys triggered by specific events from the pool you are tracking.

Creating projects

Projects in PlatformX represent an internal app, tool, script, or library. Before creating a project, ensure that you have programmatic access to email addresses or GitHub usernames of users who interact with your app or tool.

To create a project, open the PlatformX tab in DX and click Create project. Then enter the name of your internal app, script, or library.

Tracking events

You can track events for apps, scripts, services, and CLIs using the PlatformX events API. For an example of instrumenting events in your CI pipelines, see the sample GitHub Actions workflow.

To track an event, make a POST request to the events.track API method with your project token passed as an HTTP Bearer token in your request header. You can obtain your project token in your project settings page.

JavaScript tracking

This script sends a page.visit event on every page load. You can also trigger events from specific interactions — the exact shape depends on your implementation.

<script>
  window.addEventListener("load", function () {
    const url = "https://api.getdx.com/events.track";
    const apiKey = "<api key>";
    const data = {
      name: "page.visit", // customize your event names
      email: "<email>", // replace this with dynamic data
      timestamp: Math.floor(Date.now() / 1000).toString(),
      metadata: {
        page: window.location.href, // Optionally track the page URL
        referrer: document.referrer, // Optionally track referrer
      },
    };

    fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer ${apiKey}`,
      },
      body: JSON.stringify(data),
    });
  });
</script>

Code libraries

You can track utilization and feedback of code libraries through PlatformX by implementing usage detection within your CI platform (e.g., GitHub Actions). To set up PlatformX with code libraries, create a CI workflow that scans pull request diffs and uses regular expressions to detect when your code library has been added or used. Then, conditionally fire events to PlatformX to capture this data, where it can then be used for analytics purposes and survey triggers.

Active users

PlatformX counts a user as active if they have at least one valid event within a rolling 4-week (28-day) window.

An event is considered valid if it meets all of the following:

  • Not marked as test data
  • Not deleted
  • Attributed to the user by one of: email, GitHub username, or GitLab username

Creating surveys

PlatformX allows sending in-the-moment surveys delivered to users through Slack or MS Teams. Surveys are triggered based on specific events, for example: when a user installs your CLI, executes a script, or submits code using a given library.

To create a survey, open the Survey tab in your project and click Create survey. Select the event that you want to trigger the survey.

Note: If you have not yet sent any events via the API, you will not be able to create and save a survey. Make sure to start sending events from your app then you can select which event you want to start using for gathering feedback.

Then, set a prompt for your survey. You can interpolate event metadata into your survey prompts by referencing the JSON keys in your metadata, for example:

I noticed you just merged <{{pull_url}}|{{repo}}#{{pull_number}}>.

I would love your feedback on how getting your dev environment setup.

Would you be willing to answer these couple quick questions?

Next, you’ll choose whether to send surveys from yourself or from a custom Slack Bot/custom MS Teams Bot. The tradeoffs between these approaches are summarized in the table below. For more help choosing, please contact your DX account representative.

Surveys sent from you Surveys sent from a bot
• Higher response rates
• Better experience for users
• Seamless back-and-forth conversation
• Form questions not required
• Less disruptive to you
• Form questions required

After choosing how to send surveys, configure the following frequency and behavior options:

  • Delay before sending message: Set a delay to make your survey feel more natural (i.e., not firing instantly after a user performs an action).
  • Maximum surveys per week: Select a number that is manageable for you and your team to follow up on.
  • Repeat survey threshold: The window of time that has to pass before the same user gets re-asked for feedback.
  • Automatic expiration: Close your survey after a certain number of responses have been collected.

Note: DX automatically ensures that people do not receive more than two surveys per week across all PlatformX projects.

Snapshot pauses

PlatformX surveys automatically pause around snapshots, from 5 days before a snapshot begins until 5 days after it closes. This reduces survey fatigue and keeps snapshot engagement high.

Configuring triggers

Most of the time, you’ll want PlatformX to trigger a survey the first time it detects a specific event. However, you can also configure more advanced conditions to determine when a survey is triggered.

Trigger by count

You can set how many times an event needs to be seen before triggering the survey.

Trigger by metadata

You can also define what metadata must be present to trigger a survey. You can select a metadata key from a list of keys found within your event data and then specify a regex string to match against.

Note: Metadata matching works for metadata with string values. DX does not support matching on nested metadata objects.

Multi-event triggers

You are not limited to one event type per survey. You can configure multiple events as triggers, using AND and OR logic to link conditions.

Form questions

Form questions are structured input fields that your survey subjects are asked to fill out. Form questions are optional for surveys sent from yourself. If you’ve chosen to send your survey from a Slack bot, form questions are required.

DX currently supports five types of form questions described below:

Rating scale

A multiple choice question such as CSAT or CES. Values are automatically set to numeric values starting from 1, based on the index of each option.

Multiple choice

A multiple choice question that will be rendered using radio buttons. Options must have labels.

Long text

Textarea field that allows long text responses.

Short text

Text input field for short text responses.

Prequalifier

The prequalifier is the first question shown to users. It determines whether they will see the rest of the survey. Use this to filter participants.

Note: Only one prequalifier is allowed per survey.

Notifications

You can configure notifications to alert your team whenever a survey response is received. This is useful for staying on top of feedback and responding quickly to users. Notification settings live in your project’s Settings tab.

Slack channel notifications

If your organization uses Slack, you can publish survey responses to a Slack channel:

  1. Navigate to your project’s Settings tab.
  2. In the Notifications section, select a Slack channel from the dropdown.
  3. Use the command /invite @DX in your chosen Slack channel to grant DX access.
  4. Click Update settings to save.

Once configured, DX posts survey responses to the selected Slack channel so your team can monitor feedback in real time.

Microsoft Teams channel notifications

If your organization uses Microsoft Teams, you can publish survey responses to a Teams channel:

  1. Navigate to your project’s Settings tab.
  2. In the Notifications section, select a Microsoft Team from the dropdown.
  3. Select a Microsoft Channel within that team.
  4. Click Update settings to save.

Once configured, DX posts survey responses to the selected Microsoft Teams channel.

Webhook notifications

You can also send survey responses to a custom webhook endpoint for integration with other tools or workflows:

  1. Navigate to your project’s Settings tab.
  2. In the Notifications section, enter your webhook URL in the Webhook destination URL field.
  3. Click Update settings to save.

When a survey response is received, DX sends a POST request to the webhook URL with the response data.