Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@promind/pingpulse

chinaza126MIT1.1.9TypeScript support: included

Collect user feedback one question at a time. PingPulse makes feedback collection simple with emoji-based ratings and AI-powered insights.

PingPulse, feedback, user feedback, emoji ratings, AI insights, React widget, lightweight, mobile-friendly, automatic feedback collection, manual feedback triggers, user experience, session tracking, client ID, API key, feedback analysis

readme

PingPulse Widget

Collect user feedback one question at a time. PingPulse makes feedback collection simple with emoji-based ratings and AI-powered insights.

Features

  • 🎯 Single question focus
  • 😊 Emoji star ratings (angry, indifferent, satisfied)
  • 🤖 AI-powered feedback analysis
  • ⚡️ Lightweight widget
  • 📱 Mobile-friendly design
  • 🔌 Multiple integration options (React & CDN)

Installation

NPM Package

npm install @promind/pingpulse-widget
# or
yarn add @promind/pingpulse-widget

CDN Script

Add the script tag to your HTML:

<!-- Auto-initialization -->
<script src="https://unpkg.com/@promind/pingpulse?apikey=your_api_key&clientid=your_client_id"></script>

<!-- OR Manual initialization -->
<script src="https://unpkg.com/@promind/pingpulse"></script>

Quick Start

React Integration

Wrap your app with PingPulseProvider:

import { PingPulseProvider } from '@promind/pingpulse-widget';

function App() {
  return (
    <PingPulseProvider apiKey="your_api_key" clientId="your_client_id">
      <YourApp />
    </PingPulseProvider>
  );
}

CDN Integration

Auto-initialization

<!-- The widget will initialize automatically with provided parameters -->
<script src="https://unpkg.com/@promind/pingpulse?apikey=your_api_key&clientid=your_client_id"></script>

Manual initialization

<script src="https://unpkg.com/@promind/pingpulse"></script>
<script>
  window.PingPulse.init({
    apiKey: 'your_api_key',
    clientId: 'your_client_id',
    userId: null,
    autoCollect: true,
    meta: {},
    minimumDelaySeconds: 0,
  });

  // Trigger feedback modal manually
  window.PingPulse.ping({
    userId: 'user123',
    sessionId: 'session456',
    meta: {
      page: 'checkout',
      action: 'purchase',
    },
  });
</script>

Usage

Automatic Collection

React

<PingPulseProvider
  apiKey="your_api_key"
  clientId="your_client_id"
  autoCollect={true}
  minimumDelaySeconds={5}
>
  <YourApp />
</PingPulseProvider>

CDN

<script src="https://unpkg.com/@promind/pingpulse"></script>
<script>
  window.PingPulse.init({
    apiKey: 'your_api_key',
    clientId: 'your_client_id',
    autoCollect: true,
    minimumDelaySeconds: 5,
  });
</script>

Manual Triggers

React

import { usePingPulse } from '@promind/pingpulse-widget';

function FeedbackButton() {
  const ping = usePingPulse();

  return (
    <button
      onClick={async () => {
        await doSomething();
        ping({
          sessionId: 'session123',
          userId: 'user123',
          meta: {
            page: 'checkout',
            action: 'purchase',
          },
        });
      }}
    >
      Buy Now
    </button>
  );
}

CDN

<button
  onclick="window.PingPulse.ping({
  userId: 'user123',
  sessionId: 'session456',
  meta: {
    page: 'checkout',
    action: 'purchase'
  }
})"
>
  Buy Now
</button>

Configuration

interface FeedbackConfig {
  /** Your PingPulse API key */
  apiKey: string;

  /** Your PingPulse client ID */
  clientId: string;

  /** Track feedback by user ID */
  userId?: string;

  /** Show feedback modal automatically */
  autoCollect?: boolean;

  /** Additional context for AI analysis */
  meta?: Record<string, any>;

  /** Wait time before showing modal (seconds) */
  minimumDelaySeconds?: number;

  /** In test mode, the feedback collection modal will always open if there is an active session. */
  testMode?: boolean;
}

View Results

Access your feedback data and AI insights at pingpulse.ai/app

changelog

@chinaza/pingpulse

1.1.9

Patch Changes

  • 2cc794e: update readme

1.1.8

Patch Changes

-

1.1.7

Patch Changes

-

1.1.6

Patch Changes

-

1.1.5

Patch Changes

-

1.1.4

Patch Changes

-

1.1.3

Patch Changes

-

1.1.2

Patch Changes

-

1.1.1

Patch Changes

-

1.1.0

Minor Changes

  • 0377d83: add support for manual ping for cdn init

1.0.14

Patch Changes

-

1.0.13

Patch Changes

-

1.0.12

Patch Changes

-

1.0.11

Patch Changes

-

1.0.10

Patch Changes

-

1.0.9

Patch Changes

-

1.0.8

Patch Changes

-

1.0.7

Patch Changes

-

1.0.6

Patch Changes

-

1.0.4

Patch Changes

-

1.0.3

Patch Changes

-

1.0.2

Patch Changes

  • test changeset