Everflow AI Back to home
PRODUCT DOCUMENTATION

Connect your product

Everflow currently receives server-side product events, groups them by customer, and calculates a daily usage-based risk score.

1. Set up your workspace

  1. Create an account and verify your email in Everflow.
  2. Contact the service owner from the pricing page to arrange PayPal or cryptocurrency payment. Workspace access requires an active subscription, which is enabled after payment is confirmed.
  3. Open the dashboard and create an API key with a name such as “Production server.”
  4. Copy the key immediately. It is only displayed once. Store it as a server-side secret; never put it in browser code, source control, or a NEXT_PUBLIC_* variable.

For local development, follow the environment and database instructions in the project README. Your API host and web app must use the same configured Supabase project.

2. Send events from your backend

Send one request for meaningful product activity. Use stable, pseudonymous identifiers where possible. Do not send passwords, payment details, secrets, or sensitive personal information in event metadata.

POST /api/v1/track
await fetch("https://everflow-ai-backend.onrender.com/api/v1/track", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": process.env.EVERFLOW_API_KEY
  },
  body: JSON.stringify({
    customerId: "your-customer-id",
    customerName: "Example customer",
    userId: "your-product-user-id",
    eventType: "feature_used",
    metadata: { feature: "reports" }
  })
});

Required fields

  • customerId: stable identifier for the customer account in your system (up to 255 characters).
  • userId: stable identifier for the product user (up to 255 characters).
  • eventType: event name, such as report_exported (up to 120 characters).

Optional fields

  • customerName: a display name, up to 120 characters.
  • metadata: a JSON object with useful event properties, limited to 16 KB. Keep it small and non-sensitive.
  • occurredAt: optional event time as a date string, no more than five minutes ahead of API time. If omitted, the API uses receipt time.

Send the X-API-Key header from a trusted server. Request bodies are limited to 128 KB and metadata to 16 KB. A successful request returns HTTP 202. Invalid requests return 400; oversized request bodies return 413; invalid or revoked keys return 401; an inactive subscription returns 402.

3. Understand the risk score

Everflow recalculates account scores once per day by default. It compares the last 14 days of event activity with the preceding 46-day baseline normalized to a 14-day period, and considers days since the latest event. Scores range from 0 (lower signal) to 100 (stronger signal), and the current dashboard labels scores of 50 or more as at risk.

This is a simple activity heuristic, not a validated prediction of churn. A new account or sparse event stream may produce misleading scores. Review the results with your own customer context; don’t use them as the sole basis for consequential decisions.

Set CHURN_SCHEDULE_CRON on the API service to change the default daily schedule. AI suggestions are optional, are generated only when OPENAI_API_KEY is configured, and should be reviewed by a person.

Security and account management

  • Dashboard, customer, and API-key endpoints require a verified Supabase user and an active subscription.
  • API keys are stored as hashes, displayed only when created, and can be revoked from the dashboard.
  • Use HTTPS in production, protect environment secrets, restrict database credentials, and rotate any exposed key.
  • Do not use real customer data until your privacy terms, retention rules, deletion process, and vendor configuration have been reviewed.
Open workspace