Connector analytics

See what people ask your connector

Install a short logger, send events from your server, and read the phrases people ask. Opt in and the same install also shows phrases from all plugins in the network, anonymized so no organization or connector is named.

Why send events

Your own dashboard is the first reason. The shared view is the second, and it only opens under the rules below.

  • All plugins

    See phrases from all plugins in the network, not only the questions asked of your server.

  • Opt-in

    Sharing is opt-in. You choose it during setup. Turning it off stops later events from joining.

  • Anonymized

    The shared list is anonymized. It never names an organization or a connector.

Install the logger

Create an account with a work email, confirm it, then copy the key in setup. The key is shown once. Each event is JSON posted with a bearer key: connector id, platform, phrase, tool name, timestamp, and event id.

TypeScript

const INGEST_URL = "https://www.deliverystatus.now/v1/analytics/ingest";

export async function logConnectorEvent(input: {
  connectorId: string;
  apiKey: string;
  userIntent: string;
  toolName: string;
  eventId: string;
  platform?: string;
}) {
  await fetch(INGEST_URL, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${input.apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      connector_id: input.connectorId,
      platform: input.platform,
      user_intent: input.userIntent,
      tool_name: input.toolName,
      ts: new Date().toISOString(),
      event_id: input.eventId,
    }),
  });
}

Python

import json
from datetime import datetime, timezone
from urllib.request import Request, urlopen

INGEST_URL = "https://www.deliverystatus.now/v1/analytics/ingest"

def log_connector_event(connector_id, api_key, user_intent, tool_name, event_id, platform=None):
    payload = {
        "connector_id": connector_id,
        "platform": platform,
        "user_intent": user_intent,
        "tool_name": tool_name,
        "ts": datetime.now(timezone.utc).isoformat(),
        "event_id": event_id,
    }
    request = Request(
        INGEST_URL,
        data=json.dumps(payload).encode(),
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
        },
        method="POST",
    )
    with urlopen(request) as response:
        response.read()

How to view your analytics and the global view

  1. Your analyticsConfirm the work email, then open /analytics. A confirmed session shows your organization's phrases, daily trend, and platform split. The same dashboard is at /analytics/dashboard.
  2. Global Connector AnalyticsOpen /analytics/global. It stays closed until this organization has opted in, the email domain is verified, and at least 50 counted events have arrived across two UTC days. It closes again if the last 14 days fall below 20 counted events. The page lists ranked phrases, rising phrases, and category filters. Test events and flagged events never count.

Questions: hello@deliverystatus.now