10-minute guide
This guide walks you through sending your first event and seeing data in the SaaS Tracker UI.
1. Your application
If you signed up via Start trial, an application was already created for you. Otherwise, go to Settings → Applications and click Add application; give it a name (e.g. “My Product”). Each app has its own ingest credentials and event stream.
2. Get ingest credentials
Open your application: Settings → Applications → [your app]. You’ll find:
- Ingest URL – full endpoint for events (e.g.
https://receive.saastracker.eu/v1/events) - App UUID – your application’s UUID
- API secret – used to sign requests (you use it to compute the
x-signatureheader; never send it in the body)
Copy these for the next step.
3. Send your first event
The Ingest API uses HMAC-SHA256 over the raw request body: you send x-app-uuid and x-signature headers. Required payload fields: event, user_hash (exactly 64 characters), customer_org_id. Optional but important: path (needed for page views and page-level analytics—the examples below include it). See Event schema for details.
user_hash must be exactly 64 characters (hex). Use a one-way hash of the user identifier (e.g. SHA-256 of email) so the same user always gets the same hash.
Below are the same cURL and Python examples as on Settings → Applications → [your app] → Integration snippets (where you also get Node.js and Ruby). Replace YOUR_APP_UUID, YOUR_API_SECRET and the ingest URL with the values from your app page.
cURL
# user_hash = SHA-256 of user id (e.g. email), 64 hex chars
user_email="demo@example.com"
user_hash=$(echo -n "$user_email" | shasum -a 256 | cut -c1-64)
body="{\"event\":\"page_view\",\"user_hash\":\"$user_hash\",\"customer_org_id\":\"org_456\",\"path\":\"/dashboard\"}"
secret="YOUR_API_SECRET" # Replace with your actual secret
signature=$(echo -n "$body" | openssl dgst -sha256 -hmac "$secret" | sed 's/^.* //')
curl -X POST "https://receive.saastracker.eu/v1/events" \
-H "Content-Type: application/json" \
-H "x-app-uuid: YOUR_APP_UUID" \
-H "x-signature: $signature" \
-d "$body"
Python
import hmac
import hashlib
import json
import requests
app_uuid = "YOUR_APP_UUID"
api_secret = "YOUR_API_SECRET" # Replace with your actual secret
ingest_url = "https://receive.saastracker.eu/v1/events"
# user_hash = SHA-256 of user id (e.g. email), 64 hex chars
user_email = "demo@example.com"
user_hash = hashlib.sha256(user_email.encode("utf-8")).hexdigest()
payload = {
"event": "page_view",
"user_hash": user_hash,
"customer_org_id": "org_456",
"path": "/dashboard"
}
body = json.dumps(payload, separators=(",", ":"))
signature = hmac.new(
api_secret.encode("utf-8"),
body.encode("utf-8"),
hashlib.sha256
).hexdigest()
response = requests.post(
ingest_url,
data=body.encode("utf-8"),
headers={
"Content-Type": "application/json",
"x-app-uuid": app_uuid,
"x-signature": signature
}
)
Wrong signature or unknown app returns 401 or 404.
4. Confirm that data arrived
You can see that the event was received in two places: on the Home page (e.g. “Data received” in the Get started panel, or activity metrics) and in Analytics → Event stream. In Event stream, select your app and (if applicable) environment to see the event. That confirms ingest and storage are working.
5. Define your first feature (optional)
To use Feature adoption and Organization health, define features in Settings → Feature definitions. Add a feature (e.g. “Dashboard viewed”) and map it to the events or conditions that indicate usage. The app will then show adoption and health based on these definitions.
6. Find org health and organizations
- Organizations: Analytics → Organizations lists B2B tenants (
customer_org_id) and their activity. - Org health score: If your plan includes it, you’ll see health scores per organization. Configure how health is computed under Settings → Org health model (Growth plan and above).
Next: Core concepts or Ingest API overview.